Raspbian Package Auto-Building

Build log for vim (2:8.0.0197-4+deb9u3) on armhf

vim2:8.0.0197-4+deb9u3armhf → 2019-06-24 00:28:46

sbuild (Debian sbuild) 0.71.0 (24 Aug 2016) on bm-wb-03

+==============================================================================+
| vim 2:8.0.0197-4+deb9u3 (armhf)              Sun, 23 Jun 2019 22:20:18 +0000 |
+==============================================================================+

Package: vim
Version: 2:8.0.0197-4+deb9u3
Source Version: 2:8.0.0197-4+deb9u3
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-bd964267-e8f1-488a-8945-3225d5180079' 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 [9720 kB]
Get:3 http://172.17.0.1/private stretch-staging/main armhf Packages [11.7 MB]
Fetched 21.4 MB in 25s (852 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-4+deb9u3 (dsc) [3019 B]
Get:2 http://172.17.0.1/private stretch-staging/main vim 2:8.0.0197-4+deb9u3 (tar) [13.0 MB]
Get:3 http://172.17.0.1/private stretch-staging/main vim 2:8.0.0197-4+deb9u3 (diff) [174 kB]
Fetched 13.1 MB in 1s (9045 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/vim-tlTJJ2/vim-8.0.0197' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/vim-tlTJJ2' 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-JgvS6j/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-JgvS6j/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-JgvS6j/gpg/trustdb.gpg: trustdb created
gpg: key 35506D9A48F77B2E: 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 35506D9A48F77B2E: "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" not changed
gpg: key 35506D9A48F77B2E: 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-JgvS6j/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Packages [432 B]
Fetched 2108 B in 0s (3112 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...
The following NEW packages will be installed:
  sbuild-build-depends-core-dummy
0 upgraded, 1 newly installed, 0 to remove and 60 not upgraded.
Need to get 776 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [776 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 776 B in 0s (0 B/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 12715 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-JgvS6j/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-JgvS6j/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Sources [647 B]
Get:5 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ Packages [693 B]
Fetched 2673 B in 0s (3606 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 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-3 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 libncurses5 libncursesw5 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 libperl5.24
  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 libtinfo5
  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 perl
  perl-base perl-modules-5.24 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 perl-doc libterm-readline-gnu-perl
  | libterm-readline-perl-perl 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 dbus xdg-user-dirs libgtk-3-bin
  libgail-common libgtk2.0-bin python krb5-locales libtool-bin libpng-tools
  libltdl-dev libx11-doc xml-core netbase rename 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 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:
  libdbus-1-3 libncurses5 libncursesw5 libperl5.24 libpng16-16 libtinfo5 perl
  perl-base perl-modules-5.24
9 upgraded, 261 newly installed, 0 to remove and 51 not upgraded.
Need to get 165 MB of archives.
After this operation, 493 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-JgvS6j/apt_archive ./ sbuild-build-depends-vim-dummy 0.invalid.0 [896 B]
Get:2 http://172.17.0.1/private stretch-staging/main armhf libperl5.24 armhf 5.24.1-3+deb9u5 [2837 kB]
Get:3 http://172.17.0.1/private stretch-staging/main armhf perl armhf 5.24.1-3+deb9u5 [219 kB]
Get:4 http://172.17.0.1/private stretch-staging/main armhf perl-base armhf 5.24.1-3+deb9u5 [1198 kB]
Get:5 http://172.17.0.1/private stretch-staging/main armhf perl-modules-5.24 all 5.24.1-3+deb9u5 [2722 kB]
Get:6 http://172.17.0.1/private stretch-staging/main armhf groff-base armhf 1.22.3-9 [1005 kB]
Get:7 http://172.17.0.1/private stretch-staging/main armhf libbsd0 armhf 0.8.3-1 [89.0 kB]
Get:8 http://172.17.0.1/private stretch-staging/main armhf libncurses5 armhf 6.0+20161126-1+deb9u2 [74.0 kB]
Get:9 http://172.17.0.1/private stretch-staging/main armhf libtinfo5 armhf 6.0+20161126-1+deb9u2 [288 kB]
Get:10 http://172.17.0.1/private stretch-staging/main armhf libncursesw5 armhf 6.0+20161126-1+deb9u2 [92.7 kB]
Get:11 http://172.17.0.1/private stretch-staging/main armhf bsdmainutils armhf 9.0.12+nmu1 [178 kB]
Get:12 http://172.17.0.1/private stretch-staging/main armhf libpipeline1 armhf 1.4.1-2 [23.7 kB]
Get:13 http://172.17.0.1/private stretch-staging/main armhf man-db armhf 2.7.6.1-2 [1014 kB]
Get:14 http://172.17.0.1/private stretch-staging/main armhf libexpat1 armhf 2.2.0-2+deb9u1 [62.2 kB]
Get:15 http://172.17.0.1/private stretch-staging/main armhf libpng16-16 armhf 1.6.28-1+deb9u1 [263 kB]
Get:16 http://172.17.0.1/private stretch-staging/main armhf libfreetype6 armhf 2.6.3-3.2 [384 kB]
Get:17 http://172.17.0.1/private stretch-staging/main armhf ucf all 3.0036 [70.2 kB]
Get:18 http://172.17.0.1/private stretch-staging/main armhf fonts-dejavu-core all 2.37-1 [1068 kB]
Get:19 http://172.17.0.1/private stretch-staging/main armhf fontconfig-config all 2.11.0-6.7 [271 kB]
Get:20 http://172.17.0.1/private stretch-staging/main armhf libfontconfig1 armhf 2.11.0-6.7 [313 kB]
Get:21 http://172.17.0.1/private stretch-staging/main armhf fontconfig armhf 2.11.0-6.7 [402 kB]
Get:22 http://172.17.0.1/private stretch-staging/main armhf libjbig0 armhf 2.1-3.1 [27.5 kB]
Get:23 http://172.17.0.1/private stretch-staging/main armhf liblzo2-2 armhf 2.08-1.2 [47.6 kB]
Get:24 http://172.17.0.1/private stretch-staging/main armhf libpcrecpp0v5 armhf 2:8.39-3 [149 kB]
Get:25 http://172.17.0.1/private stretch-staging/main armhf libxau6 armhf 1:1.0.8-1 [19.9 kB]
Get:26 http://172.17.0.1/private stretch-staging/main armhf libxdmcp6 armhf 1:1.1.2-3 [25.0 kB]
Get:27 http://172.17.0.1/private stretch-staging/main armhf libxcb1 armhf 1.12-1 [129 kB]
Get:28 http://172.17.0.1/private stretch-staging/main armhf libx11-data all 2:1.6.4-3+deb9u1 [287 kB]
Get:29 http://172.17.0.1/private stretch-staging/main armhf libx11-6 armhf 2:1.6.4-3+deb9u1 [682 kB]
Get:30 http://172.17.0.1/private stretch-staging/main armhf libxext6 armhf 2:1.3.3-1 [48.1 kB]
Get:31 http://172.17.0.1/private stretch-staging/main armhf libxrender1 armhf 1:0.9.10-1 [29.9 kB]
Get:32 http://172.17.0.1/private stretch-staging/main armhf libxft2 armhf 2.3.2-1 [48.3 kB]
Get:33 http://172.17.0.1/private stretch-staging/main armhf libssl1.1 armhf 1.1.0j-1~deb9u1 [1115 kB]
Get:34 http://172.17.0.1/private stretch-staging/main armhf libpython3.5-minimal armhf 3.5.3-1+deb9u1 [567 kB]
Get:35 http://172.17.0.1/private stretch-staging/main armhf python3.5-minimal armhf 3.5.3-1+deb9u1 [1443 kB]
Get:36 http://172.17.0.1/private stretch-staging/main armhf python3-minimal armhf 3.5.3-1 [35.3 kB]
Get:37 http://172.17.0.1/private stretch-staging/main armhf mime-support all 3.60 [36.7 kB]
Get:38 http://172.17.0.1/private stretch-staging/main armhf libmpdec2 armhf 2.4.2-1 [67.5 kB]
Get:39 http://172.17.0.1/private stretch-staging/main armhf libpython3.5-stdlib armhf 3.5.3-1+deb9u1 [2090 kB]
Get:40 http://172.17.0.1/private stretch-staging/main armhf python3.5 armhf 3.5.3-1+deb9u1 [229 kB]
Get:41 http://172.17.0.1/private stretch-staging/main armhf libpython3-stdlib armhf 3.5.3-1 [18.6 kB]
Get:42 http://172.17.0.1/private stretch-staging/main armhf dh-python all 2.20170125 [86.8 kB]
Get:43 http://172.17.0.1/private stretch-staging/main armhf python3 armhf 3.5.3-1 [21.6 kB]
Get:44 http://172.17.0.1/private stretch-staging/main armhf libreadline6 armhf 6.3-9 [122 kB]
Get:45 http://172.17.0.1/private stretch-staging/main armhf libssl1.0.2 armhf 1.0.2r-1~deb9u1 [899 kB]
Get:46 http://172.17.0.1/private stretch-staging/main armhf libmagic-mgc armhf 1:5.30-1+deb9u2 [222 kB]
Get:47 http://172.17.0.1/private stretch-staging/main armhf libmagic1 armhf 1:5.30-1+deb9u2 [105 kB]
Get:48 http://172.17.0.1/private stretch-staging/main armhf file armhf 1:5.30-1+deb9u2 [63.6 kB]
Get:49 http://172.17.0.1/private stretch-staging/main armhf gettext-base armhf 0.19.8.1-2 [116 kB]
Get:50 http://172.17.0.1/private stretch-staging/main armhf libnettle6 armhf 3.3-1 [204 kB]
Get:51 http://172.17.0.1/private stretch-staging/main armhf libhogweed4 armhf 3.3-1 [126 kB]
Get:52 http://172.17.0.1/private stretch-staging/main armhf libffi6 armhf 3.2.1-6 [18.7 kB]
Get:53 http://172.17.0.1/private stretch-staging/main armhf libp11-kit0 armhf 0.23.3-2 [94.4 kB]
Get:54 http://172.17.0.1/private stretch-staging/main armhf libtasn1-6 armhf 4.10-1.1+deb9u1 [45.6 kB]
Get:55 http://172.17.0.1/private stretch-staging/main armhf libgnutls30 armhf 3.5.8-5+deb9u4 [824 kB]
Get:56 http://172.17.0.1/private stretch-staging/main armhf libgpm2 armhf 1.20.4-6.2 [33.0 kB]
Get:57 http://172.17.0.1/private stretch-staging/main armhf libkeyutils1 armhf 1.5.9-9 [11.9 kB]
Get:58 http://172.17.0.1/private stretch-staging/main armhf libkrb5support0 armhf 1.15-1+deb9u1 [58.1 kB]
Get:59 http://172.17.0.1/private stretch-staging/main armhf libk5crypto3 armhf 1.15-1+deb9u1 [115 kB]
Get:60 http://172.17.0.1/private stretch-staging/main armhf libkrb5-3 armhf 1.15-1+deb9u1 [262 kB]
Get:61 http://172.17.0.1/private stretch-staging/main armhf libgssapi-krb5-2 armhf 1.15-1+deb9u1 [131 kB]
Get:62 http://172.17.0.1/private stretch-staging/main armhf libicu57 armhf 57.1-6+deb9u2 [7425 kB]
Get:63 http://172.17.0.1/private stretch-staging/main armhf libxml2 armhf 2.9.4+dfsg1-2.2+deb9u2 [806 kB]
Get:64 http://172.17.0.1/private stretch-staging/main armhf hicolor-icon-theme all 0.15-1 [9550 B]
Get:65 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-0 armhf 2.50.3-2 [2527 kB]
Get:66 http://172.17.0.1/private stretch-staging/main armhf libjpeg62-turbo armhf 1:1.5.1-2 [109 kB]
Get:67 http://172.17.0.1/private stretch-staging/main armhf libtiff5 armhf 4.0.8-2+deb9u4 [220 kB]
Get:68 http://172.17.0.1/private stretch-staging/main armhf shared-mime-info armhf 1.8-1+deb9u1 [728 kB]
Get:69 http://172.17.0.1/private stretch-staging/main armhf libgdk-pixbuf2.0-common all 2.36.5-2+deb9u2 [311 kB]
Get:70 http://172.17.0.1/private stretch-staging/main armhf libgdk-pixbuf2.0-0 armhf 2.36.5-2+deb9u2 [152 kB]
Get:71 http://172.17.0.1/private stretch-staging/main armhf gtk-update-icon-cache armhf 3.22.11-1+rpi1 [75.7 kB]
Get:72 http://172.17.0.1/private stretch-staging/main armhf libpixman-1-0 armhf 0.34.0-1 [451 kB]
Get:73 http://172.17.0.1/private stretch-staging/main armhf libxcb-render0 armhf 1.12-1 [104 kB]
Get:74 http://172.17.0.1/private stretch-staging/main armhf libxcb-shm0 armhf 1.12-1 [95.9 kB]
Get:75 http://172.17.0.1/private stretch-staging/main armhf libcairo2 armhf 1.14.8-1 [688 kB]
Get:76 http://172.17.0.1/private stretch-staging/main armhf libcroco3 armhf 0.6.11-3 [131 kB]
Get:77 http://172.17.0.1/private stretch-staging/main armhf libthai-data all 0.1.26-1 [166 kB]
Get:78 http://172.17.0.1/private stretch-staging/main armhf libdatrie1 armhf 0.2.10-4 [32.8 kB]
Get:79 http://172.17.0.1/private stretch-staging/main armhf libthai0 armhf 0.1.26-1 [49.3 kB]
Get:80 http://172.17.0.1/private stretch-staging/main armhf libpango-1.0-0 armhf 1.40.5-1 [305 kB]
Get:81 http://172.17.0.1/private stretch-staging/main armhf libgraphite2-3 armhf 1.3.10-1 [71.7 kB]
Get:82 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz0b armhf 1.4.2-1 [640 kB]
Get:83 http://172.17.0.1/private stretch-staging/main armhf libpangoft2-1.0-0 armhf 1.40.5-1 [201 kB]
Get:84 http://172.17.0.1/private stretch-staging/main armhf libpangocairo-1.0-0 armhf 1.40.5-1 [190 kB]
Get:85 http://172.17.0.1/private stretch-staging/main armhf librsvg2-2 armhf 2.40.16-1 [266 kB]
Get:86 http://172.17.0.1/private stretch-staging/main armhf librsvg2-common armhf 2.40.16-1 [193 kB]
Get:87 http://172.17.0.1/private stretch-staging/main armhf adwaita-icon-theme all 3.22.0-1+deb9u1 [11.5 MB]
Get:88 http://172.17.0.1/private stretch-staging/main armhf libsigsegv2 armhf 2.10-5 [28.4 kB]
Get:89 http://172.17.0.1/private stretch-staging/main armhf m4 armhf 1.4.18-1 [185 kB]
Get:90 http://172.17.0.1/private stretch-staging/main armhf autoconf all 2.69-10 [338 kB]
Get:91 http://172.17.0.1/private stretch-staging/main armhf autotools-dev all 20161112.1 [73.4 kB]
Get:92 http://172.17.0.1/private stretch-staging/main armhf automake all 1:1.15-6 [733 kB]
Get:93 http://172.17.0.1/private stretch-staging/main armhf autopoint all 0.19.8.1-2 [433 kB]
Get:94 http://172.17.0.1/private stretch-staging/main armhf openssl armhf 1.1.0j-1~deb9u1 [712 kB]
Get:95 http://172.17.0.1/private stretch-staging/main armhf ca-certificates all 20161130+nmu1+deb9u1 [182 kB]
Get:96 http://172.17.0.1/private stretch-staging/main armhf libdconf1 armhf 0.26.0-2 [33.3 kB]
Get:97 http://172.17.0.1/private stretch-staging/main armhf dconf-service armhf 0.26.0-2 [30.1 kB]
Get:98 http://172.17.0.1/private stretch-staging/main armhf dconf-gsettings-backend armhf 0.26.0-2 [22.5 kB]
Get:99 http://172.17.0.1/private stretch-staging/main armhf libtool all 2.4.6-2 [545 kB]
Get:100 http://172.17.0.1/private stretch-staging/main armhf dh-autoreconf all 14 [15.9 kB]
Get:101 http://172.17.0.1/private stretch-staging/main armhf libarchive-zip-perl all 1.59-1+deb9u1 [96.2 kB]
Get:102 http://172.17.0.1/private stretch-staging/main armhf libfile-stripnondeterminism-perl all 0.034-1 [16.4 kB]
Get:103 http://172.17.0.1/private stretch-staging/main armhf libtimedate-perl all 2.3000-2 [42.2 kB]
Get:104 http://172.17.0.1/private stretch-staging/main armhf dh-strip-nondeterminism all 0.034-1 [10.5 kB]
Get:105 http://172.17.0.1/private stretch-staging/main armhf libunistring0 armhf 0.9.6+really0.9.3-0.1 [252 kB]
Get:106 http://172.17.0.1/private stretch-staging/main armhf gettext armhf 0.19.8.1-2 [1434 kB]
Get:107 http://172.17.0.1/private stretch-staging/main armhf intltool-debian all 0.35.0+20060710.4 [26.3 kB]
Get:108 http://172.17.0.1/private stretch-staging/main armhf po-debconf all 1.0.20 [247 kB]
Get:109 http://172.17.0.1/private stretch-staging/main armhf debhelper all 10.2.5 [961 kB]
Get:110 http://172.17.0.1/private stretch-staging/main armhf libgirepository-1.0-1 armhf 1.50.0-1 [76.4 kB]
Get:111 http://172.17.0.1/private stretch-staging/main armhf gir1.2-glib-2.0 armhf 1.50.0-1 [139 kB]
Get:112 http://172.17.0.1/private stretch-staging/main armhf libatk1.0-data all 2.22.0-1 [172 kB]
Get:113 http://172.17.0.1/private stretch-staging/main armhf libatk1.0-0 armhf 2.22.0-1 [70.4 kB]
Get:114 http://172.17.0.1/private stretch-staging/main armhf gir1.2-atk-1.0 armhf 2.22.0-1 [53.5 kB]
Get:115 http://172.17.0.1/private stretch-staging/main armhf libdbus-1-3 armhf 1.10.28-0+deb9u1 [176 kB]
Get:116 http://172.17.0.1/private stretch-staging/main armhf libatspi2.0-0 armhf 2.22.0-6+deb9u1 [52.1 kB]
Get:117 http://172.17.0.1/private stretch-staging/main armhf gir1.2-atspi-2.0 armhf 2.22.0-6+deb9u1 [18.6 kB]
Get:118 http://172.17.0.1/private stretch-staging/main armhf libcairo-gobject2 armhf 1.14.8-1 [335 kB]
Get:119 http://172.17.0.1/private stretch-staging/main armhf gir1.2-freedesktop armhf 1.50.0-1 [15.2 kB]
Get:120 http://172.17.0.1/private stretch-staging/main armhf gir1.2-gdkpixbuf-2.0 armhf 2.36.5-2+deb9u2 [15.4 kB]
Get:121 http://172.17.0.1/private stretch-staging/main armhf libgtk2.0-common all 2.24.31-2 [2693 kB]
Get:122 http://172.17.0.1/private stretch-staging/main armhf libpangoxft-1.0-0 armhf 1.40.5-1 [186 kB]
Get:123 http://172.17.0.1/private stretch-staging/main armhf gir1.2-pango-1.0 armhf 1.40.5-1 [194 kB]
Get:124 http://172.17.0.1/private stretch-staging/main armhf libavahi-common-data armhf 0.6.32-2 [118 kB]
Get:125 http://172.17.0.1/private stretch-staging/main armhf libavahi-common3 armhf 0.6.32-2 [48.6 kB]
Get:126 http://172.17.0.1/private stretch-staging/main armhf libavahi-client3 armhf 0.6.32-2 [51.3 kB]
Get:127 http://172.17.0.1/private stretch-staging/main armhf libcups2 armhf 2.2.1-8+deb9u2 [273 kB]
Get:128 http://172.17.0.1/private stretch-staging/main armhf libxcomposite1 armhf 1:0.4.4-2 [16.1 kB]
Get:129 http://172.17.0.1/private stretch-staging/main armhf libxfixes3 armhf 1:5.0.3-1 [20.6 kB]
Get:130 http://172.17.0.1/private stretch-staging/main armhf libxcursor1 armhf 1:1.1.14-1+deb9u2 [31.8 kB]
Get:131 http://172.17.0.1/private stretch-staging/main armhf libxdamage1 armhf 1:1.1.4-2+b1 [14.1 kB]
Get:132 http://172.17.0.1/private stretch-staging/main armhf libxi6 armhf 2:1.7.9-1 [77.8 kB]
Get:133 http://172.17.0.1/private stretch-staging/main armhf libxinerama1 armhf 2:1.1.3-1+b1 [16.4 kB]
Get:134 http://172.17.0.1/private stretch-staging/main armhf libxrandr2 armhf 2:1.5.1-1 [34.5 kB]
Get:135 http://172.17.0.1/private stretch-staging/main armhf libgtk2.0-0 armhf 2.24.31-2 [1505 kB]
Get:136 http://172.17.0.1/private stretch-staging/main armhf gir1.2-gtk-2.0 armhf 2.24.31-2 [212 kB]
Get:137 http://172.17.0.1/private stretch-staging/main armhf libgtk-3-common all 3.22.11-1+rpi1 [3417 kB]
Get:138 http://172.17.0.1/private stretch-staging/main armhf libatk-bridge2.0-0 armhf 2.22.0-2 [47.1 kB]
Get:139 http://172.17.0.1/private stretch-staging/main armhf liblcms2-2 armhf 2.8-4+deb9u1 [118 kB]
Get:140 http://172.17.0.1/private stretch-staging/main armhf libcolord2 armhf 1.3.3-2 [240 kB]
Get:141 http://172.17.0.1/private stretch-staging/main armhf libepoxy0 armhf 1.3.1-2 [157 kB]
Get:142 http://172.17.0.1/private stretch-staging/main armhf libjson-glib-1.0-common all 1.2.6-1 [166 kB]
Get:143 http://172.17.0.1/private stretch-staging/main armhf libjson-glib-1.0-0 armhf 1.2.6-1 [170 kB]
Get:144 http://172.17.0.1/private stretch-staging/main armhf libproxy1v5 armhf 0.4.14-2 [50.2 kB]
Get:145 http://172.17.0.1/private stretch-staging/main armhf glib-networking-common all 2.50.0-1 [49.1 kB]
Get:146 http://172.17.0.1/private stretch-staging/main armhf glib-networking-services armhf 2.50.0-1 [11.6 kB]
Get:147 http://172.17.0.1/private stretch-staging/main armhf gsettings-desktop-schemas all 3.22.0-1 [473 kB]
Get:148 http://172.17.0.1/private stretch-staging/main armhf glib-networking armhf 2.50.0-1 [48.2 kB]
Get:149 http://172.17.0.1/private stretch-staging/main armhf libsoup2.4-1 armhf 2.56.0-2+deb9u2 [248 kB]
Get:150 http://172.17.0.1/private stretch-staging/main armhf libsoup-gnome2.4-1 armhf 2.56.0-2+deb9u2 [16.3 kB]
Get:151 http://172.17.0.1/private stretch-staging/main armhf librest-0.7-0 armhf 0.8.0-2 [27.8 kB]
Get:152 http://172.17.0.1/private stretch-staging/main armhf libgtk-3-0 armhf 3.22.11-1+rpi1 [2071 kB]
Get:153 http://172.17.0.1/private stretch-staging/main armhf gir1.2-gtk-3.0 armhf 3.22.11-1+rpi1 [245 kB]
Get:154 http://172.17.0.1/private stretch-staging/main armhf icu-devtools armhf 57.1-6+deb9u2 [157 kB]
Get:155 http://172.17.0.1/private stretch-staging/main armhf libelf1 armhf 0.168-1 [154 kB]
Get:156 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-data all 2.50.3-2 [2517 kB]
Get:157 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-bin armhf 2.50.3-2 [1608 kB]
Get:158 http://172.17.0.1/private stretch-staging/main armhf libpcre16-3 armhf 2:8.39-3 [235 kB]
Get:159 http://172.17.0.1/private stretch-staging/main armhf libpcre32-3 armhf 2:8.39-3 [227 kB]
Get:160 http://172.17.0.1/private stretch-staging/main armhf libpcre3-dev armhf 2:8.39-3 [565 kB]
Get:161 http://172.17.0.1/private stretch-staging/main armhf pkg-config armhf 0.29-4 [59.2 kB]
Get:162 http://172.17.0.1/private stretch-staging/main armhf zlib1g-dev armhf 1:1.2.8.dfsg-5 [198 kB]
Get:163 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-dev armhf 2.50.3-2 [2775 kB]
Get:164 http://172.17.0.1/private stretch-staging/main armhf libdbus-1-dev armhf 1.10.28-0+deb9u1 [202 kB]
Get:165 http://172.17.0.1/private stretch-staging/main armhf x11-common all 1:7.7+19 [251 kB]
Get:166 http://172.17.0.1/private stretch-staging/main armhf libxtst6 armhf 2:1.2.3-1 [26.3 kB]
Get:167 http://172.17.0.1/private stretch-staging/main armhf xorg-sgml-doctools all 1:1.11-1 [21.9 kB]
Get:168 http://172.17.0.1/private stretch-staging/main armhf x11proto-core-dev all 7.0.31-1 [728 kB]
Get:169 http://172.17.0.1/private stretch-staging/main armhf libxau-dev armhf 1:1.0.8-1 [23.0 kB]
Get:170 http://172.17.0.1/private stretch-staging/main armhf libxdmcp-dev armhf 1:1.1.2-3 [40.9 kB]
Get:171 http://172.17.0.1/private stretch-staging/main armhf x11proto-input-dev all 2.3.2-1 [158 kB]
Get:172 http://172.17.0.1/private stretch-staging/main armhf x11proto-kb-dev all 1.0.7-1 [233 kB]
Get:173 http://172.17.0.1/private stretch-staging/main armhf xtrans-dev all 1.3.5-1 [100 kB]
Get:174 http://172.17.0.1/private stretch-staging/main armhf libpthread-stubs0-dev armhf 0.3-4 [4042 B]
Get:175 http://172.17.0.1/private stretch-staging/main armhf libxcb1-dev armhf 1.12-1 [165 kB]
Get:176 http://172.17.0.1/private stretch-staging/main armhf libx11-dev armhf 2:1.6.4-3+deb9u1 [753 kB]
Get:177 http://172.17.0.1/private stretch-staging/main armhf x11proto-xext-dev all 7.3.0-1 [212 kB]
Get:178 http://172.17.0.1/private stretch-staging/main armhf libxext-dev armhf 2:1.3.3-1 [102 kB]
Get:179 http://172.17.0.1/private stretch-staging/main armhf x11proto-fixes-dev all 1:5.0-2 [19.2 kB]
Get:180 http://172.17.0.1/private stretch-staging/main armhf libxfixes-dev armhf 1:5.0.3-1 [22.7 kB]
Get:181 http://172.17.0.1/private stretch-staging/main armhf libxi-dev armhf 2:1.7.9-1 [236 kB]
Get:182 http://172.17.0.1/private stretch-staging/main armhf x11proto-record-dev all 1.14.2-1 [33.9 kB]
Get:183 http://172.17.0.1/private stretch-staging/main armhf libxtst-dev armhf 2:1.2.3-1 [30.5 kB]
Get:184 http://172.17.0.1/private stretch-staging/main armhf libatspi2.0-dev armhf 2.22.0-6+deb9u1 [63.6 kB]
Get:185 http://172.17.0.1/private stretch-staging/main armhf libatk-bridge2.0-dev armhf 2.22.0-2 [7238 B]
Get:186 http://172.17.0.1/private stretch-staging/main armhf libatk1.0-dev armhf 2.22.0-1 [115 kB]
Get:187 http://172.17.0.1/private stretch-staging/main armhf libcairo-script-interpreter2 armhf 1.14.8-1 [363 kB]
Get:188 http://172.17.0.1/private stretch-staging/main armhf libexpat1-dev armhf 2.2.0-2+deb9u1 [116 kB]
Get:189 http://172.17.0.1/private stretch-staging/main armhf libpng-dev armhf 1.6.28-1+deb9u1 [232 kB]
Get:190 http://172.17.0.1/private stretch-staging/main armhf libfreetype6-dev armhf 2.6.3-3.2 [5757 kB]
Get:191 http://172.17.0.1/private stretch-staging/main armhf libfontconfig1-dev armhf 2.11.0-6.7 [877 kB]
Get:192 http://172.17.0.1/private stretch-staging/main armhf x11proto-render-dev all 2:0.11.1-2 [20.8 kB]
Get:193 http://172.17.0.1/private stretch-staging/main armhf libxrender-dev armhf 1:0.9.10-1 [37.7 kB]
Get:194 http://172.17.0.1/private stretch-staging/main armhf libice6 armhf 2:1.0.9-2 [51.6 kB]
Get:195 http://172.17.0.1/private stretch-staging/main armhf libsm6 armhf 2:1.2.2-1+b1 [31.2 kB]
Get:196 http://172.17.0.1/private stretch-staging/main armhf libice-dev armhf 2:1.0.9-2 [58.8 kB]
Get:197 http://172.17.0.1/private stretch-staging/main armhf libsm-dev armhf 2:1.2.2-1+b1 [33.5 kB]
Get:198 http://172.17.0.1/private stretch-staging/main armhf libpixman-1-dev armhf 0.34.0-1 [472 kB]
Get:199 http://172.17.0.1/private stretch-staging/main armhf libxcb-render0-dev armhf 1.12-1 [108 kB]
Get:200 http://172.17.0.1/private stretch-staging/main armhf libxcb-shm0-dev armhf 1.12-1 [97.1 kB]
Get:201 http://172.17.0.1/private stretch-staging/main armhf libcairo2-dev armhf 1.14.8-1 [811 kB]
Get:202 http://172.17.0.1/private stretch-staging/main armhf libepoxy-dev armhf 1.3.1-2 [113 kB]
Get:203 http://172.17.0.1/private stretch-staging/main armhf libgdk-pixbuf2.0-dev armhf 2.36.5-2+deb9u2 [53.8 kB]
Get:204 http://172.17.0.1/private stretch-staging/main armhf libgmpxx4ldbl armhf 2:6.1.2+dfsg-1 [21.5 kB]
Get:205 http://172.17.0.1/private stretch-staging/main armhf libgmp-dev armhf 2:6.1.2+dfsg-1 [563 kB]
Get:206 http://172.17.0.1/private stretch-staging/main armhf libgpm-dev armhf 1.20.4-6.2 [35.5 kB]
Get:207 http://172.17.0.1/private stretch-staging/main armhf libgraphite2-dev armhf 1.3.10-1 [21.4 kB]
Get:208 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz-icu0 armhf 1.4.2-1 [465 kB]
Get:209 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz-gobject0 armhf 1.4.2-1 [472 kB]
Get:210 http://172.17.0.1/private stretch-staging/main armhf libicu-dev armhf 57.1-6+deb9u2 [15.8 MB]
Get:211 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz-dev armhf 1.4.2-1 [700 kB]
Get:212 http://172.17.0.1/private stretch-staging/main armhf libxft-dev armhf 2.3.2-1 [59.1 kB]
Get:213 http://172.17.0.1/private stretch-staging/main armhf libpango1.0-dev armhf 1.40.5-1 [427 kB]
Get:214 http://172.17.0.1/private stretch-staging/main armhf x11proto-xinerama-dev all 1.2.1-2 [4938 B]
Get:215 http://172.17.0.1/private stretch-staging/main armhf libxinerama-dev armhf 2:1.1.3-1+b1 [18.7 kB]
Get:216 http://172.17.0.1/private stretch-staging/main armhf x11proto-randr-dev all 1.5.0-1 [49.7 kB]
Get:217 http://172.17.0.1/private stretch-staging/main armhf libxrandr-dev armhf 2:1.5.1-1 [42.5 kB]
Get:218 http://172.17.0.1/private stretch-staging/main armhf libxcursor-dev armhf 1:1.1.14-1+deb9u2 [39.5 kB]
Get:219 http://172.17.0.1/private stretch-staging/main armhf x11proto-composite-dev all 1:0.4.2-2 [15.3 kB]
Get:220 http://172.17.0.1/private stretch-staging/main armhf libxcomposite-dev armhf 1:0.4.4-2 [19.8 kB]
Get:221 http://172.17.0.1/private stretch-staging/main armhf x11proto-damage-dev all 1:1.2.1-2 [11.8 kB]
Get:222 http://172.17.0.1/private stretch-staging/main armhf libxdamage-dev armhf 1:1.1.4-2+b1 [13.9 kB]
Get:223 http://172.17.0.1/private stretch-staging/main armhf xkb-data all 2.19-1+deb9u1 [650 kB]
Get:224 http://172.17.0.1/private stretch-staging/main armhf libxkbcommon0 armhf 0.7.1-2~deb9u1 [110 kB]
Get:225 http://172.17.0.1/private stretch-staging/main armhf libxkbcommon-dev armhf 0.7.1-2~deb9u1 [337 kB]
Get:226 http://172.17.0.1/private stretch-staging/main armhf libgtk-3-dev armhf 3.22.11-1+rpi1 [944 kB]
Get:227 http://172.17.0.1/private stretch-staging/main armhf libxml2-utils armhf 2.9.4+dfsg1-2.2+deb9u2 [101 kB]
Get:228 http://172.17.0.1/private stretch-staging/main armhf libgtk2.0-dev armhf 2.24.31-2 [2334 kB]
Get:229 http://172.17.0.1/private stretch-staging/main armhf liblua5.2-0 armhf 5.2.4-1.1 [82.8 kB]
Get:230 http://172.17.0.1/private stretch-staging/main armhf libtinfo-dev armhf 6.0+20161126-1+deb9u2 [65.6 kB]
Get:231 http://172.17.0.1/private stretch-staging/main armhf libreadline-dev armhf 7.0-3 [109 kB]
Get:232 http://172.17.0.1/private stretch-staging/main armhf liblua5.2-dev armhf 5.2.4-1.1 [115 kB]
Get:233 http://172.17.0.1/private stretch-staging/main armhf libperl-dev armhf 5.24.1-3+deb9u5 [2495 kB]
Get:234 http://172.17.0.1/private stretch-staging/main armhf libpython3.5 armhf 3.5.3-1+deb9u1 [1169 kB]
Get:235 http://172.17.0.1/private stretch-staging/main armhf libpython3.5-dev armhf 3.5.3-1+deb9u1 [36.9 MB]
Get:236 http://172.17.0.1/private stretch-staging/main armhf libpython3-dev armhf 3.5.3-1 [18.7 kB]
Get:237 http://172.17.0.1/private stretch-staging/main armhf rubygems-integration all 1.11 [4994 B]
Get:238 http://172.17.0.1/private stretch-staging/main armhf ruby2.3 armhf 2.3.3-1+deb9u6+rpi1 [188 kB]
Get:239 http://172.17.0.1/private stretch-staging/main armhf ruby armhf 1:2.3.3 [10.8 kB]
Get:240 http://172.17.0.1/private stretch-staging/main armhf rake all 10.5.0-2 [49.4 kB]
Get:241 http://172.17.0.1/private stretch-staging/main armhf ruby-did-you-mean all 1.0.0-2 [11.2 kB]
Get:242 http://172.17.0.1/private stretch-staging/main armhf ruby-minitest all 5.9.0-1 [51.1 kB]
Get:243 http://172.17.0.1/private stretch-staging/main armhf ruby-net-telnet all 0.1.1-2 [12.5 kB]
Get:244 http://172.17.0.1/private stretch-staging/main armhf ruby-power-assert all 0.3.0-1 [7902 B]
Get:245 http://172.17.0.1/private stretch-staging/main armhf ruby-test-unit all 3.1.7-2 [69.6 kB]
Get:246 http://172.17.0.1/private stretch-staging/main armhf libyaml-0-2 armhf 0.1.7-2 [39.9 kB]
Get:247 http://172.17.0.1/private stretch-staging/main armhf libruby2.3 armhf 2.3.3-1+deb9u6+rpi1 [2867 kB]
Get:248 http://172.17.0.1/private stretch-staging/main armhf libsepol1-dev armhf 2.6-2 [285 kB]
Get:249 http://172.17.0.1/private stretch-staging/main armhf libselinux1-dev armhf 2.6-3 [171 kB]
Get:250 http://172.17.0.1/private stretch-staging/main armhf libtcl8.6 armhf 8.6.6+dfsg-1 [861 kB]
Get:251 http://172.17.0.1/private stretch-staging/main armhf libxt6 armhf 1:1.1.5-1 [155 kB]
Get:252 http://172.17.0.1/private stretch-staging/main armhf libxmu6 armhf 2:1.1.2-2 [52.0 kB]
Get:253 http://172.17.0.1/private stretch-staging/main armhf libxpm4 armhf 1:3.5.12-1 [43.6 kB]
Get:254 http://172.17.0.1/private stretch-staging/main armhf libxaw7 armhf 2:1.0.13-1 [164 kB]
Get:255 http://172.17.0.1/private stretch-staging/main armhf libxt-dev armhf 1:1.1.5-1 [390 kB]
Get:256 http://172.17.0.1/private stretch-staging/main armhf libxmu-headers all 2:1.1.2-2 [51.9 kB]
Get:257 http://172.17.0.1/private stretch-staging/main armhf libxmu-dev armhf 2:1.1.2-2 [56.2 kB]
Get:258 http://172.17.0.1/private stretch-staging/main armhf libxpm-dev armhf 1:3.5.12-1 [98.1 kB]
Get:259 http://172.17.0.1/private stretch-staging/main armhf libxaw7-dev armhf 2:1.0.13-1 [223 kB]
Get:260 http://172.17.0.1/private stretch-staging/main armhf lua5.2 armhf 5.2.4-1.1 [74.4 kB]
Get:261 http://172.17.0.1/private stretch-staging/main armhf python3.5-dev armhf 3.5.3-1+deb9u1 [413 kB]
Get:262 http://172.17.0.1/private stretch-staging/main armhf python3-dev armhf 3.5.3-1 [1158 B]
Get:263 http://172.17.0.1/private stretch-staging/main armhf ruby2.3-dev armhf 2.3.3-1+deb9u6+rpi1 [1033 kB]
Get:264 http://172.17.0.1/private stretch-staging/main armhf ruby-dev armhf 1:2.3.3 [9576 B]
Get:265 http://172.17.0.1/private stretch-staging/main armhf tcl8.6 armhf 8.6.6+dfsg-1 [123 kB]
Get:266 http://172.17.0.1/private stretch-staging/main armhf tcl armhf 8.6.0+9 [5502 B]
Get:267 http://172.17.0.1/private stretch-staging/main armhf tcl8.6-dev armhf 8.6.6+dfsg-1 [890 kB]
Get:268 http://172.17.0.1/private stretch-staging/main armhf tcl-dev armhf 8.6.0+9 [7986 B]
Get:269 http://172.17.0.1/private stretch-staging/main armhf libattr1-dev armhf 1:2.4.47-2 [38.7 kB]
Get:270 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 165 MB in 21s (7683 kB/s)
(Reading database ... 12715 files and directories currently installed.)
Preparing to unpack .../libperl5.24_5.24.1-3+deb9u5_armhf.deb ...
Unpacking libperl5.24:armhf (5.24.1-3+deb9u5) over (5.24.1-3+deb9u2) ...
Preparing to unpack .../perl_5.24.1-3+deb9u5_armhf.deb ...
Unpacking perl (5.24.1-3+deb9u5) over (5.24.1-3+deb9u2) ...
Preparing to unpack .../perl-base_5.24.1-3+deb9u5_armhf.deb ...
Unpacking perl-base (5.24.1-3+deb9u5) over (5.24.1-3+deb9u2) ...
Setting up perl-base (5.24.1-3+deb9u5) ...
(Reading database ... 12715 files and directories currently installed.)
Preparing to unpack .../perl-modules-5.24_5.24.1-3+deb9u5_all.deb ...
Unpacking perl-modules-5.24 (5.24.1-3+deb9u5) over (5.24.1-3+deb9u2) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../groff-base_1.22.3-9_armhf.deb ...
Unpacking groff-base (1.22.3-9) ...
Selecting previously unselected package libbsd0:armhf.
Preparing to unpack .../libbsd0_0.8.3-1_armhf.deb ...
Unpacking libbsd0:armhf (0.8.3-1) ...
Preparing to unpack .../libncurses5_6.0+20161126-1+deb9u2_armhf.deb ...
Unpacking libncurses5:armhf (6.0+20161126-1+deb9u2) over (6.0+20161126-1+deb9u1) ...
Preparing to unpack .../libtinfo5_6.0+20161126-1+deb9u2_armhf.deb ...
Unpacking libtinfo5:armhf (6.0+20161126-1+deb9u2) over (6.0+20161126-1+deb9u1) ...
Setting up libtinfo5:armhf (6.0+20161126-1+deb9u2) ...
(Reading database ... 12907 files and directories currently installed.)
Preparing to unpack .../libncursesw5_6.0+20161126-1+deb9u2_armhf.deb ...
Unpacking libncursesw5:armhf (6.0+20161126-1+deb9u2) over (6.0+20161126-1+deb9u1) ...
Setting up libncursesw5:armhf (6.0+20161126-1+deb9u2) ...
Selecting previously unselected package bsdmainutils.
(Reading database ... 12907 files and directories currently installed.)
Preparing to unpack .../00-bsdmainutils_9.0.12+nmu1_armhf.deb ...
Unpacking bsdmainutils (9.0.12+nmu1) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../01-libpipeline1_1.4.1-2_armhf.deb ...
Unpacking libpipeline1:armhf (1.4.1-2) ...
Selecting previously unselected package man-db.
Preparing to unpack .../02-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 .../03-libexpat1_2.2.0-2+deb9u1_armhf.deb ...
Unpacking libexpat1:armhf (2.2.0-2+deb9u1) ...
Preparing to unpack .../04-libpng16-16_1.6.28-1+deb9u1_armhf.deb ...
Unpacking libpng16-16:armhf (1.6.28-1+deb9u1) over (1.6.28-1) ...
Selecting previously unselected package libfreetype6:armhf.
Preparing to unpack .../05-libfreetype6_2.6.3-3.2_armhf.deb ...
Unpacking libfreetype6:armhf (2.6.3-3.2) ...
Selecting previously unselected package ucf.
Preparing to unpack .../06-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 .../07-fonts-dejavu-core_2.37-1_all.deb ...
Unpacking fonts-dejavu-core (2.37-1) ...
Selecting previously unselected package fontconfig-config.
Preparing to unpack .../08-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 .../09-libfontconfig1_2.11.0-6.7_armhf.deb ...
Unpacking libfontconfig1:armhf (2.11.0-6.7) ...
Selecting previously unselected package fontconfig.
Preparing to unpack .../10-fontconfig_2.11.0-6.7_armhf.deb ...
Unpacking fontconfig (2.11.0-6.7) ...
Selecting previously unselected package libjbig0:armhf.
Preparing to unpack .../11-libjbig0_2.1-3.1_armhf.deb ...
Unpacking libjbig0:armhf (2.1-3.1) ...
Selecting previously unselected package liblzo2-2:armhf.
Preparing to unpack .../12-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 .../13-libpcrecpp0v5_2%3a8.39-3_armhf.deb ...
Unpacking libpcrecpp0v5:armhf (2:8.39-3) ...
Selecting previously unselected package libxau6:armhf.
Preparing to unpack .../14-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 .../15-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 .../16-libxcb1_1.12-1_armhf.deb ...
Unpacking libxcb1:armhf (1.12-1) ...
Selecting previously unselected package libx11-data.
Preparing to unpack .../17-libx11-data_2%3a1.6.4-3+deb9u1_all.deb ...
Unpacking libx11-data (2:1.6.4-3+deb9u1) ...
Selecting previously unselected package libx11-6:armhf.
Preparing to unpack .../18-libx11-6_2%3a1.6.4-3+deb9u1_armhf.deb ...
Unpacking libx11-6:armhf (2:1.6.4-3+deb9u1) ...
Selecting previously unselected package libxext6:armhf.
Preparing to unpack .../19-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 .../20-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 .../21-libxft2_2.3.2-1_armhf.deb ...
Unpacking libxft2:armhf (2.3.2-1) ...
Selecting previously unselected package libssl1.1:armhf.
Preparing to unpack .../22-libssl1.1_1.1.0j-1~deb9u1_armhf.deb ...
Unpacking libssl1.1:armhf (1.1.0j-1~deb9u1) ...
Selecting previously unselected package libpython3.5-minimal:armhf.
Preparing to unpack .../23-libpython3.5-minimal_3.5.3-1+deb9u1_armhf.deb ...
Unpacking libpython3.5-minimal:armhf (3.5.3-1+deb9u1) ...
Selecting previously unselected package python3.5-minimal.
Preparing to unpack .../24-python3.5-minimal_3.5.3-1+deb9u1_armhf.deb ...
Unpacking python3.5-minimal (3.5.3-1+deb9u1) ...
Selecting previously unselected package python3-minimal.
Preparing to unpack .../25-python3-minimal_3.5.3-1_armhf.deb ...
Unpacking python3-minimal (3.5.3-1) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../26-mime-support_3.60_all.deb ...
Unpacking mime-support (3.60) ...
Selecting previously unselected package libmpdec2:armhf.
Preparing to unpack .../27-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 .../28-libpython3.5-stdlib_3.5.3-1+deb9u1_armhf.deb ...
Unpacking libpython3.5-stdlib:armhf (3.5.3-1+deb9u1) ...
Selecting previously unselected package python3.5.
Preparing to unpack .../29-python3.5_3.5.3-1+deb9u1_armhf.deb ...
Unpacking python3.5 (3.5.3-1+deb9u1) ...
Selecting previously unselected package libpython3-stdlib:armhf.
Preparing to unpack .../30-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 .../31-dh-python_2.20170125_all.deb ...
Unpacking dh-python (2.20170125) ...
Setting up libssl1.1:armhf (1.1.0j-1~deb9u1) ...
Setting up libpython3.5-minimal:armhf (3.5.3-1+deb9u1) ...
Setting up libexpat1:armhf (2.2.0-2+deb9u1) ...
Setting up python3.5-minimal (3.5.3-1+deb9u1) ...
Setting up python3-minimal (3.5.3-1) ...
Selecting previously unselected package python3.
(Reading database ... 14744 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.2r-1~deb9u1_armhf.deb ...
Unpacking libssl1.0.2:armhf (1.0.2r-1~deb9u1) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../003-libmagic-mgc_1%3a5.30-1+deb9u2_armhf.deb ...
Unpacking libmagic-mgc (1:5.30-1+deb9u2) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../004-libmagic1_1%3a5.30-1+deb9u2_armhf.deb ...
Unpacking libmagic1:armhf (1:5.30-1+deb9u2) ...
Selecting previously unselected package file.
Preparing to unpack .../005-file_1%3a5.30-1+deb9u2_armhf.deb ...
Unpacking file (1:5.30-1+deb9u2) ...
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.1+deb9u1_armhf.deb ...
Unpacking libtasn1-6:armhf (4.10-1.1+deb9u1) ...
Selecting previously unselected package libgnutls30:armhf.
Preparing to unpack .../012-libgnutls30_3.5.8-5+deb9u4_armhf.deb ...
Unpacking libgnutls30:armhf (3.5.8-5+deb9u4) ...
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+deb9u1_armhf.deb ...
Unpacking libkrb5support0:armhf (1.15-1+deb9u1) ...
Selecting previously unselected package libk5crypto3:armhf.
Preparing to unpack .../016-libk5crypto3_1.15-1+deb9u1_armhf.deb ...
Unpacking libk5crypto3:armhf (1.15-1+deb9u1) ...
Selecting previously unselected package libkrb5-3:armhf.
Preparing to unpack .../017-libkrb5-3_1.15-1+deb9u1_armhf.deb ...
Unpacking libkrb5-3:armhf (1.15-1+deb9u1) ...
Selecting previously unselected package libgssapi-krb5-2:armhf.
Preparing to unpack .../018-libgssapi-krb5-2_1.15-1+deb9u1_armhf.deb ...
Unpacking libgssapi-krb5-2:armhf (1.15-1+deb9u1) ...
Selecting previously unselected package libicu57:armhf.
Preparing to unpack .../019-libicu57_57.1-6+deb9u2_armhf.deb ...
Unpacking libicu57:armhf (57.1-6+deb9u2) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../020-libxml2_2.9.4+dfsg1-2.2+deb9u2_armhf.deb ...
Unpacking libxml2:armhf (2.9.4+dfsg1-2.2+deb9u2) ...
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-2_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.50.3-2) ...
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.8-2+deb9u4_armhf.deb ...
Unpacking libtiff5:armhf (4.0.8-2+deb9u4) ...
Selecting previously unselected package shared-mime-info.
Preparing to unpack .../025-shared-mime-info_1.8-1+deb9u1_armhf.deb ...
Unpacking shared-mime-info (1.8-1+deb9u1) ...
Selecting previously unselected package libgdk-pixbuf2.0-common.
Preparing to unpack .../026-libgdk-pixbuf2.0-common_2.36.5-2+deb9u2_all.deb ...
Unpacking libgdk-pixbuf2.0-common (2.36.5-2+deb9u2) ...
Selecting previously unselected package libgdk-pixbuf2.0-0:armhf.
Preparing to unpack .../027-libgdk-pixbuf2.0-0_2.36.5-2+deb9u2_armhf.deb ...
Unpacking libgdk-pixbuf2.0-0:armhf (2.36.5-2+deb9u2) ...
Selecting previously unselected package gtk-update-icon-cache.
Preparing to unpack .../028-gtk-update-icon-cache_3.22.11-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.11-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-3_armhf.deb ...
Unpacking libcroco3:armhf (0.6.11-3) ...
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.5-1_armhf.deb ...
Unpacking libpango-1.0-0:armhf (1.40.5-1) ...
Selecting previously unselected package libgraphite2-3:armhf.
Preparing to unpack .../038-libgraphite2-3_1.3.10-1_armhf.deb ...
Unpacking libgraphite2-3:armhf (1.3.10-1) ...
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.5-1_armhf.deb ...
Unpacking libpangoft2-1.0-0:armhf (1.40.5-1) ...
Selecting previously unselected package libpangocairo-1.0-0:armhf.
Preparing to unpack .../041-libpangocairo-1.0-0_1.40.5-1_armhf.deb ...
Unpacking libpangocairo-1.0-0:armhf (1.40.5-1) ...
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+deb9u1_all.deb ...
Unpacking adwaita-icon-theme (3.22.0-1+deb9u1) ...
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.0j-1~deb9u1_armhf.deb ...
Unpacking openssl (1.1.0j-1~deb9u1) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../052-ca-certificates_20161130+nmu1+deb9u1_all.deb ...
Unpacking ca-certificates (20161130+nmu1+deb9u1) ...
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_14_all.deb ...
Unpacking dh-autoreconf (14) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../058-libarchive-zip-perl_1.59-1+deb9u1_all.deb ...
Unpacking libarchive-zip-perl (1.59-1+deb9u1) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../059-libfile-stripnondeterminism-perl_0.034-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (0.034-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.034-1_all.deb ...
Unpacking dh-strip-nondeterminism (0.034-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) ...
Preparing to unpack .../072-libdbus-1-3_1.10.28-0+deb9u1_armhf.deb ...
Unpacking libdbus-1-3:armhf (1.10.28-0+deb9u1) over (1.10.22-0+deb9u1) ...
Selecting previously unselected package libatspi2.0-0:armhf.
Preparing to unpack .../073-libatspi2.0-0_2.22.0-6+deb9u1_armhf.deb ...
Unpacking libatspi2.0-0:armhf (2.22.0-6+deb9u1) ...
Selecting previously unselected package gir1.2-atspi-2.0:armhf.
Preparing to unpack .../074-gir1.2-atspi-2.0_2.22.0-6+deb9u1_armhf.deb ...
Unpacking gir1.2-atspi-2.0:armhf (2.22.0-6+deb9u1) ...
Selecting previously unselected package libcairo-gobject2:armhf.
Preparing to unpack .../075-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 .../076-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 .../077-gir1.2-gdkpixbuf-2.0_2.36.5-2+deb9u2_armhf.deb ...
Unpacking gir1.2-gdkpixbuf-2.0:armhf (2.36.5-2+deb9u2) ...
Selecting previously unselected package libgtk2.0-common.
Preparing to unpack .../078-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 .../079-libpangoxft-1.0-0_1.40.5-1_armhf.deb ...
Unpacking libpangoxft-1.0-0:armhf (1.40.5-1) ...
Selecting previously unselected package gir1.2-pango-1.0:armhf.
Preparing to unpack .../080-gir1.2-pango-1.0_1.40.5-1_armhf.deb ...
Unpacking gir1.2-pango-1.0:armhf (1.40.5-1) ...
Selecting previously unselected package libavahi-common-data:armhf.
Preparing to unpack .../081-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 .../082-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 .../083-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 .../084-libcups2_2.2.1-8+deb9u2_armhf.deb ...
Unpacking libcups2:armhf (2.2.1-8+deb9u2) ...
Selecting previously unselected package libxcomposite1:armhf.
Preparing to unpack .../085-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 .../086-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 .../087-libxcursor1_1%3a1.1.14-1+deb9u2_armhf.deb ...
Unpacking libxcursor1:armhf (1:1.1.14-1+deb9u2) ...
Selecting previously unselected package libxdamage1:armhf.
Preparing to unpack .../088-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 .../089-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 .../090-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 .../091-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 .../092-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 .../093-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 .../094-libgtk-3-common_3.22.11-1+rpi1_all.deb ...
Unpacking libgtk-3-common (3.22.11-1+rpi1) ...
Selecting previously unselected package libatk-bridge2.0-0:armhf.
Preparing to unpack .../095-libatk-bridge2.0-0_2.22.0-2_armhf.deb ...
Unpacking libatk-bridge2.0-0:armhf (2.22.0-2) ...
Selecting previously unselected package liblcms2-2:armhf.
Preparing to unpack .../096-liblcms2-2_2.8-4+deb9u1_armhf.deb ...
Unpacking liblcms2-2:armhf (2.8-4+deb9u1) ...
Selecting previously unselected package libcolord2:armhf.
Preparing to unpack .../097-libcolord2_1.3.3-2_armhf.deb ...
Unpacking libcolord2:armhf (1.3.3-2) ...
Selecting previously unselected package libepoxy0:armhf.
Preparing to unpack .../098-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 .../099-libjson-glib-1.0-common_1.2.6-1_all.deb ...
Unpacking libjson-glib-1.0-common (1.2.6-1) ...
Selecting previously unselected package libjson-glib-1.0-0:armhf.
Preparing to unpack .../100-libjson-glib-1.0-0_1.2.6-1_armhf.deb ...
Unpacking libjson-glib-1.0-0:armhf (1.2.6-1) ...
Selecting previously unselected package libproxy1v5:armhf.
Preparing to unpack .../101-libproxy1v5_0.4.14-2_armhf.deb ...
Unpacking libproxy1v5:armhf (0.4.14-2) ...
Selecting previously unselected package glib-networking-common.
Preparing to unpack .../102-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 .../103-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 .../104-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 .../105-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 .../106-libsoup2.4-1_2.56.0-2+deb9u2_armhf.deb ...
Unpacking libsoup2.4-1:armhf (2.56.0-2+deb9u2) ...
Selecting previously unselected package libsoup-gnome2.4-1:armhf.
Preparing to unpack .../107-libsoup-gnome2.4-1_2.56.0-2+deb9u2_armhf.deb ...
Unpacking libsoup-gnome2.4-1:armhf (2.56.0-2+deb9u2) ...
Selecting previously unselected package librest-0.7-0:armhf.
Preparing to unpack .../108-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 .../109-libgtk-3-0_3.22.11-1+rpi1_armhf.deb ...
Unpacking libgtk-3-0:armhf (3.22.11-1+rpi1) ...
Selecting previously unselected package gir1.2-gtk-3.0:armhf.
Preparing to unpack .../110-gir1.2-gtk-3.0_3.22.11-1+rpi1_armhf.deb ...
Unpacking gir1.2-gtk-3.0:armhf (3.22.11-1+rpi1) ...
Selecting previously unselected package icu-devtools.
Preparing to unpack .../111-icu-devtools_57.1-6+deb9u2_armhf.deb ...
Unpacking icu-devtools (57.1-6+deb9u2) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../112-libelf1_0.168-1_armhf.deb ...
Unpacking libelf1:armhf (0.168-1) ...
Selecting previously unselected package libglib2.0-data.
Preparing to unpack .../113-libglib2.0-data_2.50.3-2_all.deb ...
Unpacking libglib2.0-data (2.50.3-2) ...
Selecting previously unselected package libglib2.0-bin.
Preparing to unpack .../114-libglib2.0-bin_2.50.3-2_armhf.deb ...
Unpacking libglib2.0-bin (2.50.3-2) ...
Selecting previously unselected package libpcre16-3:armhf.
Preparing to unpack .../115-libpcre16-3_2%3a8.39-3_armhf.deb ...
Unpacking libpcre16-3:armhf (2:8.39-3) ...
Selecting previously unselected package libpcre32-3:armhf.
Preparing to unpack .../116-libpcre32-3_2%3a8.39-3_armhf.deb ...
Unpacking libpcre32-3:armhf (2:8.39-3) ...
Selecting previously unselected package libpcre3-dev:armhf.
Preparing to unpack .../117-libpcre3-dev_2%3a8.39-3_armhf.deb ...
Unpacking libpcre3-dev:armhf (2:8.39-3) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../118-pkg-config_0.29-4_armhf.deb ...
Unpacking pkg-config (0.29-4) ...
Selecting previously unselected package zlib1g-dev:armhf.
Preparing to unpack .../119-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 .../120-libglib2.0-dev_2.50.3-2_armhf.deb ...
Unpacking libglib2.0-dev (2.50.3-2) ...
Selecting previously unselected package libdbus-1-dev:armhf.
Preparing to unpack .../121-libdbus-1-dev_1.10.28-0+deb9u1_armhf.deb ...
Unpacking libdbus-1-dev:armhf (1.10.28-0+deb9u1) ...
Selecting previously unselected package x11-common.
Preparing to unpack .../122-x11-common_1%3a7.7+19_all.deb ...
Unpacking x11-common (1:7.7+19) ...
Selecting previously unselected package libxtst6:armhf.
Preparing to unpack .../123-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 .../124-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 .../125-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 .../126-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 .../127-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 .../128-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 .../129-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 .../130-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 .../131-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 .../132-libxcb1-dev_1.12-1_armhf.deb ...
Unpacking libxcb1-dev:armhf (1.12-1) ...
Selecting previously unselected package libx11-dev:armhf.
Preparing to unpack .../133-libx11-dev_2%3a1.6.4-3+deb9u1_armhf.deb ...
Unpacking libx11-dev:armhf (2:1.6.4-3+deb9u1) ...
Selecting previously unselected package x11proto-xext-dev.
Preparing to unpack .../134-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 .../135-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 .../136-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 .../137-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 .../138-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 .../139-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 .../140-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 .../141-libatspi2.0-dev_2.22.0-6+deb9u1_armhf.deb ...
Unpacking libatspi2.0-dev:armhf (2.22.0-6+deb9u1) ...
Selecting previously unselected package libatk-bridge2.0-dev:armhf.
Preparing to unpack .../142-libatk-bridge2.0-dev_2.22.0-2_armhf.deb ...
Unpacking libatk-bridge2.0-dev:armhf (2.22.0-2) ...
Selecting previously unselected package libatk1.0-dev:armhf.
Preparing to unpack .../143-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 .../144-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 .../145-libexpat1-dev_2.2.0-2+deb9u1_armhf.deb ...
Unpacking libexpat1-dev:armhf (2.2.0-2+deb9u1) ...
Selecting previously unselected package libpng-dev:armhf.
Preparing to unpack .../146-libpng-dev_1.6.28-1+deb9u1_armhf.deb ...
Unpacking libpng-dev:armhf (1.6.28-1+deb9u1) ...
Selecting previously unselected package libfreetype6-dev.
Preparing to unpack .../147-libfreetype6-dev_2.6.3-3.2_armhf.deb ...
Unpacking libfreetype6-dev (2.6.3-3.2) ...
Selecting previously unselected package libfontconfig1-dev:armhf.
Preparing to unpack .../148-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 .../149-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 .../150-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 .../151-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 .../152-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 .../153-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 .../154-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 .../155-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 .../156-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 .../157-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 .../158-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 .../159-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 .../160-libgdk-pixbuf2.0-dev_2.36.5-2+deb9u2_armhf.deb ...
Unpacking libgdk-pixbuf2.0-dev (2.36.5-2+deb9u2) ...
Selecting previously unselected package libgmpxx4ldbl:armhf.
Preparing to unpack .../161-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 .../162-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 .../163-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 .../164-libgraphite2-dev_1.3.10-1_armhf.deb ...
Unpacking libgraphite2-dev (1.3.10-1) ...
Selecting previously unselected package libharfbuzz-icu0:armhf.
Preparing to unpack .../165-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 .../166-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 .../167-libicu-dev_57.1-6+deb9u2_armhf.deb ...
Unpacking libicu-dev (57.1-6+deb9u2) ...
Selecting previously unselected package libharfbuzz-dev:armhf.
Preparing to unpack .../168-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 .../169-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 .../170-libpango1.0-dev_1.40.5-1_armhf.deb ...
Unpacking libpango1.0-dev (1.40.5-1) ...
Selecting previously unselected package x11proto-xinerama-dev.
Preparing to unpack .../171-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 .../172-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 .../173-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 .../174-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 .../175-libxcursor-dev_1%3a1.1.14-1+deb9u2_armhf.deb ...
Unpacking libxcursor-dev:armhf (1:1.1.14-1+deb9u2) ...
Selecting previously unselected package x11proto-composite-dev.
Preparing to unpack .../176-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 .../177-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 .../178-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 .../179-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 .../180-xkb-data_2.19-1+deb9u1_all.deb ...
Unpacking xkb-data (2.19-1+deb9u1) ...
Selecting previously unselected package libxkbcommon0:armhf.
Preparing to unpack .../181-libxkbcommon0_0.7.1-2~deb9u1_armhf.deb ...
Unpacking libxkbcommon0:armhf (0.7.1-2~deb9u1) ...
Selecting previously unselected package libxkbcommon-dev.
Preparing to unpack .../182-libxkbcommon-dev_0.7.1-2~deb9u1_armhf.deb ...
Unpacking libxkbcommon-dev (0.7.1-2~deb9u1) ...
Selecting previously unselected package libgtk-3-dev:armhf.
Preparing to unpack .../183-libgtk-3-dev_3.22.11-1+rpi1_armhf.deb ...
Unpacking libgtk-3-dev:armhf (3.22.11-1+rpi1) ...
Selecting previously unselected package libxml2-utils.
Preparing to unpack .../184-libxml2-utils_2.9.4+dfsg1-2.2+deb9u2_armhf.deb ...
Unpacking libxml2-utils (2.9.4+dfsg1-2.2+deb9u2) ...
Selecting previously unselected package libgtk2.0-dev.
Preparing to unpack .../185-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 .../186-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 .../187-libtinfo-dev_6.0+20161126-1+deb9u2_armhf.deb ...
Unpacking libtinfo-dev:armhf (6.0+20161126-1+deb9u2) ...
Selecting previously unselected package libreadline-dev:armhf.
Preparing to unpack .../188-libreadline-dev_7.0-3_armhf.deb ...
Unpacking libreadline-dev:armhf (7.0-3) ...
Selecting previously unselected package liblua5.2-dev:armhf.
Preparing to unpack .../189-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 .../190-libperl-dev_5.24.1-3+deb9u5_armhf.deb ...
Unpacking libperl-dev (5.24.1-3+deb9u5) ...
Selecting previously unselected package libpython3.5:armhf.
Preparing to unpack .../191-libpython3.5_3.5.3-1+deb9u1_armhf.deb ...
Unpacking libpython3.5:armhf (3.5.3-1+deb9u1) ...
Selecting previously unselected package libpython3.5-dev:armhf.
Preparing to unpack .../192-libpython3.5-dev_3.5.3-1+deb9u1_armhf.deb ...
Unpacking libpython3.5-dev:armhf (3.5.3-1+deb9u1) ...
Selecting previously unselected package libpython3-dev:armhf.
Preparing to unpack .../193-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 .../194-rubygems-integration_1.11_all.deb ...
Unpacking rubygems-integration (1.11) ...
Selecting previously unselected package ruby2.3.
Preparing to unpack .../195-ruby2.3_2.3.3-1+deb9u6+rpi1_armhf.deb ...
Unpacking ruby2.3 (2.3.3-1+deb9u6+rpi1) ...
Selecting previously unselected package ruby.
Preparing to unpack .../196-ruby_1%3a2.3.3_armhf.deb ...
Unpacking ruby (1:2.3.3) ...
Selecting previously unselected package rake.
Preparing to unpack .../197-rake_10.5.0-2_all.deb ...
Unpacking rake (10.5.0-2) ...
Selecting previously unselected package ruby-did-you-mean.
Preparing to unpack .../198-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 .../199-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 .../200-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 .../201-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 .../202-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 .../203-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 .../204-libruby2.3_2.3.3-1+deb9u6+rpi1_armhf.deb ...
Unpacking libruby2.3:armhf (2.3.3-1+deb9u6+rpi1) ...
Selecting previously unselected package libsepol1-dev:armhf.
Preparing to unpack .../205-libsepol1-dev_2.6-2_armhf.deb ...
Unpacking libsepol1-dev:armhf (2.6-2) ...
Selecting previously unselected package libselinux1-dev:armhf.
Preparing to unpack .../206-libselinux1-dev_2.6-3_armhf.deb ...
Unpacking libselinux1-dev:armhf (2.6-3) ...
Selecting previously unselected package libtcl8.6:armhf.
Preparing to unpack .../207-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 .../208-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 .../209-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 .../210-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 .../211-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 .../212-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 .../213-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 .../214-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 .../215-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 .../216-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 .../217-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 .../218-python3.5-dev_3.5.3-1+deb9u1_armhf.deb ...
Unpacking python3.5-dev (3.5.3-1+deb9u1) ...
Selecting previously unselected package python3-dev.
Preparing to unpack .../219-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 .../220-ruby2.3-dev_2.3.3-1+deb9u6+rpi1_armhf.deb ...
Unpacking ruby2.3-dev:armhf (2.3.3-1+deb9u6+rpi1) ...
Selecting previously unselected package ruby-dev:armhf.
Preparing to unpack .../221-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 .../222-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 .../223-tcl_8.6.0+9_armhf.deb ...
Unpacking tcl (8.6.0+9) ...
Selecting previously unselected package tcl8.6-dev:armhf.
Preparing to unpack .../224-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 .../225-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 .../226-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 .../227-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 .../228-sbuild-build-depends-vim-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-vim-dummy (0.invalid.0) ...
Setting up libncurses5:armhf (6.0+20161126-1+deb9u2) ...
Setting up libsepol1-dev:armhf (2.6-2) ...
Setting up perl-modules-5.24 (5.24.1-3+deb9u5) ...
Setting up libperl5.24:armhf (5.24.1-3+deb9u5) ...
Setting up libnettle6:armhf (3.3-1) ...
Setting up libjson-glib-1.0-common (1.2.6-1) ...
Setting up libgtk2.0-common (2.24.31-2) ...
Setting up glib-networking-common (2.50.0-1) ...
Setting up libjpeg62-turbo:armhf (1:1.5.1-2) ...
Setting up mime-support (3.60) ...
Setting up libpng16-16:armhf (1.6.28-1+deb9u1) ...
Setting up liblcms2-2:armhf (2.8-4+deb9u1) ...
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-1) ...
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+deb9u1) ...
Setting up libproxy1v5:armhf (0.4.14-2) ...
Setting up libtinfo-dev:armhf (6.0+20161126-1+deb9u2) ...
Setting up libgdk-pixbuf2.0-common (2.36.5-2+deb9u2) ...
Setting up libdatrie1:armhf (0.2.10-4) ...
Setting up libtiff5:armhf (4.0.8-2+deb9u4) ...
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-6+deb9u2) ...
Setting up libbsd0:armhf (0.8.3-1) ...
Setting up ucf (3.0036) ...
Setting up libxml2:armhf (2.9.4+dfsg1-2.2+deb9u2) ...
Setting up libfreetype6:armhf (2.6.3-3.2) ...
Setting up libtasn1-6:armhf (4.10-1.1+deb9u1) ...
Setting up libmagic-mgc (1:5.30-1+deb9u2) ...
Setting up libmagic1:armhf (1:5.30-1+deb9u2) ...
Setting up libhogweed4:armhf (3.3-1) ...
Setting up libgraphite2-3:armhf (1.3.10-1) ...
Setting up perl (5.24.1-3+deb9u5) ...
Setting up libssl1.0.2:armhf (1.0.2r-1~deb9u1) ...
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-2) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
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-25+deb9u1) ...
Setting up openssl (1.1.0j-1~deb9u1) ...
Setting up ruby-net-telnet (0.1.1-2) ...
Setting up libreadline-dev:armhf (7.0-3) ...
Setting up libexpat1-dev:armhf (2.2.0-2+deb9u1) ...
Setting up libxkbcommon0:armhf (0.7.1-2~deb9u1) ...
Setting up libpcrecpp0v5:armhf (2:8.39-3) ...
Setting up libpcre32-3:armhf (2:8.39-3) ...
Setting up libffi6:armhf (3.2.1-6) ...
Setting up icu-devtools (57.1-6+deb9u2) ...
Setting up liblua5.2-0:armhf (5.2.4-1.1) ...
Setting up libpcre16-3:armhf (2:8.39-3) ...
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+nmu1) ...
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+19) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
invoke-rc.d: could not determine current runlevel
All runlevel operations denied by policy
invoke-rc.d: policy-rc.d denied execution of start.
Setting up ca-certificates (20161130+nmu1+deb9u1) ...
Updating certificates in /etc/ssl/certs...
151 added, 0 removed; done.
Setting up hicolor-icon-theme (0.15-1) ...
Setting up libgraphite2-dev (1.3.10-1) ...
Setting up libx11-data (2:1.6.4-3+deb9u1) ...
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 libdbus-1-3:armhf (1.10.28-0+deb9u1) ...
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 libgmp-dev:armhf (2:6.1.2+dfsg-1) ...
Setting up libpcre3-dev:armhf (2:8.39-3) ...
Setting up fontconfig-config (2.11.0-6.7) ...
Setting up libperl-dev (5.24.1-3+deb9u5) ...
Setting up libxkbcommon-dev (0.7.1-2~deb9u1) ...
Setting up libarchive-zip-perl (1.59-1+deb9u1) ...
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 libtimedate-perl (2.3000-2) ...
Setting up libglib2.0-0:armhf (2.50.3-2) ...
Setting up libpython3.5-stdlib:armhf (3.5.3-1+deb9u1) ...
Setting up libxml2-utils (2.9.4+dfsg1-2.2+deb9u2) ...
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-6+deb9u2) ...
Setting up file (1:5.30-1+deb9u2) ...
Setting up libkrb5support0:armhf (1.15-1+deb9u1) ...
Setting up libgirepository-1.0-1:armhf (1.50.0-1) ...
Setting up libjson-glib-1.0-0:armhf (1.2.6-1) ...
Setting up libcroco3:armhf (0.6.11-3) ...
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+deb9u1) ...
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+deb9u1) ...
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-2) ...
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 libfile-stripnondeterminism-perl (0.034-1) ...
Setting up libtool (2.4.6-2) ...
Setting up python3.5 (3.5.3-1+deb9u1) ...
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.28-0+deb9u1) ...
Setting up libsm6:armhf (2:1.2.2-1+b1) ...
Setting up libk5crypto3:armhf (1.15-1+deb9u1) ...
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+deb9u1) ...
Setting up libgnutls30:armhf (3.5.8-5+deb9u4) ...
Setting up libx11-6:armhf (2:1.6.4-3+deb9u1) ...
Setting up tcl (8.6.0+9) ...
Setting up libpython3.5-dev:armhf (3.5.3-1+deb9u1) ...
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.2) ...
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+deb9u1) ...
Setting up libx11-dev:armhf (2:1.6.4-3+deb9u1) ...
Setting up libxft2:armhf (2.3.2-1) ...
Setting up python3.5-dev (3.5.3-1+deb9u1) ...
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.11-1+rpi1) ...
Setting up libxpm-dev:armhf (1:3.5.12-1) ...
Setting up libatspi2.0-0:armhf (2.22.0-6+deb9u1) ...
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+deb9u2) ...
Setting up libxcb-shm0-dev:armhf (1.12-1) ...
Setting up gir1.2-gdkpixbuf-2.0:armhf (2.36.5-2+deb9u2) ...
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+deb9u1) ...
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.11-1+rpi1) ...
Setting up libxcursor1:armhf (1:1.1.14-1+deb9u2) ...
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.5-1) ...
Setting up libatk-bridge2.0-0:armhf (2.22.0-2) ...
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+deb9u2) ...
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-6+deb9u1) ...
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+deb9u2) ...
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+deb9u2) ...
Setting up libxdamage-dev:armhf (1:1.1.4-2+b1) ...
Setting up libsoup-gnome2.4-1:armhf (2.56.0-2+deb9u2) ...
Setting up libxtst6:armhf (2:1.2.3-1) ...
Setting up libpangoft2-1.0-0:armhf (1.40.5-1) ...
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.5-1) ...
Setting up libpangocairo-1.0-0:armhf (1.40.5-1) ...
Setting up gir1.2-pango-1.0:armhf (1.40.5-1) ...
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+deb9u1) ...
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.11-1+rpi1) ...
Setting up gir1.2-gtk-2.0 (2.24.31-2) ...
Setting up gir1.2-gtk-3.0:armhf (3.22.11-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-2) ...
Setting up libgdk-pixbuf2.0-dev (2.36.5-2+deb9u2) ...
Setting up libruby2.3:armhf (2.3.3-1+deb9u6+rpi1) ...
Setting up libharfbuzz-dev:armhf (1.4.2-1) ...
Setting up dh-python (2.20170125) ...
Setting up dh-autoreconf (14) ...
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+deb9u6+rpi1) ...
Setting up libatspi2.0-dev:armhf (2.22.0-6+deb9u1) ...
Setting up ruby2.3-dev:armhf (2.3.3-1+deb9u6+rpi1) ...
Setting up dh-strip-nondeterminism (0.034-1) ...
Setting up ruby-dev:armhf (1:2.3.3) ...
Setting up libatk-bridge2.0-dev:armhf (2.22.0-2) ...
Setting up libpango1.0-dev (1.40.5-1) ...
Setting up ruby (1:2.3.3) ...
Setting up debhelper (10.2.5) ...
Setting up libgtk-3-dev:armhf (3.22.11-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-11+deb9u1) ...
Processing triggers for systemd (232-25+deb9u1) ...
Processing triggers for ca-certificates (20161130+nmu1+deb9u1) ...
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+deb9u2) ...
W: No sandbox user '_apt' on the system, can not drop privileges

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

Kernel: Linux 4.9.0-0.bpo.2-armmp armhf (armv7l)
Toolchain package versions: binutils_2.28-5 dpkg-dev_1.18.24 g++-6_6.3.0-18+rpi1 gcc-6_6.3.0-18+rpi1 libc6-dev_2.24-11+deb9u1 libstdc++-6-dev_6.3.0-18+rpi1 libstdc++6_6.3.0-18+rpi1 linux-libc-dev_4.9.30-2+deb9u2+rpi1+stretch
Package versions: adduser_3.115 adwaita-icon-theme_3.22.0-1+deb9u1 apt_1.4.7 autoconf_2.69-10 automake_1:1.15-6 autopoint_0.19.8.1-2 autotools-dev_20161112.1 base-files_9.9+rpi1+deb9u1 base-passwd_3.5.43 bash_4.4-5 binutils_2.28-5 bsdmainutils_9.0.12+nmu1 bsdutils_1:2.29.2-1 build-essential_12.3 bzip2_1.0.6-8.1 ca-certificates_20161130+nmu1+deb9u1 coreutils_8.26-3 cpio_2.11+dfsg-6 cpp_4:6.3.0-4 cpp-6_6.3.0-18+rpi1 dash_0.5.8-2.4 dconf-gsettings-backend_0.26.0-2 dconf-service_0.26.0-2 debconf_1.5.61 debhelper_10.2.5 debianutils_4.8.1.1 dh-autoreconf_14 dh-python_2.20170125 dh-strip-nondeterminism_0.034-1 diffutils_1:3.5-3 dmsetup_2:1.02.137-2 dpkg_1.18.24 dpkg-dev_1.18.24 e2fslibs_1.43.4-2 e2fsprogs_1.43.4-2 fakeroot_1.21-3.1 file_1:5.30-1+deb9u2 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 g++_4:6.3.0-4 g++-6_6.3.0-18+rpi1 gcc_4:6.3.0-4 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-5-base_5.4.1-4 gcc-6_6.3.0-18+rpi1 gcc-6-base_6.3.0-18+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-6+deb9u1 gir1.2-freedesktop_1.50.0-1 gir1.2-gdkpixbuf-2.0_2.36.5-2+deb9u2 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.11-1+rpi1 gir1.2-pango-1.0_1.40.5-1 glib-networking_2.50.0-1 glib-networking-common_2.50.0-1 glib-networking-services_2.50.0-1 gnupg_2.1.18-6 gnupg-agent_2.1.18-6 gpgv_2.1.18-6 grep_2.27-2 groff-base_1.22.3-9 gsettings-desktop-schemas_3.22.0-1 gtk-update-icon-cache_3.22.11-1+rpi1 gzip_1.6-5 hicolor-icon-theme_0.15-1 hostname_3.18 icu-devtools_57.1-6+deb9u2 init-system-helpers_1.48 initramfs-tools_0.130 initramfs-tools-core_0.130 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-3 libapt-pkg5.0_1.4.7 libarchive-zip-perl_1.59-1+deb9u1 libasan3_6.3.0-18+rpi1 libassuan0_2.4.3-2 libatk-bridge2.0-0_2.22.0-2 libatk-bridge2.0-dev_2.22.0-2 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-18+rpi1 libatspi2.0-0_2.22.0-6+deb9u1 libatspi2.0-dev_2.22.0-6+deb9u1 libattr1_1:2.4.47-2 libattr1-dev_1:2.4.47-2 libaudit-common_1:2.6.7-2 libaudit1_1:2.6.7-2 libavahi-client3_0.6.32-2 libavahi-common-data_0.6.32-2 libavahi-common3_0.6.32-2 libblkid1_2.29.2-1 libbsd0_0.8.3-1 libbz2-1.0_1.0.6-8.1 libc-bin_2.24-11+deb9u1 libc-dev-bin_2.24-11+deb9u1 libc6_2.24-11+deb9u1 libc6-dev_2.24-11+deb9u1 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 libcc1-0_6.3.0-18+rpi1 libcolord2_1.3.3-2 libcomerr2_1.43.4-2 libcroco3_0.6.11-3 libcryptsetup4_2:1.7.3-4 libcups2_2.2.1-8+deb9u2 libdatrie1_0.2.10-4 libdb5.3_5.3.28-12+deb9u1 libdbus-1-3_1.10.28-0+deb9u1 libdbus-1-dev_1.10.28-0+deb9u1 libdconf1_0.26.0-2 libdebconfclient0_0.227 libdevmapper1.02.1_2:1.02.137-2 libdpkg-perl_1.18.24 libdrm2_2.4.74-1 libelf1_0.168-1 libepoxy-dev_1.3.1-2 libepoxy0_1.3.1-2 libexpat1_2.2.0-2+deb9u1 libexpat1-dev_2.2.0-2+deb9u1 libfakeroot_1.21-3.1 libfdisk1_2.29.2-1 libffi6_3.2.1-6 libfile-stripnondeterminism-perl_0.034-1 libfontconfig1_2.11.0-6.7 libfontconfig1-dev_2.11.0-6.7 libfreetype6_2.6.3-3.2 libfreetype6-dev_2.6.3-3.2 libgcc-6-dev_6.3.0-18+rpi1 libgcc1_1:6.3.0-18+rpi1 libgcrypt20_1.7.6-2+deb9u2 libgdbm3_1.8.3-14 libgdk-pixbuf2.0-0_2.36.5-2+deb9u2 libgdk-pixbuf2.0-common_2.36.5-2+deb9u2 libgdk-pixbuf2.0-dev_2.36.5-2+deb9u2 libgirepository-1.0-1_1.50.0-1 libglib2.0-0_2.50.3-2 libglib2.0-bin_2.50.3-2 libglib2.0-data_2.50.3-2 libglib2.0-dev_2.50.3-2 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-5+deb9u4 libgomp1_6.3.0-18+rpi1 libgpg-error0_1.26-2 libgpm-dev_1.20.4-6.2 libgpm2_1.20.4-6.2 libgraphite2-3_1.3.10-1 libgraphite2-dev_1.3.10-1 libgssapi-krb5-2_1.15-1+deb9u1 libgtk-3-0_3.22.11-1+rpi1 libgtk-3-common_3.22.11-1+rpi1 libgtk-3-dev_3.22.11-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-6+deb9u2 libicu57_57.1-6+deb9u2 libidn11_1.33-1 libip4tc0_1.6.0+snapshot20161117-6 libisl15_0.18-1 libjbig0_2.1-3.1 libjpeg62-turbo_1:1.5.1-2 libjson-glib-1.0-0_1.2.6-1 libjson-glib-1.0-common_1.2.6-1 libk5crypto3_1.15-1+deb9u1 libkeyutils1_1.5.9-9 libklibc_2.0.4-9+rpi1 libkmod2_23-2 libkrb5-3_1.15-1+deb9u1 libkrb5support0_1.15-1+deb9u1 libksba8_1.3.5-2 liblcms2-2_2.8-4+deb9u1 liblocale-gettext-perl_1.07-3+b1 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.30-1+deb9u2 libmagic1_1:5.30-1+deb9u2 libmount1_2.29.2-1 libmpc3_1.0.3-1 libmpdec2_2.4.2-1 libmpfr4_3.1.5-1 libncurses5_6.0+20161126-1+deb9u2 libncursesw5_6.0+20161126-1+deb9u2 libnettle6_3.3-1 libnih-dbus1_1.0.3-8 libnih1_1.0.3-8 libnpth0_1.3-1 libp11-kit0_0.23.3-2 libpam-modules_1.1.8-3.6 libpam-modules-bin_1.1.8-3.6 libpam-runtime_1.1.8-3.6 libpam0g_1.1.8-3.6 libpango-1.0-0_1.40.5-1 libpango1.0-dev_1.40.5-1 libpangocairo-1.0-0_1.40.5-1 libpangoft2-1.0-0_1.40.5-1 libpangoxft-1.0-0_1.40.5-1 libpcre16-3_2:8.39-3 libpcre3_2:8.39-3 libpcre3-dev_2:8.39-3 libpcre32-3_2:8.39-3 libpcrecpp0v5_2:8.39-3 libperl-dev_5.24.1-3+deb9u5 libperl5.24_5.24.1-3+deb9u5 libpipeline1_1.4.1-2 libpixman-1-0_0.34.0-1 libpixman-1-dev_0.34.0-1 libplymouth4_0.9.2-4 libpng-dev_1.6.28-1+deb9u1 libpng16-16_1.6.28-1+deb9u1 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+deb9u1 libpython3.5-dev_3.5.3-1+deb9u1 libpython3.5-minimal_3.5.3-1+deb9u1 libpython3.5-stdlib_3.5.3-1+deb9u1 libreadline-dev_7.0-3 libreadline6_6.3-9 libreadline7_7.0-3 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+deb9u6+rpi1 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.2-1 libsoup-gnome2.4-1_2.56.0-2+deb9u2 libsoup2.4-1_2.56.0-2+deb9u2 libsqlite3-0_3.16.2-5 libss2_1.43.4-2 libssl1.0.2_1.0.2r-1~deb9u1 libssl1.1_1.1.0j-1~deb9u1 libstdc++-6-dev_6.3.0-18+rpi1 libstdc++6_6.3.0-18+rpi1 libsystemd0_232-25+deb9u1 libtasn1-6_4.10-1.1+deb9u1 libtcl8.6_8.6.6+dfsg-1 libtext-charwidth-perl_0.04-7+b7 libtext-iconv-perl_1.7-5+b8 libtext-wrapi18n-perl_0.06-7.1 libthai-data_0.1.26-1 libthai0_0.1.26-1 libtiff5_4.0.8-2+deb9u4 libtimedate-perl_2.3000-2 libtinfo-dev_6.0+20161126-1+deb9u2 libtinfo5_6.0+20161126-1+deb9u2 libtool_2.4.6-2 libubsan0_6.3.0-18+rpi1 libudev1_232-25+deb9u1 libunistring0_0.9.6+really0.9.3-0.1 libustr-1.0-1_1.0.4-6 libuuid1_2.29.2-1 libx11-6_2:1.6.4-3+deb9u1 libx11-data_2:1.6.4-3+deb9u1 libx11-dev_2:1.6.4-3+deb9u1 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+deb9u2 libxcursor1_1:1.1.14-1+deb9u2 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-2~deb9u1 libxkbcommon0_0.7.1-2~deb9u1 libxml2_2.9.4+dfsg1-2.2+deb9u2 libxml2-utils_2.9.4+dfsg1-2.2+deb9u2 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-base_4.5 linux-libc-dev_4.9.30-2+deb9u2+rpi1+stretch login_1:4.4-4.1 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 mawk_1.3.3-17 mime-support_3.60 mount_2.29.2-1 mountall_2.54 multiarch-support_2.24-11+deb9u1 ncurses-base_6.0+20161126-1+deb9u1 ncurses-bin_6.0+20161126-1+deb9u1 openssl_1.1.0j-1~deb9u1 passwd_1:4.4-4.1 patch_2.7.5-1 perl_5.24.1-3+deb9u5 perl-base_5.24.1-3+deb9u5 perl-modules-5.24_5.24.1-3+deb9u5 pinentry-curses_1.0.0-2 pkg-config_0.29-4 plymouth_0.9.2-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+deb9u1 python3.5-dev_3.5.3-1+deb9u1 python3.5-minimal_3.5.3-1+deb9u1 rake_10.5.0-2 raspbian-archive-keyring_20120528.2 readline-common_7.0-3 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+deb9u6+rpi1 ruby2.3-dev_2.3.3-1+deb9u6+rpi1 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+deb9u1 systemd_232-25+deb9u1 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_2017b-1 ucf_3.0036 udev_232-25+deb9u1 util-linux_2.29.2-1 x11-common_1:7.7+19 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+deb9u1 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 Fri Jun 21 22:45:13 2019 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-4+deb9u3.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-4+deb9u3.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
dpkg-source: info: applying upstream/patch-8.0.0550-cannot-parse-some-etags-format-tags-file.patch
dpkg-source: info: applying upstream/Update-releases-in-deb-changelog-sources-syntax-files.patch
dpkg-source: info: applying upstream/patch-8.0.0703-illegal-memory-access-with-empty-doau-comm.patch
dpkg-source: info: applying upstream/patch-8.0.0706-crash-when-cancelling-the-cmdline-window-i.patch
dpkg-source: info: applying upstream/patch-8.0.0707-freeing-wrong-memory-with-certain-autocomm.patch
dpkg-source: info: applying upstream/patch-8.0.0649-when-opening-a-help-file-the-filetype-is-s.patch
dpkg-source: info: applying upstream/patch-8.0.0651-build-failure-without-the-auto-command-fea.patch
dpkg-source: info: applying upstream/patch-8.1.0066-nasty-autocommand-causes-using-freed-memor.patch
dpkg-source: info: applying upstream/patch-8.1.0067-syntax-highlighting-not-working-when-re-en.patch
dpkg-source: info: applying upstream/patch-8.1.0177-defining-function-in-sandbox-is-inconsiste.patch
dpkg-source: info: applying upstream/patch-8.1.0189-function-defined-in-sandbox-not-tested.patch
dpkg-source: info: applying upstream/patch-8.1.0205-invalid-memory-access-with-invalid-modelin.patch
dpkg-source: info: applying upstream/patch-8.1.0206-duplicate-test-function-name.patch
dpkg-source: info: applying upstream/patch-8.1.0208-file-left-behind-after-running-individual-.patch
dpkg-source: info: applying upstream/patch-8.1.0506-modeline-test-fails-when-run-by-root.patch
dpkg-source: info: applying upstream/patch-8.1.0538-evaluating-a-modeline-might-invoke-using-a.patch
dpkg-source: info: applying upstream/patch-8.1.0539-cannot-build-without-the-sandbox.patch
dpkg-source: info: applying upstream/patch-8.1.0540-may-evaluate-insecure-value-when-appending.patch
dpkg-source: info: applying upstream/patch-8.1.0544-setting-filetype-in-a-modeline-causes-an-e.patch
dpkg-source: info: applying upstream/patch-8.1.0546-modeline-test-with-keymap-fails.patch
dpkg-source: info: applying upstream/patch-8.1.0547-modeline-test-with-keymap-still-fails.patch
dpkg-source: info: applying upstream/patch-8.1.0613-when-executing-an-insecure-function-the-se.patch
dpkg-source: info: applying upstream/patch-8.1.1046-the-secure-variable-is-used-inconsistently.patch
dpkg-source: info: applying upstream/patch-8.1.1365-source-command-doesn-t-check-for-the-sandb.patch
dpkg-source: info: applying upstream/patch-8.1.1366-using-expressions-in-a-modeline-is-unsafe.patch
dpkg-source: info: applying upstream/patch-8.1.1367-can-set-modelineexpr-in-modeline.patch
dpkg-source: info: applying upstream/patch-8.1.1368-modeline-test-fails-with-python-but-withou.patch
dpkg-source: info: applying upstream/patch-8.1.1382-error-when-editing-test-file.patch
dpkg-source: info: applying upstream/patch-8.1.1401-misspelled-mkspellmem-as-makespellmem.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=109
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=stretch-staging-armhf-sbuild-bd964267-e8f1-488a-8945-3225d5180079
SCHROOT_UID=104
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=xterm
USER=buildd

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

dpkg-buildpackage: info: source package vim
dpkg-buildpackage: info: source version 2:8.0.0197-4+deb9u3
dpkg-buildpackage: info: source distribution stretch-security
 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
dh_testroot
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim-nox.$x ; \
done
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
*** DEBIAN *** CONFIGURING VARIANT vim-gtk
/usr/bin/make -C src shadow SHADOWDIR=vim-gtk
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
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
mkdir vim-tiny
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
cd vim-tiny; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
mkdir vim-gtk
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
*** DEBIAN *** CONFIGURING VARIANT vim-gtk3
/usr/bin/make -C src shadow SHADOWDIR=vim-gtk3
cd vim-tiny/auto; ln -s ../../auto/configure .
cd vim-gtk/auto; ln -s ../../auto/configure .
mkdir vim-tiny/po
cd vim-tiny/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
mkdir vim-gtk/po
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
mkdir vim-gtk3
cd vim-tiny; rm -f auto/link.sed
cd vim-gtk/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
cd vim-gtk3; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
cp Makefile configure vim-tiny
rm -f vim-tiny/auto/config.mk vim-tiny/config.mk.dist
cp config.mk.dist vim-tiny/auto/config.mk
cd vim-gtk; rm -f auto/link.sed
cp config.mk.dist vim-tiny
mkdir vim-tiny/xxd
cp Makefile configure vim-gtk
cd vim-tiny/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
rm -f vim-gtk/auto/config.mk vim-gtk/config.mk.dist
cp config.mk.dist vim-gtk/auto/config.mk
cp config.mk.dist vim-gtk
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-gtk/xxd
mkdir vim-gtk3/auto
cd vim-gtk/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
cd vim-gtk3/auto; ln -s ../../auto/configure .
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
mkdir vim-gtk3/po
mkdir vim-tiny/testdir
cd vim-gtk3/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
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 .
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
cp config.mk.dist vim-gtk3/auto/config.mk
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-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
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
if test -f src/auto/config.cache; then make distclean; fi
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
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... yes
checking for C compiler default output file name... a.out
yes
checking for C compiler default output file name... a.out
checking for suffix of executables... checking for suffix of executables... checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 

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

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


/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" If columns or lines are too small, create wrongtermsize.
[?25l[?12l[?25h[?25l:[?12l[?25h" (Some tests will fail. When columns and/or lines are small)
[?25l[?12l[?25h[?25l:[?12l[?25hif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h" If +windows feature not supported :sp will fail and tiny.vim will be
[?25l[?12l[?25h[?25l:[?12l[?25h" written to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hsp another
[?25l"another" [New File]~                                                                               ~                                                                               ~                                                                               another                                                                         qa!test1.in                                                                        [?12l[?25h[?25l:[?12l[?25hwq! tiny.vim
[?25l"tiny.vim" 0 lines, 0 characters writtene! test.ok
w! test.outqa!~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 2096 lines, 20188 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 sset
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 20 lines, 330 characters written

[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 9 lines, 173 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 12 lines, 231 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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('$')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 7 lines, 76 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 2 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 26 lines, 252 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 111 lines, 2304 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 10 lines, 121 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Ox^[jAy^[kdd[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25ly
Ox^[jAy^[kdd[?12l[?25h[?25l

2 changes; before #1  0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l1 line less; before #1  0 seconds ago    [?12l[?25h[?25l:[?12l[?25hquit!
[?25l: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[?12l[?25h[?25l[?12l[?25h[?25l
Ox^[jAy^[kdd[?12l[?25h[?25l
/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l/[?12l[?25h456$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25l4
234[?12l[?25h[?25l5
345[?12l[?25h[?25l[?12l[?25h[?25lstart here56
234start here67
345start here78[?12l[?25h[?25l:[?12l[?25h/56$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for file with some lines ending in CTRL-M, some not^M[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for regexp with backslash and other special characters inside [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[\t\]]
[?25l[?12l[?25h[?25ltext test tex[?12l[?25h[?25l/[?12l[?25h[]y]
[?25l[?12l[?25h[?25ltest text[?12l[?25h[?25l/[?12l[?25h[\]]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[y^]
[?25l[?12l[?25h[?25lst text[?12l[?25h[?25l/[?12l[?25h[$y]
[?25l[?12l[?25h[?25lxt test text[?12l[?25h[?25l/[?12l[?25h[\x61]
[?25l[?12l[?25h[?25lext test text  x61[?12l[?25h[?25l/[?12l[?25h[\x60-\x64]
[?25l[?12l[?25h[?25lext test text  x60-x64[?12l[?25h
[?25l/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text  x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text  o143[?12l[?25h[?25l text test text  o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text  o140-o144[?12l[?25h[?25lt text test text  o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text  o41 7[?12l[?25h[?25l text test text  o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text  \%x42[?12l[?25h[?25lest text  \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text  \%o103[?12l[?25h[?25lst text  \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text  [\x00][?12l[?25h[?25ltest text  [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext  [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text  [\x00-\x10][?12l[?25h[?25l
test \xyztext test text  [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text  [\x-z][?12l[?25h[?25l
test text tev\uyst text  [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text  [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//
[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
 [?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
 [?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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")[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 10 lines, 159 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for sourcing a file with CTRL-V's at the end of the line[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25l
sd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25h[?25ldsd^[[?12l[?25h[?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l
:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 cpoptionss+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 97 lines, 3018 characters written

[?1l>[?12l[?25h[?1049l# 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
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
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for commands that close windows and/or buffers:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 14 lines, 176 characters

"test.out" [New File] 14 lines, 176 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 23 lines, 544 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 10 lines, 81 characters

"test.out" [New File] 10 lines, 81 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest character classes in regexp using regexpengine 0, 1, 2.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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







:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l




~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


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


~                                                                               [?12l[?25h[?25l





:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

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

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







:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 --[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 33 lines, 1329 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 13 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 63 lines, 662 characters

"test.out" [New File] 63 lines, 662 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 11 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file of over 100 Kbyte[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 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[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"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[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"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/undo.o undo.c
[New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 44 lines, 409 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 11 lines, 137 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
: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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l"test.ok" 25 lines, 271 characters

"test.out" [New File] 25 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("."))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for folding. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 23 lines, 173 characters

"test.out" [New File] 23 lines, 173 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of 'virtualedit'.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/eval.o eval.c
[New File] 61 lines, 1442 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 23 lines, 479 characters

"test.out" [New File] 23 lines, 479 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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=#000ff00 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 20 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for string and html text objects. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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>-[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 45 lines, 284 characters

"test.out" [New File] 45 lines, 284 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 197 lines, 3821 characters

"test.out" [New File] 197 lines, 3821 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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>delfunnc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 2 lines, 23 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :sort command.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 501 lines, 3105 characters

"test.out" [New File] 501 lines, 3105 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 206 lines, 1941 characters

"test.out" [New File] 206 lines, 1941 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns without multi-byte support.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 1107 lines, 22167 characters

"test.out" [New File] 1107 lines, 22167 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 73 lines, 430 characters

"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/userfunc.o userfunc.c
 [New File] 73 lines, 430 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 16 lines, 368 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest that groups and patterns are tested correctly when calling exists() for[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 10 lines, 190 characters

"test.out" [New File] 10 lines, 190 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

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

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

"test.out" [New File] 77 lines, 281 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 166 lines, 730 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 6 lines, 94 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 21 lines, 222 characters written

[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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^[:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for maparg().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 7 lines, 384 characters

"test.out" [New File] 7 lines, 384 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 1 line, 26 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 134 lines, 574 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 131 lines, 617 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 5 lines, 31 characters

"test.out" [New File] 5 lines, 31 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 3 lines, 43 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lvim: set ft=vim[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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|[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 29 lines, 135 characters

"test.out" [New File] 29 lines, 135 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78522b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afeee48bb'
: let res='ok'
:else[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: 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") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb00b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 6 lines, 143 characters

"test.out" [New File] 6 lines, 143 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 50 lines, 530 characters

"test.out" [New File] 50 lines, 530 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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()[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Visual mode and operators[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 123 lines, 1328 characters

"test.out" [New File] 123 lines, 1328 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns with multi-byte support, using utf-8.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:
~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 140 lines, 2022 characters

"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/window.o window.c
 [New File] 140 lines, 2022 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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(toopLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 1 line, 51 characters

"test.out" [New File] 1 line, 51 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l"test.ok" 23 lines, 264 characters

"test.out" [New File] 23 lines, 264 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 2 lines, 20 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 13 lines, 244 characters written

[?1l>[?12l[?25h[?1049l# 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
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
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for adjusting window and contents     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 4 lines, 42 characters

"test.out" [New File] 4 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for backtrace debug commands.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 84 lines, 1390 characters

"test.out" [New File] 84 lines, 1390 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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! ttest.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']][?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for option autocommand[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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, secoond 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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 64 lines, 2700 characters

"test.out"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
 [New File] 64 lines, 2700 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 8 lines, 292 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 1 line, 5 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :[count]close! and :[count]hide     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 23 lines, 183 characters

"test.out" [New File] 23 lines, 183 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 1 line, 3 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:

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

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

"test.out" [New File] 8 lines, 111 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:rreg, 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, aa:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for various eval features.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 362 lines, 11279 characters

"test.out" [New File] 362 lines, 11279 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'fixeol'vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
stays eol[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestEol
[?25l"XXTestEol" [New File] 2 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25he! XXNoEol
[?25l"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?12l[?25h[?25l
stays without[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestNoEol
[?25l"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25lE319: Sorry, the command is not available in this version[?12l[?25h[?25l:[?12l[?25hset fixeol
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXEol
[?25l"XXEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXNoEol
[?25l"XXNoEol" 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
1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestEol
[?25l"XXTestEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestNoEol
[?25l"XXTestNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l0[?12l[?25h[?25l:[?12l[?25h$r XXEol
[?25l"XXEol" 2 lines, 13 characterswith eolEND[?12l[?25h[?25l:[?12l[?25h$r XXNoEol
[?25l"XXNoEol" 1 line, 15 characterswithout eolEND[?12l[?25h[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXTestEol
[?25l"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?12l[?25h[?25l:[?12l[?25h$r XXTestNoEol
[?25l"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 84 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 18 lines, 192 characters

"test.out" [New File] 18 lines, 192 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 3 lines, 36 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:<[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 16 lines, 178 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option (non-utf8)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 62 lines, 2030 characters

"test.out" [New File] 62 lines, 2030 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 5 lines, 27 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for Unicode manipulationsvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 22 lines, 86 characters

"test.out" [New File] 22 lines, 86 characters written

[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 _[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for wordcount() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 34 lines, 1905 characters

"test.out" [New File] 34 lines, 1905 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for autocommands:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 61 lines, 1599 characters

"test.out" [New File] 61 lines, 1599 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 18 lines, 1374 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Lua interface and luaeval() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 7 lines, 206 characters

"test.out" [New File] 7 lines, 206 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 1445 lines, 77744 characters

"test.out" [New File] 1445 lines, 77744 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 10 lines, 127 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"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_beval.o gui_beval.c
 [New File] 1 line, 23 characters written

[?1l>[?12l[?25h[?1049l# 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/gui.o gui.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 84 lines, 2484 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 8 lines, 138 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option in utf-8 mode[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 57 lines, 1882 characters

"test.out" [New File] 57 lines, 1882 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.oout
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lSome tests for buffer-local autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" /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
[New File] 15 lines, 555 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 1 line, 29 characters

"test.out" [New File] 1 line, 29 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 33 lines, 655 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for a lot of variations of the 'fileformats' option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 130 lines, 786 characters

"test.out" [New File] 130 lines, 786 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 15 lines, 175 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 289 lines, 3844 characters

"test.out" [New File] 289 lines, 3844 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 270 lines, 3685 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for undo file.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 31 lines, 197 characters

"test.out" [New File] 31 lines, 197 characters written

[?1l>[?12l[?25h[?1049l# 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.
/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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01223456789abcdefghijklmnoparstuvwxyz0123456789"
: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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lInserts 10000 lines with text to fill the swap file with two levels of pointer[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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 linnecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appendd(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 3 lines, 29 characters

"test.out" [New File] 3 lines, 29 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for tag search with !_TAG_FILE_ENCODING.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/gui_gtk.o gui_gtk.c
[New File] 58 lines, 1021 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
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
[?25l"test.ok" 4 lines, 48 characters

"test.out"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
 [New File] 4 lines, 48 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l- Some tests for setting 'number' and 'relativenumber'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l"test.ok" 28 lines, 356 characters

"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        -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE  -o objects/if_python3.o if_python3.c
 [New File] 28 lines, 356 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_arglist.vim" 318 lines, 6653 characters

"test.ok" [New File]

"test.out" [New File] 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_assert.vim" 127 lines, 2933 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_autochdir.vim" 17 lines, 332 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_backspace_opt.vim" 59 lines, 1673 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_breakindent.vim" 241 lines, 7365 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_bufwintabinfo.vim" 116 lines, 3459 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cdo.vim" 205 lines, 5116 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_channel.vim" 1641 lines, 47075 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_charsearch.vim" 62 lines, 1475 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cmdline.vim" 243 lines, 7346 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_command_count.vim" 191 lines, 4742 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_crypt.vim" 83 lines, 2590 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cscope.vim" 279 lines, 10568 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_diffmode.vim" 237 lines, 4954 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_digraph.vim" 461 lines, 14928 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_display.vim" 39 lines, 849 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_farsi.vim" 84 lines, 2881 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_fnameescape.vim" 21 lines, 467 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_fold.vim" 97 lines, 3328 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gf.vim" 33 lines, 1138 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gn.vim" 93 lines, 2821 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gui.vim" 36 lines, 838 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_hardcopy.vim" 62 lines, 2001 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_hide.vim" 97 lines, 2443 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_history.vim" 106 lines, 3567 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_hlsearch.vim" 34 lines, 1013 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_increment.vim" 760 lines, 19011 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_increment_dbcs.vim" 30 lines, 604 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_job_fails.vim" 19 lines, 598 charactersif 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


"test.ok" [New File]

"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/pty.o pty.c
 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_json.vim" 287 lines, 10700 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_langmap.vim" 28 lines, 628 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_man.vim" 60 lines, 1358 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_marks.vim" 26 lines, 775 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_matchadd_conceal.vim" 289 lines, 9276 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession.vim" 104 lines, 2315 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession_utf8.vim" 104 lines, 2328 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_nested_function.vim" 67 lines, 1305 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_netbeans.vim" 80 lines, 2145 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_normal.vim" 2280 lines, 58740 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_packadd.vim" 238 lines, 8288 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_perl.vim" 123 lines, 3037 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_profile.vim" 146 lines, 6247 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_quickfix.vim" 1693 lines, 46351 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_ruby.vim" 34 lines, 820 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_search.vim" 296 lines, 8731 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_signs.vim" 199 lines, 6383 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_smartindent.vim" 14 lines, 376 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup.vim" 185 lines, 4581 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup_utf8.vim" 64 lines, 1366 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_stat.vim" 64 lines, 1598 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_substitute.vim" 41 lines, 1151 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_syntax.vim" 164 lines, 4101 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_system.vim" 92 lines, 2910 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_textobjects.vim" 43 lines, 946 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_undo.vim" 265 lines, 6936 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_usercommands.vim" 104 lines, 2527 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viminfo.vim" 515 lines, 13496 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viml.vim" 1315 lines, 31693 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_visual.vim" 25 lines, 506 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_window_id.vim" 103 lines, 2714 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_writefile.vim" 16 lines, 490 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_latin.vim" 7 lines, 280 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_utf8.vim" 11 lines, 440 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot.vim" 49 lines, 1258 characters

"test.ok" [New File]

"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/gui_gtk_f.o gui_gtk_f.c
 0 lines, 0 characters written

[?1l>[?12l[?25h[?1049l
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
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
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 -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/ex_cmds2.o ex_cmds2.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
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           
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
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/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        -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_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   -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 -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-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
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        -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_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-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/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_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-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        -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/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_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/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/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/memfile.o memfile.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/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/farsi.o farsi.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
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
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
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
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
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
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-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/memfile.o memfile.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-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
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
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-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
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   -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
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
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
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-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-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_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 -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   -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 -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 -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/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-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/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/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/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/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-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   -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 -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 -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   -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 -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   -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_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   -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/eval.o 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/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/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/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/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/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/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/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 -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/eval.o 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/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 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.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 -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-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 -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   -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 -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-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/userfunc.o userfunc.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/option.o option.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-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/gui.o gui.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/os_unix.o os_unix.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_athena.o gui_athena.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
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   -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   -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
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_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
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           
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 -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
link.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
# Ensure ERM is set to a sane value for testing
[ yes != "yes" ] || flock debian env TERM=xterm /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
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 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 -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 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        -I/usr/include/lua5.2 -o objects/if_lua.o if_lua.c
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
/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_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
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        -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-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 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
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
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
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_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
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.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 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
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 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_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
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
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
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 -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/farsi.o farsi.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 -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 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_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 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/json.o json.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
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 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
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
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 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_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
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 -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
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
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_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
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
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
make[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
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
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.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
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
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
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.cp1250.mo sk.cp1250.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 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
[New File] 35 lines, 1133 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" If columns or lines are too small, create wrongtermsize.
[?25l[?12l[?25h[?25l:[?12l[?25h" (Some tests will fail. When columns and/or lines are small)
[?25l[?12l[?25h[?25l:[?12l[?25hif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 1633 translated messages, 3 fuzzy translations.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
make[2]: Nothing to be done for 'converted'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/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/arabic.o arabic.c
[New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l/* vim: set cin ts=4 sw=4 : */[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo modeline
[?25l[?12l[?25h[?25l:[?12l[?25hedit                " read modeline
[?25l"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?12l[?25h[?25l/[?12l[?25hstart of AUTO
[?25l[?12l[?25h[?25l/[?12l[?25hend of AUTO
[?25l956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?12l[?25h[?25l/^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
 */[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/getchar.o getchar.c
3L, 93C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset tw=0 wm=60 columns=80 noai fo=croq
[?25l}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
 */[?12l[?25h[?25l/[?12l[?25hserious/e
[?25l[?12l[?25h[?25l


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

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

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

/[?12l[?25htesting2
[?25lif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?12l[?25h [?25l
/^STARTTEST
}

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

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


[?25l8 lines to indent...
9indented [?12l[?25h
   [?25l/^STARTTEST
n();
}

STARTTEST[?12l[?25h[?25l
:set cino={s,e-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/buffer.o buffer.c
2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,e-s
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
7 lines to indent...
8indented     {[?12l[?25h[?25l
if ( k() )[?12l[?25h[?25l
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

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

STARTTEST[?12l[?25h[?25l
:set cino= com=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino= com=
[?25l[?12l[?25h[?25l/[?12l[?25hcomment
[?25la()
{
label1:/* hmm */// comment[?12l[?25h[?25l
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set comments& comments^=s:/*,m:**,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/simple
=5j[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset comments& comments^=s:/*,m:**,ex:*/
[?25l[?12l[?25h[?25l/[?12l[?25hsimple
[?25l/*
  * A simple comment[?12l[?25h[?25l
5 lines to indent...
6indented * A simple comment[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
/*
** A different comment
*/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[?25l
69 lines to indent...
50
7indented [?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
/^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};[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l:[?12l[?25hset cino+=l1
[?25l[?12l[?25h[?25l
[?12l[?25h

[?25l22 lines to indent...
23indented [?12l[?25h
[?25l/^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";
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l
[?12l[?25h

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

STARTTEST[?12l[?25h[?25l
:set com=s1:/*,m:*,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/list.o list.c
2L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]3jofoo();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset com=s1:/*,m:*,ex:*/
[?25l[?12l[?25h[?25lvoid func(void)
{[?12l[?25h[?25l/** This is a comment.*/[?12l[?25h[?25l
-- INSERT --
foo();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set cino&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd2j=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l2kdd2j=][ENDTEST[?12l[?25h

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

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


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


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


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


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


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


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

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


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

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

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

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

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

STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l16 lines to indent...
17indented [?12l[?25h[?25l/^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',[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1,+2
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?12l[?25h[?25l/^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[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin cino&
[?25l[?12l[?25h[?25l/[?12l[?25hstart of define
[?25l[?12l[?25h[?25l/[?12l[?25hend of define
[?25l11 lines to indent...
12indented     BBB\
    CCC[?12l[?25h[?25l/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l226 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 */[?12l[?25h[?25l:[?12l[?25h1;/start of AUTO/,$wq! test.out
[?25l"test.out" [New] 2096L, 20188C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 sset
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes current buffer on BufEnter event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter Xxx brew
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25lstartstart
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25h.,/end of/w! Xxx   " write test file Xxx
[?25l"Xxx" [New] 7L, 124C written[?12l[?25h[?25l:[?12l[?25hset ai modeline modelines=3
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xxx             " split to Xxx, autocmd will do :brew
[?25l"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 ssetGo# 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[?12l[?25h[?25l: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[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --        this should be auto-indented[+][+][?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l:[?12l[?25h                   " Append text with autoindent to this file
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufEnter Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hbuf Xxx            " go to Xxx, no autocmd anymore
[?25l"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~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxxt          [?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --this should be in column 1[+][?12l[?25h[?25l:[?12l[?25hwq " append text without autoindent to Xxx
[?25l"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 ssetGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25hr Xxx             " include Xxx in the current file
[?25l"Xxx" 8L, 151C
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25hset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l:au! BufEnter Xxx[?12l[?25h[?25lvim: 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
[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --
# def[?12l[?25h[?25lINSERTt --defo[?12l[?25hd[?25l[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --[?12l[?25h[?25l
-- INSERTt --def:[?12l[?25hd[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l:[?12l[?25h?startstart?,$w! test.out
[?25l"test.out" [New] 20L, 330C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that deletes the current buffer on BufLeave event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave Xxx bwipe
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx               " write test file Xxx
[?25l"Xxx" [New File] 7 lines, 124 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx                         " split to Xxx
[?25l"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                                                                        [?12l[?25h[?25l:[?12l[?25hbwipe                          " delete buffer Xxx, now we're back here
[?25lTest 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[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?12l[?25h[?25l
?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l
this is some more text[?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25h                               " Append some text to this file
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out           " Write current file contents
[?25l"test.out" [New File] 8 lines, 147 characters written[?12l[?25h[?25l:[?12l[?25hbwipe test.out                 " delete alternate buffer
[?25l[?12l[?25h[?25l:[?12l[?25hau bufleave test5.in bwipe
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!                         " delete current buffer, get an empty one
[?25lError 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lthis is another test line[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 26 characters appended[?12l[?25h[?25l:[?12l[?25h                               " append an extra line to the output file
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25hgcc -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
[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes the buffer list, when doing ":ball".[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1   " write test file Xxx1
[?25l"Xxx1" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx1
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2    " write test file Xxx2
[?25l"Xxx2" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx2
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3    " write test file Xxx3
[?25l"Xxx3" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx3
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 bwipe
[?25l[?12l[?25h[?25l4[?12l[?25h[?25l:[?12l[?25hball                 " open window for all args, close Xxx2
[?25l"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

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

Press ENTER or type command to continue[?12l[?25h[?25l: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                                                                            [?12l[?25h
test7.in [+]                                                                     Xxx1                                                                            [?25l:[?12l[?25hw >>test.out        " Append contents of second window (Xxx1)
[?25l"test.out" 4 lines, 77 characters appended[?12l[?25htest7.in [+]                                                                    Xxx1                                                                             [?25l:[?12l[?25h/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25lsearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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('$')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

E203: Autocommands deleted or unloaded buffer to be written

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

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

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

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! BufWritePre
[?25lstart of Xxx1test
end of Xxx[?12l[?25h[?25l:[?12l[?25hfunc CloseAll()
[?25l
:  [?12l[?25h  let i = 0

[?25l:  [?12l[?25h  while i <= bufnr('$')

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

[?25l:      [?12l[?25h      exe  i . "bunload"

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let i += 1

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfunc WriteToOut()
[?25l
:  [?12l[?25h  edit! test.out

[?25l:  [?12l[?25h  $put ='VimLeave done'

[?25l:  [?12l[?25h  write

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               [?12l[?25h[?25l:[?12l[?25hset viminfo='100,nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufUnload * call CloseAll()
[?25l[?12l[?25h[?25l:[?12l[?25hau VimLeave * call WriteToOut()
[?25l[?12l[?25h[?25l:[?12l[?25he small.vim
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp mbyte.vim
[?25l"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?12l[?25h[?25l:[?12l[?25hq
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Bufleave autocommand that deletes the buffer we are about to edit.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave test9.in bwipe yy
[?25l[?12l[?25h[?25l:[?12l[?25he yy
[?25lE143: Autocommands unexpectedly deleted new buffer yy[?12l[?25h[?25l:[?12l[?25h/^start of/,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 2 lines, 42 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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

"
[?25l:  [?12l[?25h:else

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

[?25l:  [?12l[?25h:endif
[?25l:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?12l[?25h[?25l:[?12l[?25hexe "normal " . tt
[?25lABC !a^Og^G8[?12l[?25h[?25l:[?12l[?25hunlet tt
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset vb
[?25l[?12l[?25h[?25l/[?12l[?25h^Piece
[?25l[?12l[?25h[?25l{A[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"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/hardcopy.o hardcopy.c
1 line, 10 characters appended[?12l[?25h[?25ltt m2 {[?12l[?25h[?25l{B[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 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
1 line, 10 characters appended[?12l[?25h[?25lt2;} e2tt m3 {[?12l[?25h[?25l{C[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l{DC[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{EA[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25hgcc -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
[?25l{F[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}G e1[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"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/memline.o memline.c
1 line, 7 characters appended[?12l[?25h
[?25lif (x){t3;}} e3[?12l[?25h[?25l}H e3[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l
}[?12l[?25hgcc -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
[?5h[?5l[?25l}I[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}JH e3[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 8 characters appended[?12l[?25h[?25l}K e2[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l{LF[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^foobar
[?25lfoobar[?12l[?25h[?25l
:[?12l[?25hlet startline = line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('foobar', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25hcall search('^$', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('^$', 'bc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l/[?12l[?25htwo
[?25lsubstitute foo asdf

one two[?12l[?25h[?25l
:[?12l[?25hcall search('.', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hs/foo/bar/
[?25lbar
[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25lsearch()
0
1
1
two
foo[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hkeeppatterns s/asdf/xyz/
[?25lxyz[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25l
^substitute[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l
/[?12l[?25hbar /e
[?25l[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l

:[?12l[?25hkeeppatterns /xyz
[?25l[?12l[?25h[?25l
/bar /exyz[?12l[?25h[?25l:[?12l[?25h/^search()/,$w >>test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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


3 more lines
aaaaaa3 more lines[?12l[?25h[?25l
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?12l[?25h
[?25l:[?12l[?25h?test for :left?,$w! test.out
[?25l"test.out"[New] 111L, 2304C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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.
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
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset smarttab expandtab ts=8 sw=4
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lSTARTTEST
: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
[?12l[?25h[?25l
/[?12l[?25hsome
[?25lstart textsome test text[?12l[?25h[?25l    ome test text[?12l[?25h[?25l
:[?12l[?25hset noexpandtab
[?25l[?12l[?25h[?25l/[?12l[?25hother
[?25ltest textother test text[?12l[?25h[?25l    ther test text[?12l[?25h[?25l
a cde[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs and then backspacing to undo it
[?25l[?12l[?25h
    [?25l[?12l[?25h[?25l
f ghi[?12l[?25h[?25l
:[?12l[?25h" Test replacing wigcc -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
th Tabs
[?25l[?12l[?25h
    [?25l     hi[?12l[?25h[?25l
test text[?12l[?25h[?25l
:[?12l[?25h" Test that copyindent works with expandtab set
[?25l[?12l[?25h[?25l:[?12l[?25hset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?12l[?25h[?25l{x[?12l[?25h[?25l
:[?12l[?25hset nosol
[?25l[?12l[?25h[?25l/[?12l[?25hSecond line/
[?25l
Second line beginning with whitespace[?12l[?25h[?25l
  with whitespace[?12l[?25h[?25l
:[?12l[?25h?^start?,$w! test.out
[?25l"test.out" [New File] 10 lines, 121 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Ox^[jAy^[kdd[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25ly
Ox^[jAy^[kdd[?12l[?25h[?25l

2 changes; before #1  0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l1 line less; before #1  0 seconds ago    [?12l[?25h[?25l:[?12l[?25hquit!
[?25l: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[?12l[?25h[?25l[?12l[?25h[?25l
Ox^[jAy^[kdd[?12l[?25h[?25l
/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l/[?12l[?25h456$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25l4
234[?12l[?25h[?25l5
345[?12l[?25h[?25l[?12l[?25h[?25lstart here56
234start here67
345start here78[?12l[?25h[?25l:[?12l[?25h/56$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for file with some lines ending in CTRL-M, some not^M[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

foo|bar

"Xfile1" 1 line, 11 characters written

"Xfile2" 1 line, 8 characters

foo/bar

"Xfile2"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
 1 line, 12 characters written

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for regexp with backslash and other special characters inside [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[\t\]]
[?25l[?12l[?25h[?25ltext test tex[?12l[?25h[?25l/[?12l[?25h[]y]
[?25l[?12l[?25h[?25ltest text[?12l[?25h[?25l/[?12l[?25h[\]]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[y^]
[?25l[?12l[?25h[?25lst text[?12l[?25h[?25l/[?12l[?25h[$y]
[?25l[?12l[?25h[?25lxt test text[?12l[?25h[?25l/[?12l[?25h[\x61]
[?25l[?12l[?25h[?25lext test text  x61[?12l[?25h[?25l/[?12l[?25h[\x60-\x64]
[?25l[?12l[?25h[?25lext test text  x60-x64[?12l[?25h
[?25l/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text  x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text  o143[?12l[?25h[?25l text test text  o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text  o140-o144[?12l[?25h[?25lt text test text  o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text  o41 7[?12l[?25h[?25l text test text  o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text  \%x42[?12l[?25h[?25lest text  \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text  \%o103[?12l[?25h[?25lst text  \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text  [\x00][?12l[?25h[?25ltest text  [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext  [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text  [\x00-\x10][?12l[?25h[?25l
test \xyztext test text  [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text  [\x-z][?12l[?25h[?25l
test text tev\uyst text  [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text  [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//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

[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
 [?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
 [?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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")[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h:  if has("ebcdic")

[?25l:    [?12l[?25h:    execute "normal o" . i . "\047"

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    execute "normal o" . i . "\033"

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i % 2

[?25l:    [?12l[?25h:    normal Ax^^[

[?25l:    [?12l[?25h:    if i == 9

[?25l:      [?12l[?25h:      break

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if i == 5

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      let j = 9

[?25l:      [?12l[?25h:      while j > 0

[?25l:[?12l[?25h:        if has("ebcdic")

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x27"

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x1b"

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        let j = j - 1

[?25l:[?12l[?25h:      endwhile

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i == 9

[?25l:    [?12l[?25h:    if has("ebcdic")

[?25l:      [?12l[?25h:      execute "normal Az\047"

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      execute "normal Az\033"

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endwhile
[?25l:  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[?12l[?25h[?25l
:[?12l[?25hunlet i j
[?25l[?12l[?25h[?25l:[?12l[?25h't,$w! test.out
[?25l"test.out" [New File] 10 lines, 159 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for sourcing a file with CTRL-V's at the end of the line[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25l
sd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25hd  [?25lsd^[[?12l[?25hgcc -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
^[  [?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l
:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 cpoptionss+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for joining lines and marks in them[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j
[?25l[?12l[?25h[?25l/[?12l[?25hfirstline/
[?25l[?12l[?25h
[?25l/[?12l[?25h^STARTTEST/-1
[?25l+-1
37 fewer linesSTARTTEST
/^{/+1[?12l[?25h[?25lmore linesasdfasdf.
asdf[?12l[?25h[?25lasdf
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop!
ert[?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?12l[?25h  er[?25lt  e[?12l[?25h
zx cv[?25len[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv[?25l
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions-=j nojoinspaces compatible
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l.  as dfg? hjkl iop! ert[?12l[?25h[?25lt  a[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l
/[?12l[?25hSTARTTEST/-2
[?25l+-2
4 fewer lines[?12l[?25h[?25l/^STARTTEST

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

STARTTEST[?12l[?25h[?25l
:" Test with backspace set to the non-compatible setting
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" Test with backspace set to the non-compatible setting
[?25l[?12l[?25h[?25l/[?12l[?25h^\d\+ this
[?25l[?12l[?25h[?25l:[?12l[?25hset cp bs=2
[?25l[?12l[?25h[?25l[?12l[?25hd    [?25lvim2[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?25ld3[?12l[?25h[?25l:[?12l[?25hiunmap <c-u>
[?25l[?12l[?25h[?25l[?12l[?25h
[?25l:[?12l[?25h" Test with backspace set to the compatible setting
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace= visualbell
[?25l[?12l[?25h[?25lvim5[?12l[?25h[?5h[?5l[?5h[?5l[?25ld vim6[?12l[?25h6    [?25lzwei[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?5h[?5l[?5h[?5l[?25lvim7[?12l[?25h
[?25l:[?12l[?25hset compatible novisualbell
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTj3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code!^M// Make sure backspacing does not remove this comment leader.^[0i^HH^[
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?12l[?25h
[?25l/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?12l[?25h
[?25l:[?12l[?25h.,+8join
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?12l[?25h
[?25l/* 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?[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lShould the next comment leader be left alone?  Yes.


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


:[?12l[?25h.,+2join
[?25l/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?12l[?25h
[?25l/* Here the comment leader should be left intact. */ // And so should this one.[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();[?12l[?25h[?25l
[?12l[?25h[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;[?12l[?25h[?25l
[?12l[?25h[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+5join
[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25lSome code!
// Make sure backspacing does not remove this comment leader.[?12l[?25h
[?25l// Make sure backspacing does not remove this comment leader.
}[?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:?firstline?+1,$w! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l74 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 brackett) 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 liness. This comment should retain its comment leader.># Note that the last character of the ending comment leader (left angle brackett) 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 liness. This comment should retain its comment leader.

Some code!// Make sure backspacing does not remove this comment leader.
}[?12l[?25h[?25l:[?12l[?25h?firstline?+1,$w! test.out
[?25l"test.out" [New File] 97 lines, 3018 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for commands that close windows and/or buffers:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h
[?25l1[?12l[?25h[?25l:[?12l[?25h$w! Xtest1
[?25l"Xtest1" [New File] 1 line, 11 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h$w! Xtest2
[?25l"Xtest2" [New File] 1 line, 11 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h$w! Xtest3
[?25l"Xtest3" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hn! Xtest1gcc -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
 Xtest2
[?25l"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test for working :n when hidden set; write "testtext 2"
[?25l[?12l[?25h[?25l:[?12l[?25hn
[?25l"Xtest2" 1 line, 11 characters2[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25h" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hrew
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hrew
[?25l"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hsp
[?25lXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hn Xtest2 Xtest3
[?25l"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 [?12l[?25h[?25l:[?12l[?25hall
[?25l"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25lXtest1 [+]                                                                      Xtest2 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 2 2" twice
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l1 1[?12l[?25h[?25l:[?12l[?25hq!
[?25ltesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25hunhide
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hhide
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3gcc -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
 3"
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25ltesttext 3 3[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 1 line, 11 characters1[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3 3"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest3
[?25l"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 1"
[?25l[?12l[?25h[?25l3 3[?12l[?25h[?25l:[?12l[?25hclose!
[?25l1~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest4
[?25l"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?12l[?25h[?25l 4[+][?12l[?25h[?25l:[?12l[?25hall!
[?25l"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[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25ltesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":q!" and hidden buffer.
[?25l[?12l[?25h[?25l:[?12l[?25hbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp Xtest1
[?25l"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[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25lXtest1                                                                           test31.in                                                                       [?12l[?25h[?25l:[?12l[?25hbw!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[?12l[?25h[?25l:[?12l[?25hbot sp Xtest2
[?25l"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hbot sp Xtest3
[?25l"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hwincmd t
[?25lXtest1 [+]                                                                      Xtest3 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hhide
[?25ltesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hq!
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hq!
[?25lE37: No write since last change

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'lisp'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset lisp
[?25l[?12l[?25h[?25l/[?12l[?25h^(defun
[?25l[?12l[?25h[?25l22 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[?12l[?25h[?25l:[?12l[?25h/^(defun/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction Table(title, ...)
[?25l
:  [?12l[?25h:  let ret = a:title

[?25l:  [?12l[?25h:  let idx = 1

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

[?25l:    [?12l[?25h:    exe "let ret = ret . a:" . idx

[?25l:    [?12l[?25h:    let idx = idx + 1

[?25l:    [?12l[?25h:  endwhile

[?25l:  [?12l[?25h:  return ret

[?25l:  [?12l[?25h:endfunction
[?25l: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[?12l[?25h[?25l

:[?12l[?25hfunction Compute(n1, n2, divname)
[?25l
:  [?12l[?25h:  if a:n2 == 0

[?25l:    [?12l[?25h:    return "fail"

[?25l:    [?12l[?25h:  endif

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

[?25l:  [?12l[?25h:  return "ok"

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

:[?12l[?25hfunc Expr1()
[?25l
:  [?12l[?25h:  normal! v

[?25l:  [?12l[?25h:  return "111"

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

:[?12l[?25hfunc Expr2()
[?25l
:  [?12l[?25h:  call search('XX', 'b')

[?25l:  [?12l[?25h:  return "222"

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

:[?12l[?25hfunc ListItem()
[?25l
:  [?12l[?25h:  let g:counter += 1

[?25l:  [?12l[?25h:  return g:counter . '. '

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

:[?12l[?25hfunc ListReset()
[?25l
:  [?12l[?25h:  let g:counter = 0

[?25l:  [?12l[?25h:  return ''

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

:[?12l[?25hfunc FuncWithRef(a)
[?25l
:  [?12l[?25h:  unlet g:FuncRef

[?25l:  [?12l[?25h:  return a:a

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

:[?12l[?25hlet g:FuncRef=function("FuncWithRef")
[?25l[?12l[?25h[?25l:[?12l[?25hlet counter = 0
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> ( ListItem()
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> [ ListReset()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> + Expr1()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> * Expr2()
[?25l[?12l[?25h[?25l:[?12l[?25hlet retval = "nop"
[?25l[?12l[?25h[?25l/[?12l[?25h^here
[?25l[?12l[?25h[?25lher$=[?12l[?25hTable("xxx", 4, "asdf")
[?25l=[?12l[?25hCompute(45, 0, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hCompute(45, 5, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hg:FuncRef(333)

[?25lError detected while processing function Expr1:

line    1:

E523: Not allowed here

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

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

ing

[?25l:  [?12l[?25h:    " rhs of &&.

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

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

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:    $put ='!!! Unexpected exception:'

[?25l:  [?12l[?25h:    $put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l:    $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[?12l[?25h[?25l
:[?12l[?25h$-9,$w! test.out
[?25l"test.out" [New File] 10 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25hdelfunc Table
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Compute
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr1
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr2
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListItem
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListReset
[?25l[?12l[?25h[?25l:[?12l[?25hunlet retval counter
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest character classes in regexp using regexpengine 0, 1, 2.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/edit.o edit.c
[New File] 101 lines, 1850 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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







:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l




~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


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


~                                                                               [?12l[?25h[?25l





:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

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

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







:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 --[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt=ver,jump
[?25l[?12l[?25h[?25l:[?12l[?25hset scrolloff=2
[?25l[?12l[?25h[?25l:[?12l[?25hset nowrap
[?25l[?12l[?25h[?25l:[?12l[?25hset noequalalways
[?25l[?12l[?25h[?25l:[?12l[?25hset splitbelow
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST using two windows open to one buffer, one extra empty window
[?25l[?12l[?25h[?25l:[?12l[?25hsplit
[?25l^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                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 8
[?25l:" ***** 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[?12l[?25h[?25l/[?12l[?25h^start of window 1$/
[?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 7
[?25l[?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?12l[?25h[?25l
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h

[?25l. 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[?12l[?25htest37.in                                                                        [No Name]                                                                       [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    


[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?12l[?25htest37.in                                                                        test37.in                                                                       test37.in                                                                       test37.in                                                                        test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       test37.in                                                                        test37.in                                                                        test37.in                                                                       test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25hgcc -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/list.o list.c
[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    
test37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" ****** tests using two different buffers *****
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25lstart of window 20000000000[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of window 2$/,/^end of window 2$/y
[?25l18 lines yanked[?12l[?25h[?25l:[?12l[?25hnew
[?25ltest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        test37.in                                                                        [No Name]                                                                       [?25l4 more lines[+][?12l[?25h


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


[?25l. 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[?12l[?25h[No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    

[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?12l[?25h[?25l2[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

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

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST syncbind
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest 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[?12l[?25h


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 201010202[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25h[?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25h[?25l

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


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lzt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
^Wj:
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" ***** done with tests *****
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out             " Write contents of this file
[?25l"test.out" [New File] 33 lines, 1329 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25l^[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
[?12l[?25h[?25lTest 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[?12l[?25h[?25l
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l
abcdefghijk      lmn    opq rstuvwxyz[?12l[?25h[?25l:[?12l[?25hset ai
[?25l[?12l[?25h[?25l:[?12l[?25hset bs=2
[?25l[?12l[?25h[?25l 1
 A BCDEFGHIJ    KL        MNOPQR[?12l[?25h[?25l:[?12l[?25hka
[?25l[?12l[?25h[?25labcdefghijk      lmn    opq rstuvwxyz[?12l[?25h
[?25l 1[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25lab      cdefghi jkl[?12l[?25h
[?25lAB......CDEFGHI.J[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25labcdefghijklmnopqrst[?12l[?25h
[?25lAB      IJKLMNO QR[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 13 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l/[?12l[?25h^abcde
[?25lbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?12l[?25h[?25l
:[?12l[?25h" Test shift-right of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25habcd[?25l[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?12l[?25h     ef[?25l[?12l[?25h[?25lg[?12l[?25h[?25lhg[?12l[?25h[?25lih[?12l[?25h[?25lji[?12l[?25h[?25l        ghijklm        ghijklm[?12l[?25h[?25l:[?12l[?25h" Test shift-left of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25h[?25l[?12l[?25h[?25li[?12l[?25h[?25l [?12l[?25h[?25l


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


abcd[?25l[?12l[?25h[?25le[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lbccf[?12l[?25h[?25lcddg[?12l[?25h[?25ld  h[?12l[?25h[?25lqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?12l[?25h
axyz[?25l:[?12l[?25h" Test block-change
[?25l[?12l[?25h

[?25l[?12l[?25h[?25lj[?12l[?25h[?25li[?12l[?25h[?25l     ghijkl[?12l[?25h[?25lef  gkl[?12l[?25h[?25lmnomnomno[?12l[?25h[?25l:[?12l[?25h$-4,$w! test.out
[?25l"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/mark.o mark.c
[New File] 5 lines, 108 characters written[?12l[?25h[?25l:[?12l[?25h" Test block-insert using cursor keys for movement
[?25l[?12l[?25h[?25l/[?12l[?25h^aaaa/
[?25lsearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?12l[?25h[?25l:[?12l[?25h/^aa/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?12l[?25h[?25l/[?12l[?25hxaaa$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?12l[?25h[?25l:[?12l[?25h/xaaa$/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the last <C-v>$
[?25l[?12l[?25h[?25l/[?12l[?25h^A23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?12l[?25h[?25l/[?12l[?25h^B23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?12l[?25h[?25l/[?12l[?25h^C23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25lab
456ab7[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all enc=utf-8
[?25laaa  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[?12l[?25h[?25l


:[?12l[?25h/\t\tline
[?25lsearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25lxxx[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 4 lines, 49 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block append when virtualedit=all
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25lx   line1x   line2x   line3[?12l[?25h[?25l:[?12l[?25hset ve= enc=latin1
[?25lx     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[?12l[?25h[?25l
the [?25l
:[?12l[?25h" VU must uppercase a whole line
[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" same, when it's the last line in the buffer
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" Uppercase two lines
[?25l[?12l[?25h[?25l
blah didoh dut[?12l[?25h[?25l
doh dut [?12l[?25h[?25lblah di t[?12l[?25h[?25l
BLAH DIDOH DUT[?12l[?25h[?25l
:[?12l[?25h" Uppercase part of two lines
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l
333the yo[?12l[?25h[?25lut[?12l[?25h[?25lUTUSSEUU END
333THE YOUTU[?12l[?25h[?25l

:[?12l[?25h" visual replace using Enter or NL
[?25l[?12l[?25h
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^M65
98^M65
98^M65[?12l[?25h
98
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^@65
98^@65
98^@65[?12l[?25h[?25l


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


:[?12l[?25h/^the/,$w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for "*Cmd" autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/memline.o memline.c
[New File] 55 lines, 1455 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l"Xxx" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestA 0r Xxx|$del
[?25l[?12l[?25h[?25l:[?12l[?25he XtestA^I^I^I" will read text of Xxd instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?12l[?25h[?25l:[?12l[?25hw^I^I^I^I" will append a line to the file
[?25lwrite[?12l[?25h[?25l:[?12l[?25hr XtestA^I^I^I" should not read anything
[?25lE484: Can't open file XtestA[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" now we have:
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileReadCmd XtestB '[r Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWriteCmd XtestC '[,']copy $
[?25l[?12l[?25h[?25ltest401[?12l[?25h[?25l:[?12l[?25h4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l        test401end of Xxx[?12l[?25h[?25l:[?12l[?25hr XtestC^I^I^I" should not read anything
[?25lE484: Can't open file XtestC[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw >>XtestD^I^I^I" will write all lines to test.out
[?25l"test.out" [New File] 9 lines, 91 characters written[?12l[?25h[?25l:[?12l[?25h$r XtestD^I^I^I" should not read anything
[?25lE484: Can't open file XtestD[?12l[?25h[?25l:[?12l[?25h$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestE 0r test.out|$del
[?25l[?12l[?25h[?25l:[?12l[?25hsp XtestE^I^I^I" split window with test.out
[?25l"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?12l[?25h[?25lasdf[+][?12l[?25hXtestE [+]                                                                       XtestA                                                                          [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestE w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hwall^I^I^I^I" will write other window to test.out
[?25l"test.out" 11 lines, 107 characters written   [?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iasdf
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 10^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 11^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file of over 100 Kbyte[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 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[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"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[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file starting with a BOM[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l: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^@[?12l[?25h[?25l:[?12l[?25hset fileencodings=ucs-bom,latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Write the test files
[?25l[?12l[?25h[?25l:[?12l[?25h/^latin-1$/+1w! Xtest0
[?25l"Xtest0" [New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8$/+1w! Xtest1
[?25l"Xtest1" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8-err$/+1w! Xtest2
[?25l"Xtest2" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2$/+1w! Xtest3
[?25l"Xtest3" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2le$/+1w! Xtest4
[?25l"Xtest4" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add a NUL byte after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4                      " Ignore change from setting 'ff'
[?25l"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hset ffs& nobinary              " Allow default test42.in format
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix                    " Format for files to write
[?25l[?12l[?25h[?25l:[?12l[?25h/^ucs-4$/+1w! Xtest5
[?25l"Xtest5" [converted][New File] 1 line, 30 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-4le$/+1w! Xtest6
[?25l"Xtest6" [converted][New File] 1 line, 35 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add three NUL bytes after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6                      " ! for when setting 'ff' is a change
[?25l"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
~   [?25l
^@^@^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest0
[?25l"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir! >test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=latin1

nobomb

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

  bomb

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

nobomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8<80>err
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 17 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest2x
[?25l"Xtest2x" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest3
[?25l"Xtest3" [converted] 1 line, 8 charactersucs-2[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest3x
[?25l"Xtest3x" [converted][New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4
[?25l"Xtest4" [converted] 1 line, 10 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest4x
[?25l"Xtest4x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest5
[?25l"Xtest5" [converted] 1 line, 10 characters4[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest5x
[?25l"Xtest5x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6
[?25l"Xtest6" [converted] 1 line, 12 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest6x
[?25l"Xtest6x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check the files written with BOM
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25h$r Xtest0x
[?25l"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?12l[?25h[?25l
:[?12l[?25h$r Xtest1x
[?25l"Xtest1x" 1 line, 9 characters
<feff>utf-8[?12l[?25h[?25l
:[?12l[?25h$r Xtest2x
[?25l"Xtest2x" 1 line, 17 characters
utf-8<80>err[?12l[?25h[?25l
:[?12l[?25h$r Xtest3x
[?25l"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest4x
[?25l"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest5x
[?25l"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest6x
[?25l"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l
:[?12l[?25hset nobin ff&               " Write the file in default format
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 44 lines, 409 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

1 more line; before #2  0 seconds agobar[?12l[?25h[?25l
9 foo
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 11L, 137C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
: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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l:[?12l[?25h" c
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
:[?12l[?25h" d
[?25l[?12l[?25h[?25l/[?12l[?25h[\u4f7f\u5929]\+
[?25l
:[?12l[?25h" e
[?25l[?12l[?25h[?25l/[?12l[?25h\%U12345678
[?25l
:[?12l[?25h" f
[?25l[?12l[?25h[?25l/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
:[?12l[?25h" g
[?25l[?12l[?25h[?25l/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" j Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?12l[?25h[?25l:[?12l[?25h$put =['dog(a', 'cat(']
[?25ldog(acat([+][?12l[?25h[?25l/[?12l[?25h(/e+
[?25l/(/e+1
[?12l[?25h[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hbd!
[?25l1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?12l[?25h[?25la[?12l[?25h[?25l
cat(
[?12l[?25h[?25l
:[?12l[?25hw!
[?25l"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
 25L, 271C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("."))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for folding. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We also need the +syntax feature here.
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("syntax")
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   w! test.out

[?25l:  [?12l[?25h   qa!

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

[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?12l[?25h[?25l:[?12l[?25hcall append("$", getline(foldclosed(".")))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with markers.
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=marker fdl=1 fdc=3
[?25l   :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[?12l[?25h[?25l/[?12l[?25h^5
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", "marker " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l{{ |  6 ff }}}[?12l[?25h[?25l-{|
|
|
|[?12l[?25h[?25l


:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l6 ff }}}
 7 gg
 8 hh[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with indent
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=indent sw=2
[?25l-++---  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[?12l[?25h[?25l/[?12l[?25h^2 b
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l
-  2 bb[?12l[?25h[?25l
|-    3 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", "indent " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test syntax folding
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=syntax fdl=0
[?25l          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[?12l[?25h[?25l:[?12l[?25hsyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hsyn region Fd1 start="ee" end="ff" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd2 start="gg" end="hh" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?12l[?25h[?25l   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?12l[?25h[?25l:[?12l[?25hcall append("$", "folding " . getline("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l
--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[?12l[?25h[?25l commentend- 
|-

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

[?25l:  [?12l[?25h  if l =~ "bb$"

[?25l:    [?12l[?25h    return 2

[?25l:    [?12l[?25h  elseif l =~ "gg$"

[?25l:    [?12l[?25h    return "s1"

[?25l:    [?12l[?25h  elseif l =~ "ii$"

[?25l:    [?12l[?25h    return ">2"

[?25l:    [?12l[?25h  elseif l =~ "kk$"

[?25l:    [?12l[?25h    return "0"

[?25l:    [?12l[?25h  endif

[?25l:  [?12l[?25h  return "="

[?25l:  [?12l[?25hendfun
[?25l   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?12l[?25h[?25l:[?12l[?25hset fdm=expr fde=Flvl()
[?25l++-- 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---------------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l/[?12l[?25hbb$
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hcall append("$", "expr " . foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hhh$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hii$
[?25l-9 ii||a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hkk$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
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
[?25l[?12l[?25h[?25l:[?12l[?25h/^last/+1,$w! test.out
[?25l"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/menu.o menu.c
[New File] 18 lines, 96 characters written[?12l[?25h[?25l:[?12l[?25hdelfun Flvl
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l   
   
   
   ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?12l[?25h[?25lTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?12l[?25h[?25l:[?12l[?25hset fdm=indent
[?25l++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l:[?12l[?25h1m1
[?25l[?12l[?25h[?25l:[?12l[?25hm0
[?25l3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?12l[?25h[?25l:[?12l[?25h%w >> test.out
[?25l"test.out" 5 lines, 77 characters appendedtest.out [+]]  [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of 'virtualedit'.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswf
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


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

"r"     
a^Vb^Msdabcv6efi.him0kl[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   When past the end of a line that ends in a single character "b" skips
[?25l[?12l[?25h[?25l:[?12l[?25h"    that word.
[?25l[?12l[?25h
[?25l$7[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'i' works
[?25l[?12l[?25h
'i'   [?25l<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'C' works
[?25l[?12l[?25h
'C'   [?25l$<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'a' works
[?25l[?12l[?25h
'a'   [?25l <-- should be 4 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'A' works
[?25l[?12l[?25h
'A'   [?25l<-- should be 0 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'D' works
[?25l[?12l[?25h
'D'   [?25l<-- 'D' should be intact[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for yank bug reported by Mark Waggoner.
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=block
[?25l[?12l[?25h
[?25l[?12l[?25h[?25laaa[?12l[?25h[?25laaablock of 4 lines yanked[?12l[?25h[?25l3 more linesa
aa [?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" beyond the end of the line
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l/[?12l[?25h^"r"
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h"r"    [?25lx[?12l[?25h[?25lx<-- should be 'x'[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" on a tab
[?25l[?12l[?25h[?25l:[?12l[?25h" Note that for this test, 'ts' must be 8 (the default).
[?25l[?12l[?25h
"r"  [?25lx[?12l[?25h[?25lx  <-- should be '  x  '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test to make sure 'x' can delete control characters
[?25l[?12l[?25h[?25l:[?12l[?25hset display=uhex
[?25l<16>b<0d>sd[?12l[?25h
[?25l<16>b<0d>sd[?12l[?25h[?25lb<0d>sd[?12l[?25h[?25l<0d>sd[?12l[?25h[?25lsd[?12l[?25h[?25ld[?12l[?25h[?25l[?12l[?25h[?25l[This line should contain only the text between the brackets.][?12l[?25h[?25l:[?12l[?25hset display=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?12l[?25h[?25l:[?12l[?25h"   Roy <royl@netropolis.net>.
[?25l[?12l[?25h
[?25l[?12l[?25h   [?25lv[?12l[?25hv   [?25li[?12l[?25hi   [?25lm   <-- should show the name of a noted text editor[?12l[?25h
[?25l[?12l[?25h    [?25l6[?12l[?25h6   [?25l.[?12l[?25h.   [?25l0   <-- and its version number[?12l[?25h[?25l
[?12l[?25h
    [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for yanking and pasting using the small delete register
[?25l[?12l[?25h[?25l/[?12l[?25h^foo
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l, bar[?12l[?25h, [?25l[?12l[?25h[?25lba[?12l[?25h[?25l[?12l[?25h[?25lfoo[?12l[?25h
keyw[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 23 lines, 479 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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=#000ff00 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

EndOfBuffer    xxx links to NonText

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

Directory      xxx term=bold ctermfg=4 guifg=Blue

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 guibg=Yellow

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

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline ctermfg=3 guifg=Brown

CursorLineNr   xxx term=bold ctermfg=3 gui=bold guifg=Brown

Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen

StatusLine     xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse

StatusLineNC   xxx term=reverse cterm=reverse gui=reverse

VertSplit      xxx term=reverse cterm=reverse gui=reverse

Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=LightGrey

VisualNOS      xxx cleared

WarningMsg     xxx term=standout ctermfg=1 guifg=Red

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

Foldedxxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue

guibg=LightGrey

FoldColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=LightBlue

DiffChange     xxx term=bold ctermbg=5 guibg=LightMagenta

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

guibg=LightCyan

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

SignColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue 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=DarkCyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=LightMagenta

PmenuSelxxx ctermfg=0 ctermbg=7 guibg=Grey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=0 guibg=Black

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

gui=underline guibg=LightGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=7 guibg=Grey90

CursorLine     xxx term=underline cterm=underline guibg=Grey90

ColorColumn    xxx term=reverse ctermbg=1 guibg=LightRed

MatchParen     xxx term=reverse ctermbg=6 guibg=Cyan

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Search
[?25l
Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow

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

0ff00 guibg=Cyan
[?25lE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 term= cterm=
[?25lE418: Illegal value: cterm=

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group3
[?25l
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear NewGroup
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?12l[?25h[?25l
:[?12l[?25hhi NewGroup
[?25l
NewGroupxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 NONE
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?12l[?25h[?25l
:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hhi Group3
[?25l
Group3xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Crash term='asdf
[?25lE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l:hi NewGroup
:hi Group2
:hi Group3[?12l[?25h[?25l
:[?12l[?25h" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h%s/ctermfg=\d*/ctermfg=2/
[?25l2
[?12l[?25h[?25l:[?12l[?25h%s/ctermbg=\d*/ctermbg=3/
[?25l3
[?12l[?25h[?25l:[?12l[?25h" filter out possibly translated error message
[?25l[?12l[?25h[?25l:[?12l[?25h%s/E475: [^:]*:/E475:/
[?25lterm='asdf[?12l[?25h[?25l:[?12l[?25h" fix the fileformat
[?25l[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hwq!
[?25l"test.out" 20 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for string and html text objects. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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>-[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l[?12l[?25h[?25lfo[?12l[?25h
[?25l[?12l[?25h[?25l'foo'[?12l[?25h[?25l 'bar'[?12l[?25h[?25l
xxxxxxxxxxxx
[?12l[?25h
[?25lblah[?12l[?25h
[?25l"[?12l[?25h
[?25l[?12l[?25h[?25l' rep[?12l[?25h[?25lyyyyy[?12l[?25h[?25l:[?12l[?25hset quoteescape=+*-
[?25l[?12l[?25h[?25l` b`la[?12l[?25h[?25l[?12l[?25h[?25l" sdf"[?12l[?25h[?25l" [?12l[?25h[?25l"[?12l[?25h[?25l asdf" sdf [?12l[?25h[?25lah" sdf "
voo "[?12l[?25h[?25lzzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^<begin
[?25l[?12l[?25h
[?25l</i>asdf</b>-[?12l[?25h[?25l
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?12l[?25h
[?25l</b>-[?12l[?25h[?25l
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?12l[?25h[?25lasdf</b>-[?12l[?25h[?25l
-<b>asdX<i>as<b />df</i>asdf</b>-[?12l[?25h
[?25l
--[?12l[?25h[?25l
-<b>
-[?12l[?25h[?25l<b></b>[?12l[?25h[?25l
</begin>[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l
b[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l
bc[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l
c[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l
a[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, -1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 4) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 3, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 2) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 1, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 2, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 4) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25h/^start:/,/^end:/wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test(...)
[?25l
:  [?12l[?25h:lang C

[?25l:  [?12l[?25h:" Creating List directly with different types

[?25l:  [?12l[?25h:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:$put =string(l[-4])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-5])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List slices

[?25l:  [?12l[?25h:$put =string(l[:])

[?25l:  [?12l[?25h:$put =string(l[1:])

[?25l:  [?12l[?25h:$put =string(l[:-2])

[?25l:  [?12l[?25h:$put =string(l[0:8])

[?25l:  [?12l[?25h:$put =string(l[8:-1])

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" List identity

[?25l:  [?12l[?25h:let ll = l

[?25l:  [?12l[?25h:let lx = copy(l)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Creating Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l:  [?12l[?25h:$put =string(d) . d.1

[?25l:  [?12l[?25h:$put =string(sort(keys(d)))

[?25l:  [?12l[?25h:$put =string (values(d))

[?25l:  [?12l[?25h:for [key, val] in items(d)

[?25l:    [?12l[?25h:  $put =key . ':' . string(val)

[?25l:    [?12l[?25h:  unlet key val

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:call extend  (d, {3:33, 1:99})

[?25l:  [?12l[?25h:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  call extend(d, {3:333,4:444}, "error")

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:call filter(d, 'v:key =~ ''[ac391]''')

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary identity

[?25l:  [?12l[?25h:let dd = d

[?25l:  [?12l[?25h:let dx = copy(d)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items with :unlet

[?25l:  [?12l[?25h:unlet l[2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:let l = range(8)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:unlet l[:3]

[?25l:    [?12l[?25h:unlet l[1:]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:$put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:unlet d.c

[?25l:  [?12l[?25h:unlet d[-1]

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:1]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:3]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:4]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:5]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-1:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-3:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-4:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-5:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-6:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" assignment to a list

[?25l:  [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:let [va, vb] = l[2:3]

[?25l:  [?12l[?25h:$put =va

[?25l:  [?12l[?25h:$put =vb

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l[1:1]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: let d[i] = 3000 - i

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let n = d[1500]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" lookup each items

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h: let i += 1

[?25l:  [?12l[?25h:" delete even items

[?25l:  [?12l[?25h:while i >= 2

[?25l:    [?12l[?25h: let i -= 2

[?25l:    [?12l[?25h: unlet d[i]

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l:  [?12l[?25h:" delete odd items, checking value, one intentionally wrong

[?25l:  [?12l[?25h:let d[33] = 999

[?25l:  [?12l[?25h:let i = 1

[?25l:  [?12l[?25h:while i < 1500

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =i . '=' . d[i]

[?25l:      [?12l[?25h: else

[?25l:      [?12l[?25h:  unlet d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h: let i += 2

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =string(d)  " must be almost empty now

[?25l:  [?12l[?25h:unlet d

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary function

[?25l:  [?12l[?25h:let dict = {}

[?25l:  [?12l[?25h:func dict.func(a) dict

[?25l:    [?12l[?25h:  $put =a:a . len(self.data)

[?25l:    [?12l[?25h:endfunc

[?25l:    [?12l[?25h:let dict.data = [1,2,3]

[?25l:    [?12l[?25h:call dict.func("len: ")

[?25l:    [?12l[?25h:let x = dict.func("again: ")

[?25l:    [?12l[?25h:let Fn = dict.func

[?25l:    [?12l[?25h:call Fn('xxx')

[?25l:    [?12l[?25h:" 

[?25l:    [?12l[?25h:" Function in script-local List or Dict

[?25l:    [?12l[?25h:let g:dict = {}

[?25l:    [?12l[?25h:function g:dict.func() dict

[?25l:      [?12l[?25h:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l:      [?12l[?25h:endfunc

[?25l:      [?12l[?25h:let g:dict.foo = ['-', 2, 3]

[?25l:      [?12l[?25h:call insert(g:dict.foo, function('strlen'))

[?25l:      [?12l[?25h:call g:dict.func()

[?25l:      [?12l[?25h:" 

[?25l:      [?12l[?25h:" Nasty: remove func from Dict that's being called (works)

[?25l:      [?12l[?25h:let d = {1:1}

[?25l:      [?12l[?25h:func d.func(a)

[?25l:[?12l[?25h:  return "a:". a:a

[?25l:[?12l[?25h:endfunc

[?25l:[?12l[?25h:$put =d.func(string(remove(d, 'func')))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l:[?12l[?25h:let d = {1:1, 2:2}

[?25l:[?12l[?25h:let l = [4, d, 6]

[?25l:[?12l[?25h:let d[3] = l

[?25l:[?12l[?25h:let dc = deepcopy(d)

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let dc = deepcopy(d, 1)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:let l2 = [0, l, l, 3]

[?25l:[?12l[?25h:let l[1] = l2

[?25l:[?12l[?25h:let l3 = deepcopy(l2)

[?25l:[?12l[?25h:$put ='same list: ' . (l3[1] is l3[2])

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1][0] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2]['6'][7] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2][6] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Unletting locked variables

[?25l:[?12l[?25h:$put ='Unletting:'

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]['6'][7]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2][6]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1][0]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables and :unlet or list / dict functions

[?25l:[?12l[?25h:$put ='Locks and commands or functions:'

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put =':unlet after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='filter() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call filter(d, 'v:key != "a"')

[?25l:[?12l[?25h:  $put ='did filter()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='map() after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call map(d, 'v:val + 200')

[?25l:[?12l[?25h:  $put ='did map()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  $put =string(extend(d, {'a': 123}))

[?25l:[?12l[?25h:  $put ='did extend()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No remove() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l:[?12l[?25h:    $put ='did remove()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l:[?12l[?25h:    $put ='did extend()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet of variable in locked scope:'

[?25l:[?12l[?25h:let b:testvar = 123

[?25l:[?12l[?25h:lockvar 1 b:

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet b:testvar

[?25l:[?12l[?25h:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:unlockvar 1 b:

[?25l:[?12l[?25h:unlet! b:testvar

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :let += of locked list variable:'

[?25l:[?12l[?25h:let l = ['a', 'b', 3]

[?25l:[?12l[?25h:lockvar 1 l

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let l += ['x']

[?25l:[?12l[?25h:  $put ='did :let +='

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:lockvar! l

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:unlet l[0:1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l[1:2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:let l[0:1] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let l[1:2] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:" :lockvar/islocked() triggering script autoloading

[?25l:[?12l[?25h:set rtp+=./sautest

[?25l:[?12l[?25h:lockvar g:footest#x

[?25l:[?12l[?25h:unlockvar g:footest#x

[?25l:[?12l[?25h:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l:[?12l[?25h:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l:[?12l[?25h:$put ='g:footest#x: '.g:footest#x

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" a:000 function argument

[?25l:[?12l[?25h:" first the tests that should fail

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000 = [1, 2]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[0] = 9

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[0]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2] = [9, 10]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[2]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[3] = {9: 10}

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[3]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:" now the tests that should pass

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2][1] = 9

[?25l:[?12l[?25h:  call extend(a:000[2], [5, 6])

[?25l:[?12l[?25h:  let a:000[3][5] = 8

[?25l:[?12l[?25h:  let a:000[3]['a'] = 12

[?25l:[?12l[?25h:  $put =string(a:000)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught ' . v:exception

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" reverse(), sort(), uniq()

[?25l:[?12l[?25h:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l:[?12l[?25h:$put =string(uniq(copy(l)))

[?25l:[?12l[?25h:$put =string(reverse(l))

[?25l:[?12l[?25h:$put =string(reverse(reverse(l)))

[?25l:[?12l[?25h:$put =string(sort(l))

[?25l:[?12l[?25h:$put =string(reverse(sort(l)))

[?25l:[?12l[?25h:$put =string(sort(reverse(sort(l))))

[?25l:[?12l[?25h:$put =string(uniq(sort(l)))

[?25l:[?12l[?25h:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'n'))

[?25l:[?12l[?25h:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l:[?12l[?25h:$put =string(sort(copy(l), 1))

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'i'))

[?25l:[?12l[?25h:$put =string(sort(copy(l)))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" splitting a string to a List

[?25l:[?12l[?25h:$put =string(split('  aa  bb '))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W', 1))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 0))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 1))

[?25l:[?12l[?25h:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs'))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs', 1))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare recursively linked list and dict

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:let d = {'1': 1, '2': l, '3': 3}

[?25l:[?12l[?25h:let l[1] = d

[?25l:[?12l[?25h:$put =(l == l)

[?25l:[?12l[?25h:$put =(d == d)

[?25l:[?12l[?25h:$put =(l != deepcopy(l))

[?25l:[?12l[?25h:$put =(d != deepcopy(d))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare complex recursively linked list and dict

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:call add(l, l)

[?25l:[?12l[?25h:let dict4 = {"l": l}

[?25l:[?12l[?25h:call add(dict4.l, dict4)

[?25l:[?12l[?25h:let lcopy = deepcopy(l)

[?25l:[?12l[?25h:let dict4copy = deepcopy(dict4)

[?25l:[?12l[?25h:$put =(l == lcopy)

[?25l:[?12l[?25h:$put =(dict4 == dict4copy)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same List to extend()

[?25l:[?12l[?25h:let l = [1, 2, 3, 4, 5]

[?25l:[?12l[?25h:call extend(l, l)

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend()

[?25l:[?12l[?25h:let d = { 'a': {'b': 'B'}}

[?25l:[?12l[?25h:call extend(d, d)

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend() with "error"

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call extend(d, d, "error")

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" test for range assign

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:let l[:] = [1, 2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:endfun
[?25l:$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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25lError detected while processing function Test: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

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[?12l[?25h[?25l:[?12l[?25h"
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 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]
~                                                                               [?12l[?25h[?25l

:[?12l[?25hdelfunc Testgcc -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

[?25l[?12l[?25h[?25l:[?12l[?25hunlet dict
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for patch 7.3.637
[?25l[?12l[?25h[?25l:[?12l[?25hlet a = 'No error caught'
[?25l[?12l[?25h[?25l:[?12l[?25htry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?12l[?25h[?25l=[?12l[?25ha
[?25lVim(foldopen):E490:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hredir => a
[?25l[?12l[?25h[?25l:[?12l[?25htry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?12l[?25h[?25l
=[?12l[?25ha
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'))|endtry
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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>delfunnc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for script-local function.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,/^end:/-1w! Xtest.vim
[?25l"Xtest.vim" [New] 7L, 251C written[?12l[?25h[?25l:[?12l[?25hsource Xtest.vim
[?25l[?12l[?25h[?25l:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?12l[?25h[?25lTest for script-local function.     vim: set ft=vim :nothing line[?12l[?25h[?25l:[?12l[?25h$-1,$wq! test.out
[?25l"test.out" [New] 2L, 23C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :sort command.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^t01:/+1,/^t02/-1sort
[?25l 123b2
a123
a
ababc[?12l[?25h[?25l:[?12l[?25h/^t02:/+1,/^t03/-1sort n
[?25lb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?12l[?25h[?25l
:[?12l[?25h/^tgcc -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
03:/+1,/^t04/-1sort x
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?12l[?25h[?25l:[?12l[?25h/^t04:/+1,/^t05/-1sort u
[?25lb321b
b322b
c123d
c321d
t04: alpha, unique[?12l[?25h[?25l
:[?12l[?25h/^t05:/+1,/^t06/-1sort!
[?25la123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?12l[?25h[?25l:[?12l[?25h/^t06:/+1,/^t07/-1sort! n        
[?25la
 123b


t06: numeric, reverse
b322b[?12l[?25h[?25l
:[?12l[?25h/^t07:/+1,/^t08/-1sort! u
[?25l123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?12l[?25h[?25l:[?12l[?25h/^t08:/+1,/^t09/-1sort o         
[?25l123b

t08: octal
abc[?12l[?25h[?25l
:[?12l[?25h/^t09:/+1,/^t10/-1sort! x        
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?12l[?25h[?25l:[?12l[?25h/^t10:/+1,/^t11/-1sort/./        
[?25lab
a


t10: alpha, skip first character
a[?12l[?25h[?25l
:[?12l[?25h/^t11:/+1,/^t12/-1sort/../       
[?25l123b
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[?12l[?25h[?25l:[?12l[?25h/^t12:/+1,/^t13/-1sort/../u
[?25lb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?12l[?25h[?25l
:[?12l[?25h/^t13:/+1,/^t14/-1sort/./n
[?25lb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?12l[?25h[?25l:[?12l[?25h/^t14:/+1,/^t15/-1sort/./r
[?25lc321d
b321
b321b
b322b
t14: alpha, sort on first character[?12l[?25h[?25l
:[?12l[?25h/^t15:/+1,/^t16/-1sort/../r
[?25la321
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[?12l[?25h[?25l:[?12l[?25h/^t16:/+1,/^t17/-1sort/./rn
[?25lb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?12l[?25h[?25l
:[?12l[?25h/^t17:/+1,/^t18/-1sort/\d/
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?12l[?25h[?25l:[?12l[?25h/^t18:/+1,/^t19/-1sort/\d/r
[?25la123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t19:/+1,/^t20/-1sort/\d/n
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t20:/+1,/^t21/-1sort/\d/rn
[?25la123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t21:/+1,/^t22/-1sort/\d\d/
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t22:/+1,/^t23/-1sort/\d\d/n
[?25la123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t23:/+1,/^t24/-1sort/\d\d/x
[?25lb321
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[?12l[?25h[?25l:[?12l[?25h/^t24:/+1,/^t25/-1sort/\d\d/r
[?25lc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25lc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t27:/+1,/^t28/-1sort no
[?25lE474: Invalid argument[?12l[?25h[?25l:[?12l[?25h/^t28:/+1,/^t29/-1sort b
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?12l[?25h[?25l:[?12l[?25h/^t29:/+1,/^t30/-1sort b
[?25l0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?12l[?25h[?25l
:[?12l[?25h/^t30:/+1,/^t31/-1sort f
[?25la0b001000
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[?12l[?25h[?25l:[?12l[?25h/^t01:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! RunTest(str, result)
[?25l
:  [?12l[?25h    if exists(a:str) == a:result

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED: Checking for " . a:str

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfunction
[?25lendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?12l[?25h[?25l
:[?12l[?25hfunction! TestExists()
[?25l
:  [?12l[?25h    augroup myagroup

[?25l:  [?12l[?25h^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l:  [?12l[?25h^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l:  [?12l[?25h    augroup END

[?25l:  [?12l[?25h    set rtp+=./sautest

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    let test_cases = []

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " valid autocmd group

[?25l:  [?12l[?25h    let test_cases += [['#myagroup', 1]]

[?25l:  [?12l[?25h    " valid autocmd group with garbage

[?25l:  [?12l[?25h    let test_cases += [['#myagroup+b', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd group or event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup', 0]]

[?25l:  [?12l[?25h    " Non-existing autocmd group and valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event with no matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['###', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group and event or empty event and pattern

[?25l:  [?12l[?25h    let test_cases += [['##', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##FileReadCmd', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##MySpecialCmd', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&textwidth', 1]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&tw', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['&tw-', 0]]

[?25l:  [?12l[?25h    " Global option

[?25l:  [?12l[?25h    let test_cases += [['&g:errorformat', 1]]

[?25l:  [?12l[?25h    " Local option

[?25l:  [?12l[?25h    let test_cases += [['&l:errorformat', 1]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&nojoinspaces', 0]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&nojs', 0]]

[?25l:  [?12l[?25h    " Non-existing option

[?25l:  [?12l[?25h    let test_cases += [['&myxyzoption', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['+incsearch', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['+incsearch!1', 0]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['+is', 1]]

[?25l:  [?12l[?25h    " Existing option that is hidden.

[?25l:  [?12l[?25h    let test_cases += [['+autoprint', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing environment variable

[?25l:  [?12l[?25h    let $EDITOR_NAME = 'Vim Editor'

[?25l:  [?12l[?25h    let test_cases += [['$EDITOR_NAME', 1]]

[?25l:  [?12l[?25h    " Non-existing environment variable

[?25l:  [?12l[?25h    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal function

[?25l:  [?12l[?25h    let test_cases += [['*bufnr', 1]]

[?25l:  [?12l[?25h    " Valid internal function with ()

[?25l:  [?12l[?25h    let test_cases += [['*bufnr()', 1]]

[?25l:  [?12l[?25h    " Non-existing internal function

[?25l:  [?12l[?25h    let test_cases += [['*myxyzfunc', 0]]

[?25l:  [?12l[?25h    " Valid internal function with garbage

[?25l:  [?12l[?25h    let test_cases += [['*bufnr&6', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid user defined function

[?25l:  [?12l[?25h    let test_cases += [['*TestExists', 1]]

[?25l:  [?12l[?25h    " Non-existing user defined function

[?25l:  [?12l[?25h    let test_cases += [['*MyxyzFunc', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function that may be created by FuncUndefined event

[?25l:  [?12l[?25h    let test_cases += [['*UndefFun', 0]]

[?25l:  [?12l[?25h    " Function that may be created by script autoloading

[?25l:  [?12l[?25h    let test_cases += [['*footest#F', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    redir! > test.out

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    for [test_case, result] in test_cases

[?25l:    [?12l[?25h        echo test_case . ": " . result

[?25l:    [?12l[?25h        call RunTest(test_case, result)

[?25l:    [?12l[?25h    endfor

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match)

[?25l:  [?12l[?25h    echo ':edit: 2'

[?25l:  [?12l[?25h    if exists(':edit') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match) with garbage

[?25l:  [?12l[?25h    echo ':edit/a: 0'

[?25l:  [?12l[?25h    if exists(':edit/a') == 0

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (partial match)

[?25l:  [?12l[?25h    echo ':q: 1'

[?25l:  [?12l[?25h    if exists(':q') == 1

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing internal command

[?25l:  [?12l[?25h    echo ':invalidcmd: 0'

[?25l:  [?12l[?25h    if !exists(':invalidcmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (full match)

[?25l:  [?12l[?25h    command! MyCmd :echo 'My command'

[?25l:  [?12l[?25h    echo ':MyCmd: 2'

[?25l:  [?12l[?25h    if exists(':MyCmd') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (partial match)

[?25l:  [?12l[?25h    command! MyOtherCmd :echo 'Another command'

[?25l:  [?12l[?25h    echo ':My: 3'

[?25l:  [?12l[?25h    if exists(':My') == 3

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Command modifier

[?25l:  [?12l[?25h    echo ':rightbelow: 2'

[?25l:  [?12l[?25h    if exists(':rightbelow') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (full match)

[?25l:  [?12l[?25h    delcommand MyCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':MyCmd: 0'

[?25l:  [?12l[?25h    if !exists(':MyCmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (partial match)

[?25l:  [?12l[?25h    delcommand MyOtherCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':My: 0'

[?25l:  [?12l[?25h    if !exists(':My')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var: 1'

[?25l:  [?12l[?25h    if exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable with garbage

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var%n: 0'

[?25l:  [?12l[?25h    if !exists('local_var%n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local variable

[?25l:  [?12l[?25h    unlet local_var

[?25l:  [?12l[?25h    echo 'local_var: 0'

[?25l:  [?12l[?25h    if !exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing autoload variable that may be autoloaded

[?25l:  [?12l[?25h    echo 'footest#x: 0'

[?25l:  [?12l[?25h    if !exists('footest#x')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list

[?25l:  [?12l[?25h    let local_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'local_list: 1'

[?25l:  [?12l[?25h    if exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item

[?25l:  [?12l[?25h    echo 'local_list[1]: 1'

[?25l:  [?12l[?25h    if exists('local_list[1]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item with garbage

[?25l:  [?12l[?25h    echo 'local_list[1]+5: 0'

[?25l:  [?12l[?25h    if !exists('local_list[1]+5')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Invalid local list item

[?25l:  [?12l[?25h    echo 'local_list[2]: 0'

[?25l:  [?12l[?25h    if !exists('local_list[2]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local list

[?25l:  [?12l[?25h    unlet local_list

[?25l:  [?12l[?25h    echo 'local_list: 0'

[?25l:  [?12l[?25h    if !exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local dictionary

[?25l:  [?12l[?25h    let local_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'local_dict: 1'

[?25l:  [?12l[?25h    if exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local dictionary

[?25l:  [?12l[?25h    unlet local_dict

[?25l:  [?12l[?25h    echo 'local_dict: 0'

[?25l:  [?12l[?25h    if !exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing local curly-brace variable

[?25l:  [?12l[?25h    let str = "local"

[?25l:  [?12l[?25h    let curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local curly-brace variable

[?25l:  [?12l[?25h    unlet curly_{str}_var

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable

[?25l:  [?12l[?25h    let g:global_var = 1

[?25l:  [?12l[?25h    echo 'g:global_var: 1'

[?25l:  [?12l[?25h    if exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable with garbage

[?25l:  [?12l[?25h    echo 'g:global_var-n: 1'

[?25l:  [?12l[?25h    if !exists('g:global_var-n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global variable

[?25l:  [?12l[?25h    unlet g:global_var

[?25l:  [?12l[?25h    echo 'g:global_var: 0'

[?25l:  [?12l[?25h    if !exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global list

[?25l:  [?12l[?25h    let g:global_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'g:global_list: 1'

[?25l:  [?12l[?25h    if exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global list

[?25l:  [?12l[?25h    unlet g:global_list

[?25l:  [?12l[?25h    echo 'g:global_list: 0'

[?25l:  [?12l[?25h    if !exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global dictionary

[?25l:  [?12l[?25h    let g:global_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'g:global_dict: 1'

[?25l:  [?12l[?25h    if exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global dictionary

[?25l:  [?12l[?25h    unlet g:global_dict

[?25l:  [?12l[?25h    echo 'g:global_dict: 0'

[?25l:  [?12l[?25h    if !exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global curly-brace variable

[?25l:  [?12l[?25h    let str = "global"

[?25l:  [?12l[?25h    let g:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global curly-brace variable

[?25l:  [?12l[?25h    unlet g:curly_{str}_var

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window variable

[?25l:  [?12l[?25h    echo 'w:window_var: 1'

[?25l:  [?12l[?25h    let w:window_var = 1

[?25l:  [?12l[?25h    if exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window variable

[?25l:  [?12l[?25h    unlet w:window_var

[?25l:  [?12l[?25h    echo 'w:window_var: 0'

[?25l:  [?12l[?25h    if !exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window list

[?25l:  [?12l[?25h    let w:window_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'w:window_list: 1'

[?25l:  [?12l[?25h    if exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window list

[?25l:  [?12l[?25h    unlet w:window_list

[?25l:  [?12l[?25h    echo 'w:window_list: 0'

[?25l:  [?12l[?25h    if !exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window dictionary

[?25l:  [?12l[?25h    let w:window_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'w:window_dict: 1'

[?25l:  [?12l[?25h    if exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window dictionary

[?25l:  [?12l[?25h    unlet w:window_dict

[?25l:  [?12l[?25h    echo 'w:window_dict: 0'

[?25l:  [?12l[?25h    if !exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window curly-brace variable

[?25l:  [?12l[?25h    let str = "window"

[?25l:  [?12l[?25h    let w:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window curly-brace variable

[?25l:  [?12l[?25h    unlet w:curly_{str}_var

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer variable

[?25l:  [?12l[?25h    echo 'b:buffer_var: 1'

[?25l:  [?12l[?25h    let b:buffer_var = 1

[?25l:  [?12l[?25h    if exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer variable

[?25l:  [?12l[?25h    unlet b:buffer_var

[?25l:  [?12l[?25h    echo 'b:buffer_var: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer list

[?25l:  [?12l[?25h    let b:buffer_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'b:buffer_list: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer list

[?25l:  [?12l[?25h    unlet b:buffer_list

[?25l:  [?12l[?25h    echo 'b:buffer_list: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer dictionary

[?25l:  [?12l[?25h    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer dictionary

[?25l:  [?12l[?25h    unlet b:buffer_dict

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer curly-brace variable

[?25l:  [?12l[?25h    let str = "buffer"

[?25l:  [?12l[?25h    let b:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer curly-brace variable

[?25l:  [?12l[?25h    unlet b:curly_{str}_var

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Script-local tests

[?25l:  [?12l[?25h    source test60.vim

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:version: 1'

[?25l:  [?12l[?25h    if exists('v:version')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:non_exists_var: 0'

[?25l:  [?12l[?25h    if !exists('v:non_exists_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function arguments

[?25l:  [?12l[?25h    function TestFuncArg(func_arg, ...)

[?25l:    [?12l[?25h        echo 'a:func_arg: 1'

[?25l:    [?12l[?25h        if exists('a:func_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:non_exists_arg: 0'

[?25l:    [?12l[?25h        if !exists('a:non_exists_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:1: 1'

[?25l:    [?12l[?25h        if exists('a:1')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:2: 0'

[?25l:    [?12l[?25h        if !exists('a:2')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h    endfunction

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    call TestFuncArg("arg1", "arg2")

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    echo ' g:footest#x =' g:footest#x

[?25l:    [?12l[?25h    echo '   footest#F()' footest#F()

[?25l:    [?12l[?25h    echo 'UndefFun()' UndefFun()

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    redir END

[?25l:    [?12l[?25hendfunction
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hcall TestExists()
[?25l#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[?12l[?25h[?25l:[?12l[?25h"
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hdelfunc TestExists
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestFuncArg
[?25l[?12l[?25h[?25l:[?12l[?25hedit! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out"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
 206 lines, 1941 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns without multi-byte support.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp engine
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"operator \|
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a*', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x', 'abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search single groups
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'baced'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search multi-modifiers
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" no match here
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a\{0,1}'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" leading star as normal char when \{} follows
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test groups of characters and submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test greedy-ness and lazy-ness
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test Character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test collections and character range []
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-a]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?12l[?25h[?25l:[?12l[?25h" filename regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?12l[?25h[?25l:[?12l[?25h" special chars
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?12l[?25h[?25l:[?12l[?25h" collation elem
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" middle of regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test start/end of line, start/end of file
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "b a \na_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a', " a \na "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test recognition of character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \z features
[?25l[?12l[?25h[?25l:[?12l[?25h" match ends at \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" match starts at \zs
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \@= and \& features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match, no matter the input text
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Combining different tests and features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" \%u and friends
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \%[abc]
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Alternatives, must use first longest match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Look-behind with limit
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" look-behind match in front of a zero-width item
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" complicated look-behind match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \@>
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" TODO: BT engine does not restore submatch after failure
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" "\_" prepended negated collection matches EOL
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Requiring lots of states.
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Skip adding state twice
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""" Test \%V atom
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""""" multi-line tests """"""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" line breaks
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25lOK 0 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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', '']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a line break and ^ and $
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the multi-line tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='multi-line tests'
[?25l
multi-line tests[?12l[?25h[?25l
:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let before = t[2]

[?25l:  [?12l[?25h:  let after = t[3]

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    new

[?25l:    [?12l[?25h:    call setline(1, before)

[?25l:    [?12l[?25h:    exe '%sgcc -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
/' . pat . '/XX/'

[?25l:    [?12l[?25h:    let result = getline(1, '$')

[?25l:    [?12l[?25h:    q!

[?25l:    [?12l[?25h:    if result != after

[?25l:      [?12l[?25h:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?12l[?25h[?25l:[?12l[?25h" matchstr() with \ze in between.
[?25l[?12l[?25h[?25l:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25h.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l5">Ta 5</Title>
<T="7">Ac 7</Title>
[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h.+1,.+2yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
<T="5">Ta 5</Title>
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a look beind crossing a line boundary
[?25l[?12l[?25h[?25l/[?12l[?25h^Behind:
[?25lsearch 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[?12l[?25h[?25l/[?12l[?25h\(<\_[xy]\+\)\@3<=start
[?25l[?12l[?25h[?25l:[?12l[?25h.yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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>
[?12l[?25h[?25l
[?12l[?25h[?25l
xxstart3
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching Visual area
[?25l[?12l[?25h[?25l/[?12l[?25h^Visual:
[?25lsearch 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[?12l[?25h
the[?25l[?12l[?25h[?25lxe the the[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Ve/E/g
[?25l3 substitutions on 1 linexE thE thE
[?12l[?25h
[?25landaxand andaxand 
[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Va/A/g
[?25l6 substitutions on 1 lineAndAxAnd AndAxAnd[?12l[?25h
ooo[?25l[?12l[?25h[?25lxofor foro[?12l[?25h[?25lx
oooxofor foro[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Vo/O/g
[?25l8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?12l[?25h[?25l:[?12l[?25h/^Visual/+1,/^Visual/+4yank
[?25lsearch hit BOTTOM, continuing at TOP
4 lines yanked[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
4 more lines
thexE thE thExethe4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching marks
[?25l[?12l[?25h[?25l/[?12l[?25h^Marks:
[?25lsearch 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[?12l[?25h
asdf[?25l:[?12l[?25h.-4,.+6s/.\%>'s.*\%<'e../here/
[?25lhereasdf[?12l[?25h
asdf
dfsa
dfsadf[?25l:[?12l[?25h.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l
asdfagainasdfOK 0 - bc*[?12l[?25h[?25l:[?12l[?25h/^Marks:/+1,/^Marks:/+3yank
[?25lsearch hit BOTTOM, continuing at TOP
3 lines yanked[?12l[?25h[?25lOK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check patterns matching cursor position.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! Postest()
[?25l
:  [?12l[?25h new

[?25l:  [?12l[?25h 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:  [?12l[?25h call setpos('.', [0, 1, 0, 0])

[?25l:  [?12l[?25h s/\%>3c.//g

[?25l:  [?12l[?25h call setpos('.', [0, 2, 4, 0])

[?25l:  [?12l[?25h s/\%#.*$//g

[?25l:  [?12l[?25h call setpos('.', [0, 3, 0, 0])

[?25l:  [?12l[?25h s/\%<3c./_/g

[?25l:  [?12l[?25h %s/\%4l\%>5c./_/g

[?25l:  [?12l[?25h %s/\%6l\%>25v./_/g

[?25l:  [?12l[?25h %s/\%>6l\%3c./!/g

[?25l:  [?12l[?25h %s/\%>7l\%12c./?/g

[?25l:  [?12l[?25h %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l:  [?12l[?25h $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l:  [?12l[?25h 1,$yank

[?25l:  [?12l[?25h quit!

[?25l:  [?12l[?25hendfunc
[?25lOK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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[?12l[?25h[?25l255\
OK 0 - 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~                                                                               [?12l[?25h[?25l
-0-[?12l[?25h[?25l
:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25loooxOfOr 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 xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?12l[?25h[?25l
-1-[?12l[?25h[?25l
:[?12l[?25hset re=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-2-[?12l[?25h[?25l:[?12l[?25hset re=2
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l-2-
ffo
bob~                                                                               [?12l[?25h[?25l:[?12l[?25h" start and end of buffer
[?25l[?12l[?25h[?25l/[?12l[?25h\%^
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%^..
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25lt END[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:" 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'])[?12l[?25h[?25l/[?12l[?25h..\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l[?12l[?25h[?25lEN[?12l[?25h[?25l[?12l[?25h[?25lE[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check for detecting error
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=2
[?25l[?12l[?25h[?25l:[?12l[?25hfor pat in [' \ze*', ' \zs*']
[?25l
:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    let l = matchlist('x x', pat)

[?25l:    [?12l[?25h:    $put ='E888 NOT detected for ' . pat

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='E888 detected for ' . pat

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor
[?25lffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx xxxxxx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxxxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx   xxxxxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Write the results """""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("float")
[?25l
:  [?12l[?25h:  e! test.ok

[?25l:  [?12l[?25h:  wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%f', 123.456)
[?25l
123.456000[?12l[?25h[?25l
:[?12l[?25h$put =printf('%e', 123.456)
[?25l
1.234560e+02[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 123.456)
[?25l
123.456[?12l[?25h[?25l
:[?12l[?25h" check we don't crash on division by zero
[?25l[?12l[?25h[?25l:[?12l[?25hecho 1.0 / 0.0
[?25linf[?12l[?25h[?25l:[?12l[?25h$put ='+='
[?25l
+=[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 6.543
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
7.777[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 5
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
6.234[?12l[?25h[?25l
:[?12l[?25hlet a = 5
[?25l[?12l[?25h[?25l:[?12l[?25hlet a += 3.333
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(a)
[?25l
8.333[?12l[?25h[?25l
:[?12l[?25h$put ='=='
[?25l
==[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25h$put =v == 1.234
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =v == 1.2341
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='add-subtract'
[?25l
add-subtract[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 + 1.234)
[?25l
5.234[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 1.234 - 8)
[?25l
-6.766[?12l[?25h[?25l
:[?12l[?25h$put ='mult-div'
[?25l
mult-div[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 * 1.234)
[?25l
4.936[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4.0 / 1234)
[?25l
0.003241[?12l[?25h[?25l
:[?12l[?25h$put ='dict'
[?25l
dict[?12l[?25h[?25l
:[?12l[?25h$put =string({'x': 1.234, 'y': -2.0e20})
[?25l
{'x': 1.234, 'y': -2.0e20}[?12l[?25h[?25l
:[?12l[?25h$put ='list'
[?25l
list[?12l[?25h[?25l
:[?12l[?25h$put =string([-123.4, 2.0e-20])
[?25l
[-123.4, 2.0e-20][?12l[?25h[?25l
:[?12l[?25h$put ='abs'
[?25l
abs[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(1456))
[?25l
1456[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(-4))
[?25l
4[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs([1, 2, 3]))
[?25lE745: Using a List as a Number
-1[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(14.56))
[?25l
14.56[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(-54.32))
[?25l
54.32[?12l[?25h[?25l
:[?12l[?25h$put ='ceil'
[?25l
ceil[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(1.456))
[?25l
2.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-4.000))
[?25l
-4.0[?12l[?25h[?25l
:[?12l[?25h$put ='floor'
[?25l
floor[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(1.856))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(-5.456))
[?25l
-6.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(4.0))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='log10'
[?25l
log10[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(1000))
[?25l
3.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(0.01000))
[?25l
-2.0[?12l[?25h[?25l
:[?12l[?25h$put ='pow'
[?25l
pow[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(3, 3.0))
[?25l
27.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(2, 16))
[?25l
65536.0[?12l[?25h[?25l
:[?12l[?25h$put ='round'
[?25l
round[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(0.456))
[?25l
0.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(4.5))
[?25l
5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(-4.50))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put ='sqrt'
[?25l
sqrt[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', sqrt(100))
[?25l
10.0[?12l[?25h[?25l
:[?12l[?25hecho sqrt(-4.01)
[?25lnan[?12l[?25h[?25l:[?12l[?25h$put ='str2float'
[?25l
str2float[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', str2float('1e40'))
[?25l
1.0e40[?12l[?25h[?25l
:[?12l[?25h$put ='trunc'
[?25l
trunc[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(1.456))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(4.000))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='float2nr'
[?25l
float2nr[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(123.456)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(-123.456)
[?25l
-123[?12l[?25h[?25l
:[?12l[?25h$put ='AND'
[?25l
AND[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 127)
[?25l
127[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 16)
[?25l
16[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 128)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='OR'
[?25l
OR[?12l[?25h[?25l
:[?12l[?25h$put =or(16, 7)
[?25l
23[?12l[?25h[?25l
:[?12l[?25h$put =or(8, 7)
[?25l
15[?12l[?25h[?25l
:[?12l[?25h$put =or(0, 123)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put ='XOR'
[?25l
XOR[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 127)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 16)
[?25l
111[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 128)
[?25l
255[?12l[?25h[?25l
:[?12l[?25h$put ='invert'
[?25l
invert[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(127), 65535)
[?25l
65408[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(16), 65535)
[?25l
65519[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(128), 65535)
[?25l
65407[?12l[?25h[?25l
:[?12l[?25h$put =invert(1.0)
[?25lE805: Using a Float as a Number
0[?12l[?25h[?25l
:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^one
[?25l[?12l[?25hon[?25l[?12l[?25h[?25le
one two three
one two three
one two three
one two three[?12l[?25h[?25l
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?12l[?25h[?25lmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?12l[?25h[?25le
one
one
one
on[?12l[?25h[?25l1
on1
on1
on1
on1[?12l[?25h[?25l:[?12l[?25h'<,'>w! test.out
[?25l"test.out" [New File] 5 lines, 70 characters written[?12l[?25h[?25l/[?12l[?25h^abcdefgh
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?12l[?25h[?25la
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc            defghijklmnopqrstuvwxyz[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-5,$w >> test.out
[?25l"test.out"6 lines, 151 characters appended[?12l[?25h[?25l:[?12l[?25h$-4,$s/\s\+//g
[?25l7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
a
a
a[?12l[?25h[?25l
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghij[?12l[?25h
    ab[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                       defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                 defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-4,$w >> test.out
[?25l"test.out"5 lines, 147 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest that groups and patterns are tested correctly when calling exists() for[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/misc2.o misc2.c
[New File] 27 lines, 999 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet results=[]
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter *.test let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile.test
[?25l"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter <buffer> let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile2.test
[?25l"testfile2.test" [New File][?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l:[?12l[?25hcall append(0, results)
[?25l##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[?12l[?25h[?25l:[?12l[?25h$d
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 190 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset noai tw=2 fo=t
[?25l[?12l[?25h[?25la
b[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l
a  b[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tw
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
[?12l[?25h[?25l
a[?12l[?25ha [?25l
b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a ^A[?12l[?25h[?25l
:[?12l[?25hset tw=3 fo=t
[?25l[?12l[?25h[?25l
^A[?12l[?25h[?25la
^A
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a b[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tcq1 comments=:#
[?25l[?12l[?25h[?25l
#a b[?12l[?25h[?25la b
#a b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  1 a[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=tcn comments=:#
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
# 1 a[?12l[?25h[?25l
#   b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+3
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+3
[?25l{

  x a
  b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=t2a si
[?25l[?12l[?25h[?25l    b[?12l[?25h[?25l b_[?12l[?25h[?25l
c[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# 1 a b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=qn comments=:#
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# x[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=q2 comments=:#
[?25l[?12l[?25h[?25l# x a
[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+2
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+2
[?25l{
   1aa
   2bb[?12l[?25h[?25l
:[?12l[?25hset tw& fo=a
[?25l[?12l[?25h[?25l1aa ^^2bb }STARTTEST[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h[?25l
/mno pqr/[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25hmno pqr/
[?25l/* abc def ghi jkl
 *    mno pqr stu[?12l[?25h[?25l
:[?12l[?25hsetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?12l[?25h[?25l
*    vwx yz[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^#/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^#/
[?25l
# 1 xxxxx[?12l[?25h[?25l
:[?12l[?25hsetl tw=12 fo=tqnc comments=:#
[?25l[?12l[?25h[?25l
#   foobar[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 77 lines, 281 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for multi-byte text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=t
[?25l[?12l[?25h
[?25l
XYZ[?12l[?25h[?25l[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
Z
abc [?12l[?25h[?25l
X[?12l[?25h[?25lY[?12l[?25h[?25lZ[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
X[?12l[?25h[?25l
:[?12l[?25hset tw=1 fo=tm
[?25l[?12l[?25h[?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l
X a
[?12l[?25h[?25l
a[?12l[?25h[?25l
XY
[?12l[?25h[?25l
Y
[?12l[?25h[?25l
X Y
[?12l[?25h[?25l
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h
[?25la[?12l[?25h
[?25la[?12l[?25h
[?25lY
[?12l[?25h
[?25lY 
[?12l[?25h[?25l
aX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abcX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX c
[?12l[?25h[?25lX
c[?12l[?25h[?25l
abXY
[?12l[?25h[?25lX
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25lY
a[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
abc[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
c
ab[?12l[?25h[?25l
X[?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
  a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset noai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=cqm comments=n:X
[?25l[?12l[?25h

[?25lXY[?12l[?25h

[?25lXZ
[?12l[?25h

[?25l
X Z
[?12l[?25h[?25l
XX
[?12l[?25h[?25l
XXa
[?12l[?25h[?25l
XXY
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25l
Xa
[?12l[?25h[?25lXa[?12l[?25h[?25lXY
[?12l[?25h[?25lX[?12l[?25h[?25l
Y
[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25lXZ
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25lX [?12l[?25h[?25lY[?12l[?25h[?25lX Z
[?12l[?25h[?25lX[?12l[?25h[?25l
X
[?12l[?25h[?25lX[?12l[?25h[?25l
Xa
[?12l[?25h[?25lX[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
‘two three ’four[?12l[?25h[?25l
:[?12l[?25hset mps+=^‘:^’
[?25l[?12l[?25h[?25l four[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
/^ra test
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/ex_cmds.o ex_cmds.c
2 lines, 16 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTjVjra
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^ra test
[?25l
ra test[?12l[?25h[?25l
abba
[?12l[?25h[?25lbba 
[?12l[?25h[?25l
a
aab 
[?12l[?25h[?25laaaaaaa [?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set whichwrap+=h
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hgcc -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
set whichwrap+=h
[?25l[?12l[?25h[?25l/[?12l[?25h^x
[?25láx[?12l[?25h[?25lx[?12l[?25h
[?25l
:[?12l[?25hset whichwrap-=h
[?25l[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:let a = '.é.' " one char of two bytes
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let b = '.é.' " normal e with composing char
/^byteidx
:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteiddx(a, 4)])
:put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])
/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)])
:let b = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet a = '.é.' " one char of two bytes
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = '.eé.' " normal e with composing char
[?25l[?12l[?25h[?25l/[?12l[?25h^byteidx
[?25l
byteidx[?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25lENDTESTá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5[?12l[?25h[?25l
/[?12l[?25h^byteidxcomp
[?25l
byteidxcomp[?12l[?25h[?25l
:[?12l[?25hput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25lá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5
byteidxcomp[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hlet b = '.eé.'
[?25l[?12l[?25h[?25l:[?12l[?25hput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25lSTARTTEST
: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(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][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^substitute
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?12l[?25h[?25lsubstitute[?12l[?25h[?25l

:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^substitute
[?25l[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25la1a2a3a[?12l[?25h[?25l

/^STARTTEST

STARTTEST[?12l[?25h[?25l:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?12l[?25h[?25l

:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l

/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l104 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[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 166 lines, 730 characters written

[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 6 lines, 94 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for find completion.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xfind directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xfind')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE345: Can't find file "" in path[?12l[?25h[?25l:[?12l[?25hexec "w! " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<d/vim-tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                  [?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                  [?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                  [?12l[?25h[?25l:[?12l[?25hset path=./**
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                  [?12l[?25h[?25l:[?12l[?25h" We shouldn't find any file at this point, test.out must be empty.
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('in')
[?25l[?12l[?25h[?25l:[?12l[?25hcd in
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hcall mkdir('path')
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdirtest73.in                                                     [?12l[?25h[?25l:[?12l[?25he Xfind/file.txt
[?25l"Xfind/file.txt" [New File]Xfind/file.txt[?12l[?25h[?25l-- INSERT --Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/file.txt" [New] 1L, 11C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/file.txt
[?25l"Xfind/in/file.txt" [New File]in/file.txt[?12l[?25h[?25l-- INSERT --Jimmy Hoffa[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/file.txt" [New] 1L, 12C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/stuff.txt
[?25l"Xfind/in/stuff.txt" [New File]stuff.txt[?12l[?25h[?25l-- INSERT --Another Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/stuff.txt" [New] 1L, 19C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/path/file.txt
[?25l"Xfind/in/path/file.txt" [New File]path/file.txt[?12l[?25h[?25l-- INSERT --E.T.[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/path/file.txt" [New] 1L, 5C written    [?12l[?25h[?25l:[?12l[?25hset path=Xfind/**
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Same steps again, using relative and fullpath items that point to the same
[?25l[?12l[?25h[?25l:[?12l[?25h" recursive location.
[?25l[?12l[?25h[?25l:[?12l[?25h" This is to test that there are no duplicates in the completion list.
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path+=Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/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/mbyte.o mbyte.c
 1L, 5C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25h" Test find completion for directory of current buffer, which at this point
[?25l[?12l[?25h[?25l:[?12l[?25h" is Xfind/in/file.txt.
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind st...[?25luff.txt[?12l[?25h
[?25l"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25h" Test find completion for empty path item ",," which is the current directory
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfindin/stuff.txtf       /<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind f...[?25lile.txt[?12l[?25h...[?25l[?12l[?25h
[?25l"file.txt" 1L, 11CHoly Grailfile.txt.     [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25h" Test shortening of
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is above foo/ they should be shortened to (in order
[?25l[?12l[?25h[?25l:[?12l[?25h" of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/file.txt[?12l[?25h[?25l:[?12l[?25hcall mkdir('x')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('y')
[?25l[?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/x[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfindfile.txti                                                            [?12l[?25h[?25l:[?12l[?25h" We should now be in the Xfind directory
[?25l[?12l[?25h[?25l:[?12l[?25he foo/x/bar/voyager.txt
[?25l"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?12l[?25h[?25l-- INSERT --Voyager 1[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/x/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25he foo/y/bar/voyager.txt
[?25l"foo/y/bar/voyager.txt" [New File]y/[?12l[?25h[?25l-- INSERT --Voyager 2[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/y/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h
[?25l"foo/x/bar/voyager.txt" 1L, 10C1x/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h...[?25ly[?12l[?25h
[?25l"foo/y/bar/voyager.txt" 1L, 10C2y/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?12l[?25h[?25l:[?12l[?25h" order of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    ./voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/fooy/bar/voyager.txt.     [?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/ybar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/y/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25lx/bar/voyager.txt[?12l[?25h
[?25l<ld/vim-tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/x/bar/voyager.txt"
<tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/x/bar/voyager.txt[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check the opposite too:
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foox/bar/voyager.txtv                                                               [?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/xbar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/x/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25ly/bar/voyager.txt[?12l[?25h
[?25l<ld/vim-tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/y/bar/voyager.txt"
<tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/y/bar/voyager.txt[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/in"
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./file.txt[?5h[?5l[?12l[?25h
[?25l"file.txt" 1L, 12CJimmy Hoffafile.txtm                                                                        [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Test for relative to current buffer 'path' item
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/"
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfindin/file.txt[?12l[?25h[?25l:[?12l[?25hset path=./path
[?25l[?12l[?25h[?25l:[?12l[?25h" Open the file where Jimmy Hoffa is found
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12C[?12l[?25h[?25l:[?12l[?25h" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25ltxt[?12l[?25h
[?25l"in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that completion works when path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h" Open Jimmy Hoffa file
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?12l[?25h[?25l:[?12l[?25hfind stu...[?25lff.txt[?12l[?25h
[?25l"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25hq
[?25l: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[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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^[:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for maparg().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25h" Test maparg() with a string result
[?25l[?12l[?25h[?25l:[?12l[?25hmap foo<C-V> is<F4>foo
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('foo<C-V>'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hmap <buffer> <nowait> foo bar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc x<char-114>x
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc y<S-char-114>y
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25leof
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[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Outside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x1040> a
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u1040\<Esc>"
[?25la[?12l[?25h[?25l:[?12l[?25h" Inside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x103f> b
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u103f\<Esc>"
[?25lb[?12l[?25h[?25l:[?12l[?25h" Inside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf03f> c
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf03f\<Esc>"
[?25lc[?12l[?25h[?25l:[?12l[?25h" Outside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf040> d
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf040\<Esc>"
[?25ld[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^eof/+1,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25lcksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?12l[?25h[?25l
:[?12l[?25hset fileformat=unix undolevels=-1
[?25l[?12l[?25h[?25lInserts 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.[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

egcc -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
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
[?25l12345678910111213141516171819202122[?12l[?25h[?25l
23[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2000000 lines, 14888896 characters written[?12l[?25h[?25l:[?12l[?25hr !cksum Xtest
[?25l[?12l[?25h[?25l1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?12l[?25hgcc -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
[?25l:[?12l[?25hs/\s/ /g
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat&
[?25l[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 26 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25lA
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l&[?12l[?25h
[?25l:[?12l[?25hs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set nomagic
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25l&&
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\='\'/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\='\\'/
[?25l\\b
[?12l[?25h
[?25l:[?12l[?25hs/C/\='^^M'/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\='\^^M'/
[?25l\d[?12l[?25h
[?25l


:[?12l[?25hs/E/\='\\^^M'/
[?25l\\
efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\='\r'/
[?25l\rf
[?12l[?25h[?25l
gGg[?12l[?25h[?25l
:[?12l[?25hs/G/\='^^@'/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\='\^^@'/
[?25l
\h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\='\\^^@'/
[?25l
\\
i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\='\n'/
[?25l\nj
[?12l[?25h[?25l
kKk[?12l[?25h[?25l
:[?12l[?25hs/K/\="\r"/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\="\n"/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25ld[?12l[?25h
[?25l


:[?12l[?25hs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l\efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l
f[?12l[?25h[?25l
gGg
[?12l[?25h[?25l
:[?12l[?25hs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l
h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l
\i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l
j[?12l[?25h[?25l
kKk
[?12l[?25h[?25l
:[?12l[?25hs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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), subbmatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), subbmatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l
TEST_5:[?12l[?25h[?25l
A123456789
[?12l[?25h[?25l
:[?12l[?25hs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25li\
i987654321[?12l[?25h[?25l
B123456789
[?12l[?25h[?25l
:[?12l[?25hs/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)])/
[?25li
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25lTEST_6:
A
B[?12l[?25h[?25l


:[?12l[?25hset cpo+=/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/a/
[?25la[?12l[?25h
[?25l:[?12l[?25hs/B/%/
[?25la[?12l[?25h[?25l:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25lC
D[?12l[?25h[?25l


:[?12l[?25hs/C/c/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/%/
[?25l%[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/ex_docmd.o ex_docmd.c
11 lines, 303 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST_7/
[?25l
TEST_7:[?12l[?25h[?25l
A^MA
[?12l[?25h[?25l
:[?12l[?25hs/A./\=submatch(0)/
[?25l
A[?12l[?25h[?25l
B^@B
[?12l[?25h[?25l
:[?12l[?25hs/B./\=submatch(0)/
[?25l
B[?12l[?25h[?25l
C^@C
[?12l[?25h[?25l
:[?12l[?25hs/C./\=strtrans(string(submatch(0, 1)))/
[?25l['C^@']C
[?12l[?25h[?25l
D^@[?12l[?25h[?25l
:[?12l[?25hs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l['D^@', 'D']
[?12l[?25h[?25l
E^@[?12l[?25h[?25l
:[?12l[?25hs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l['E^@', '^@', '^@', '^@', '^@E']
[?12l[?25h[?25l/[?12l[?25h^Q$
[?25l
Q[?12l[?25h[?25l
:[?12l[?25hs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25lE486: Pattern not found: Q[^\n]Q[?12l[?25h[?25l:[?12l[?25h" Avoid :s error breaks dotest map on Windows.
[?25l[?12l[?25h[?25l/^STARTTEST
Q

STARTTEST[?12l[?25h[?25l
:function! TitleString()
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hfunction! TitleString()
[?25l
:  [?12l[?25h  let check = 'foo' =~ 'bar'

[?25l:  [?12l[?25h  return ""

[?25l:  [?12l[?25hendfunction
[?25lTEST_7:
A[?12l[?25h[?25l
:[?12l[?25hset titlestring=%{TitleString()}
[?25l[?12l[?25h[?25l:[?12l[?25h/^test_one/s/.*/\="foo\nbar"/
[?25lfoo
bar[?12l[?25h[?25l
:[?12l[?25h/^test_two/s/.*/\="foo\nbar"/c
[?25l
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l
foobar
[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 134 lines, 574 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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', '')[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_1:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('xXx', 'X', \"\r\", '')
[?25l
x^Mx[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l
YyyY[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l
zZZz[?12l[?25h[?25l
/[?12l[?25h^TEST_2
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_2:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25lKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('tTt', 'T', \"\r\", '')
[?25l
t^Mt[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l
XxxX[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l
yYYy[?12l[?25h[?25l
/[?12l[?25h^TEST_3
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_3:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l
b\\b[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l
c^Mc[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l
d\^Md[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l
e\\^Me[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l
f\rf[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l
j\nj[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l
k^Mk[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25ll
l[?12l[?25h[?25l
/[?12l[?25h^TEST_4
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_4:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25lu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25lu
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25lv^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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25lw\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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25lXxxX
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25lyYYyTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25lb\\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[?12l[?25h[?25l
/[?12l[?25h^TEST_5
[?25lsearch 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) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_5:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$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)', '')
[?25lf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?12l[?25h[?25l
:[?12l[?25h$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)])', '')
[?25lj\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']][?12l[?25h[?25l
/[?12l[?25h^TEST_6
[?25lsearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25lTEST_7:[?12l[?25h[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_6:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hset cpo+=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', 'a', '')
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '%', '')
[?25l
%[?12l[?25h[?25l
:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('C', 'C', 'c', '')
[?25l
c[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', '%', '')
[?25l
%[?12l[?25h[?25l
/[?12l[?25h^TEST_7
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_7:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l
A^MA[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25lB
B[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l['B
']B[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l
-abab[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\ze', 'c', 'g')
[?25l
c-cbcbc[?12l[?25h[?25l
/[?12l[?25h^TEST_8
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/ops.o ops.c
10 lines, 186 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTyy/^TEST_9:
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_8:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =',,X'
[?25l
,,X[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25lN,,NX
[?12l[?25h[?25l:[?12l[?25h$put =',,Y'
[?25l
,,Y[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,NY
[?12l[?25h[?25l
:[?12l[?25h$put =',,Z'
[?25l
,,Z[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l,NZ
[?12l[?25h[?25l
/[?12l[?25h^TEST_9:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_9:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put ='xxx'
[?25l
xxx[?12l[?25h[?25l
:[?12l[?25hs/x/X/gc
[?25lx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lx[?12l[?25h[?25l
/[?12l[?25h^TEST_10:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_10:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l
1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l
a1a2a3[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l
aa2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l
1aaa[?12l[?25h[?25l
/[?12l[?25h^TEST_11
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25l"test.out" [New File] 131 lines, 617 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("multi_byte")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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%.22X', n)) | endfor[?12l[?25h[?25l


:[?12l[?25hset enc=utf8
[?25l: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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h[?25lTests 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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Ch(a, op, b, expected)
[?25l
:  [?12l[?25h:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l:    [?12l[?25h:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    let b:passed += 1

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Chk(a, b, result)
[?25l
:  [?12l[?25h:  if a:result == 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  elseif a:result > 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 1)

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Check(a, b, result)
[?25l
:  [?12l[?25h:  call Chk(a:a, a:b, a:result)

[?25l:  [?12l[?25h:  call Chk(a:b, a:a, -a:result)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! LT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, -1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! EQ(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 0)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet b:passed=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('', '')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('', 'a')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('abc', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc', 'abC')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('AB', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'aBc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa', 'k')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc\x80', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc\x80', 'AbC\x81')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xc3XYZ', '\xc3xyz')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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~                                                                               [?12l[?25h[?25l:[?12l[?25hcall LT('\xc3', '\xc3\x83')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(0, printf('%d checks passed', b:passed))
[?25l3732 checks passed[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test that g~ap changes one paragraph only.
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?12l[?25h[?25labcddefg[+][?12l[?25h[?25lABCD
[?12l[?25h[?25l:[?12l[?25hlet lns = getline(1,3)
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), lns)
[?25lABCDdefg[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 5 lines, 31 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for curswant not changing when setting an option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start target options$/+1,/^end target options$/-1 yank
[?25l3 lines yanked[?12l[?25h[?25l:[?12l[?25hlet target_option_names = split(@0)
[?25l[?12l[?25h[?25l:[?12l[?25hfunction TestCurswant(option_name)
[?25l
:  [?12l[?25h:  normal! ggf8j

[?25l:  [?12l[?25h:  let curswant_before = winsaveview().curswant

[?25l:  [?12l[?25h:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l:  [?12l[?25h:  let curswant_after = winsaveview().curswant

[?25l:  [?12l[?25h:  return [a:option_name, curswant_before, curswant_after]

[?25l:  [?12l[?25h:endfunction
[?25l:  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[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =['1234567890', '12345']
[?25l123456789012345[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hlet result = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor option_name in target_option_names
[?25l
:  [?12l[?25h:  call add(result, TestCurswant(option_name))

[?25l:  [?12l[?25h:endfor
[?25l1234567890
12345[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =map(copy(result), 'join(v:val, '' '')')
[?25l3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hwrite test.out
[?25l"test.out" [New File] 3 lines, 43 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hqall!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lvim: set ft=vim[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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|[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('conceal')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:normal W
GGk
:normal W[?12l[?25h[?25l:[?12l[?25h" Conceal settings.
[?25l[?12l[?25h[?25l:[?12l[?25hset conceallevel=2
[?25l[?12l[?25h[?25l:[?12l[?25hset concealcursor=nc
[?25l[?12l[?25h[?25l:[?12l[?25hsyntax match test /|/ conceal
[?25lconcealed  concealed  


a       b       c       d[?12l[?25h[?25l:[?12l[?25h" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?12l[?25h[?25l:[?12l[?25h" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?12l[?25h[?25l:[?12l[?25h" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?12l[?25h[?25l:[?12l[?25hlet positions = []
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?12l[?25h[?25l:[?12l[?25h" Start test.
[?25l[?12l[?25h[?25l/[?12l[?25h^start:
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ztj
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:let positions += ['2:1']
[?12l[?25h[?25l:[?12l[?25h" We should end up in the same column when running these commands on the two
[?25l[?12l[?25h[?25l:[?12l[?25h" lines.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['2:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['2:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['3:1']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['3:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['3:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['5:8']
[?12l[?25h[?25l:[?12l[?25h" Same for next test block.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['5:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['5:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['6:8']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['6:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['6:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['8:1']
[?12l[?25h[?25l:[?12l[?25h" And check W with multiple tabs and conceals in a line.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['8:27']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset lbr
[?25l[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset list listchars=tab:>-
[?25l>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?12l[?25h[?25l:[?12l[?25hnormal 0
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25h" Display result.
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', 'end:')
[?25lend:[?12l[?25h[?25l:[?12l[?25hcall append('$', positions)
[?25l2:12:172:203:13:173:205:85:255:286:86:256:288:1[?12l[?25h[?25l:[?12l[?25h/^end/,$wq! test.out
[?25l"test.out" [New File] 29 lines, 135 characters written

[?1l>[?12l[?25h[?1049l# 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.
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
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78522b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afeee48bb'
: let res='ok'
:else[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: 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") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb00b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('cryptv') || !exists('*sha256')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc3[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for empty string: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25l
test for empty string: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 1 char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for 1 char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 3 chars: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'
:else[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25ltest for 3 chars: ok
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains meta char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25ltest for contains meta char: ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains non-ascii char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for contains non-ascii char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Use strings to test for memory leaks.
[?25l[?12l[?25h[?25l:[?12l[?25h" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:testvar='abcd'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h" Test for getbufvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:var_num = '1234'
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_num = '5678'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num'))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25hunlet b:var_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, '', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25hunlet def_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, '&autoindent'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '&autoindent', 1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Open new window with forced option values
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hlet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25l:$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[?12l[?25h[?25l:[?12l[?25h$put =otherff
[?25l
dos[?12l[?25h[?25l
:[?12l[?25h$put =string(otherbin)
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =otherfenc
[?25l
iso-8859-2[?12l[?25h[?25l
:[?12l[?25hunlet otherff otherbin otherfenc
[?25l[?12l[?25h[?25l:[?12l[?25h" test for getwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet w:var_str = "Dance"
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_str = "Chance"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str'))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25hunlet w:var_str
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, '', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu',  1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25hunlet def_str
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet t:var_list = [1, 2, 3]
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:other = 777
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_list = [4, 5, 6, 7]
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list'))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, ''))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '', def_list))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25htablast
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hunlet t:var_list
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, '', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25hunlet def_list
[?25l[?12l[?25h[?25l:[?12l[?25htabonly
[?25ldos[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabprev
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hsplit
[?25l2N o[No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hsplit
[?25l + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                                                        [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25hvert split
[?25l4  X||||||~~~~~[No Name]                              [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                 [No Name]                               X[?12l[?25h[?25l:[?12l[?25hlet w:var_dict = {'dict': 'tabwin'}
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_dict = {'dict2': 'newval'}
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd b
[?25l[No Name]                               [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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]
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25htabnext
[?25l + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                              [No Name]                                                                         X[?12l[?25h[?25l:[?12l[?25hunlet w:var_dict
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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'}}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25hunlet def_dict
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l
1[?12l[?25h[?25l
:[?12l[?25htabonly
[?25l0[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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()[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Visual mode and operators[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf-8 nocp viminfo+=nviminfo
[?25lkv3lyjv3lpgvcxxx^[
:$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[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" User functions
[?25l[?12l[?25h[?25l:[?12l[?25hfunction MoveToCap()
[?25l
:  [?12l[?25h:  call search('\u', 'W')

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'[?12l[?25h[?25l:[?12l[?25hfunction SelectInCaps()
[?25l
:  [?12l[?25h:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l:  [?12l[?25h:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l:  [?12l[?25h:  call setpos("'<", [0, line1, col1, 0])

[?25l:  [?12l[?25h:  call setpos("'>", [0, line2, col2, 0])

[?25l:  [?12l[?25h:  normal! gv

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual modes followed by operator
[?25l[?12l[?25h[?25l/[?12l[?25h^apple
[?25l[?12l[?25ha[?25l-- VISUAL --[?12l[?25h[?25lp[?12l[?25h[?25lle banana cherry[?12l[?25h[?25l banana cherry[?12l[?25h [?25lbanan-- VISUAL --[?12l[?25h[?25l
a  cherry[?12l[?25h[?25ly[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^line 1
[?25l[?12l[?25h[?25lline 1 line 1 -- VISUAL LINE --[?12l[?25h[?25lINSERT --Nnewline[?12l[?25h[?25l-- INSERT --newline[?12l[?25h[?25l
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?12l[?25h[?25lline 5 line 5line 6 line 6xxxxxxxxxxxxx[?12l[?25h[?25lxxxxxxxxxxxxx
xxxxxxxxxxxxx[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^xxxx
[?25l[?12l[?25h[?25l


-- VISUAL BLOCK --[?12l[?25h[?25lx
[?12l[?25h[?25lx
x[?12l[?25h[?25lINSERT --O  
  [?12l[?25h [?25l


-- INSERT --  
    [?12l[?25h [?25l
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?12l[?25h[?25l
-- INSERT --O----
    ----
xxxx----
xxxx----[?12l[?25h-[?25l-- INSERT ------------------[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap W /\u/s-1<CR>
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Kiwi
[?25lKiwiRaspberryDateWatermelonPeach[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25l/\u/s-1
Kiw[?12l[?25h[?25l
-- INSERT --NoRaspberryDateWatermelonPeach[?12l[?25ho[?25l
-- INSERT --NoberryDateWatermelonPeach[?12l[?25hoberry[?25lDateWat
-- VISUAL --[?12l[?25h[?25lrmelonPeach[?12l[?25h[?25lach[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Jambu
[?25l
JambuRambutanBananaTangerineMango[?12l[?25hJa[?25l
-- VISUAL --[?12l[?25h[?25l:'<,'>call SelectInCaps()
Jamb[?12l[?25h[?25l
-- INSERT ---RambutanBananaTangerineMango[?12l[?25h-[?25l
-- INSERT ---tanBananaTangerineMango[?12l[?25h-[?25ltanBanana
-- VISUAL --[?12l[?25h[?25l
--angerineMango[?12l[?25ha[?25lgo[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Operator-pending mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25honoremap W /\u/<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Pineapple
[?25lPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h[?25l
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---GrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---Z[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Juniper
[?25l
JuniperDurianZ[?12l[?25h[?25l
:call MoveToCap()
Whavcre
[?12l[?25h[?25l:call MoveToCap()
Qhevna[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Lemon
[?25l
LemonNectarineZ[?12l[?25h[?25l
:call SelectInCaps()
[?12l[?25h[?25lLemonLemonNectarineZ
Lemo[?12l[?25hn[?25l:call SelectInCaps()
NewNectarineZ[?12l[?25hwNecta[?25l
:call SelectInCaps()
wZ[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?12l[?25h[?25l/[?12l[?25h^zzzz
[?25lzzzz[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25lE21: Cannot make changes, 'modifiable' is off[?12l[?25h[?25l:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: replace last line'
[?25l
characterwise visual mode: replace last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25hlet @" = 'x'
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h$put ='v:errmsg='.v:errmsg
[?25l
v:errmsg=[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle line'
[?25l
characterwise visual mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle two line'
[?25l
characterwise visual mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise visual mode: delete last line'
[?25l
characterwise visual mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete last two line'
[?25l
characterwise visual mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Select mode maps
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>End> <End>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Down> <Down>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Del> <Del>
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle line'
[?25l
characterwise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle two line'
[?25l
characterwise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise select mode: delete last line'
[?25l
characterwise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- SELECT --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete last two line'
[?25l
characterwise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- SELECT --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle line'
[?25l
linewise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25lbc
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle two line'
[?25l
linewise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25la
b 
[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='linewise select mode: delete last line'
[?25l
linewise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lc 
-- SELECT LINE --[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete last two line'
[?25l
linewise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lb 

-- SELECT LINE --[?12l[?25h[?25lb
c 
[?12l[?25h[?25l~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='v_p: replace last character with line register at middle line'
[?25l
v_p: replace last character with line register at middle line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25laaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25lccc
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25llinewise 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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25lb[?12l[?25h[?25laaa[?12l[?25h[?25l
ccc
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25hgcc -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
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
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 -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
$put ='v_p: replace last character with line register at last line'
[?25l
v_p: replace last character with line register at last line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25laaa
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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode after operation'
[?25l
gv in exclusive select mode after operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25h$put ='äà '
[?25l
äÃ[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h
[?25l
-- VISUAL --[?12l[?25h[?25läÃ[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode without operation'
[?25l
gv in exclusive select mode without operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h/^start:/+2,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns with multi-byte support, using utf-8.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:
~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l: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:
~                                                                               [?12l[?25h[?25l


:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?12l[?25h[?25l:[?12l[?25h"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l:endif[?12l[?25h[?25l


:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" check that 'ambiwidth' does not change the meaning of \p
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=1 ambiwidth=single
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=1 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi double: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=single
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hgcc -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
set regexpengine=2 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi double: 0[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/ex_getln.o ex_getln.c
[New File] 35 lines, 791 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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(toopLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We don't want the status line to cause problems:
[?25l[?12l[?25h[?25l:[?12l[?25hset laststatus=0
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:totalLines = &lines * 20
[?25l[?12l[?25h[?25l:[?12l[?25hlet middle = g:totalLines / 2
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd n
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd o
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'LINE ' . i)

[?25l:  [?12l[?25h:endfor
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25haboveleft vert new
[?25l        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'line ' . i)

[?25l:  [?12l[?25h:endfor
[?25lline 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25l2293023123223323423523623723823924024124224324424524624748495051[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lline 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[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25h" Execute the following two command at once to reproduce the problem.
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb | wincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineLeft = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineRight = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25lLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?12l[?25h[?25l:[?12l[?25h%del _
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25lDifference between the top lines (left - right): 0[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 51 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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(toopLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l:" 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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
/[?12l[?25h[\u4f7f\u5929]\+
[?25l
/[?12l[?25h\%U12345678
[?25l
/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for visual mode not being reset causing E315 error.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"ex-way will require the colon operator which resets the visual mode thuus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25henew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:msg="Everything's fine."
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! TriggerTheProblem()
[?25l
:  [?12l[?25h:^I" At this point there is no visual selection because :call reset it.

[?25l:  [?12l[?25h:^I" Let's restore the selection:

[?25l:  [?12l[?25h:^Inormal gv

[?25l:  [?12l[?25h:^I'<,'>del _

[?25l:  [?12l[?25h:^Itry

[?25l:    [?12l[?25h:^I^Iexe "normal \<Esc>"

[?25l:    [?12l[?25h:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l:    [?12l[?25h:^I^Iechom 'Snap! E315 error!'

[?25l:    [?12l[?25h:^I^Ilet g:msg='Snap! E315 error!'

[?25l:    [?12l[?25h:^Iendtry

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25henew
[?25l[?12l[?25h[?25l:[?12l[?25hsetl buftype=nofile
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'Delete this line.')
[?25lDelete this line.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?12l[?25h[?25l:[?12l[?25h"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?12l[?25h[?25l:[?12l[?25h"       preventing the problem:
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h
[?25lDelete this line. 
[?12l[?25h[?25l:'<,'>[?12l[?25hcall TriggerTheProblem()
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h%del _
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), g:msg)
[?25lEverything's fine.[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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 thuus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :let.  vim: set ft=vim ts=8 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset runtimepath+=./sautest
[?25l[?12l[?25h[?25l:[?12l[?25h" Test to not autoload when assigning.  It causes internal error.
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let Test104#numvar = function('tr')

[?25l:  [?12l[?25h:  $put ='OK: ' . string(Test104#numvar)

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  $put ='FAIL: ' . v:exception

[?25l:  [?12l[?25h:endtry
[?25l: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')[?12l[?25h[?25l
:[?12l[?25hlet a = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = 2
[?25l[?12l[?25h[?25l:[?12l[?25hfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    redir => messages

[?25l:    [?12l[?25h:    execute 'let' letargs

[?25la#1

b#2

:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:    $put ='OK:'

[?25l:    [?12l[?25h:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='FAIL: ' . v:exception

[?25l:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor

[?25lb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for adjusting window and contents     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?12l[?25h[?25l:[?12l[?25hcall setline(1, range(1,256))
[?25l1
234567891011[+][?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! GetScreenStr(row)
[?25l
:  [?12l[?25h:   let str = ""

[?25l:  [?12l[?25h:   for c in range(1,3)

[?25l:    [?12l[?25h:       let str .= nr2char(screenchar(a:row, c))

[?25l:    [?12l[?25h:   endfor

[?25l:  [?12l[?25h:   return str

[?25l:  [?12l[?25h:endfunc
[?25l1
2
3
4
5
6[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?12l[?25h[?25l:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l50
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l59
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25h:wincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l::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[?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for backtrace debug commands.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Foo()
[?25l
:  [?12l[?25h:   let var1 = 1

[?25l:  [?12l[?25h:   let var2 = Bar(var1) + 9

[?25l:  [?12l[?25h:   return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bar(var)
[?25l
:  [?12l[?25h:    let var1 = 2 + a:var

[?25l:  [?12l[?25h:    let var2 = Bazz(var1) + 4

[?25l:  [?12l[?25h:    return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bazz(var)
[?25l
:  [?12l[?25h:    let var1 = 3 + a:var

[?25l:  [?12l[?25h:    let var3 = "another var"

[?25l:  [?12l[?25h:    return var1

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?12l[?25h[?25l:[?12l[?25hdebuggreedy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => out
[?25l[?12l[?25h[?25l:[?12l[?25hdebug echo Foo()
[?25lEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?12l[?25hstep

[?25lfunction Foo

line 1: let var1 = 1

>[?12l[?25hstep

[?25lfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "- show backtrace:\n"

[?25l- show backtrace:

>[?12l[?25hbacktrace

[?25l  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "\nshow variables on different levels:\n"

[?25l
show variables on different levels:

>[?12l[?25hecho var1

[?25l6
>[?12l[?25hup

[?25l>[?12l[?25hback

[?25l  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l3
>[?12l[?25hu

[?25l>[?12l[?25hbt

[?25l->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l1
>[?12l[?25hecho "\n- undefined vars:\n"

[?25l
- undefined vars:

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?12l[?25hframe 2

[?25l>[?12l[?25hecho "undefined var3 on former level:"

[?25lundefined var3 on former level:

>[?12l[?25hecho var3

[?25lError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?12l[?25hfr 0

[?25l>[?12l[?25hecho "here var3 is defined with \"another var\":"

[?25lhere var3 is defined with "another var":

>[?12l[?25hecho var3

[?25lanother var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: return var2

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: End of function

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nundefined var2 on former level"

[?25l
undefined var2 on former level

>[?12l[?25hecho var2

[?25lError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?12l[?25hdown

[?25l>[?12l[?25hecho "here var2 is defined with 10:"

[?25lhere var2 is defined with 10:

>[?12l[?25hecho var2

[?25l10

>[?12l[?25hecho "\n- backtrace movements:\n"

[?25l
- backtrace movements:

>[?12l[?25hb

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\nnext command cannot go down, we are on bottom\n"

[?25l
next command cannot go down, we are on bottom

>[?12l[?25hdown

[?25lframe is zero

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nnext command cannot go up, we are on top\n"

[?25l
next command cannot go up, we are on top

>[?12l[?25hup

[?25lframe at highest level: 1

>[?12l[?25hb

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "fil is not frame or finish, it is file"

[?25lfil is not frame or finish, it is file

>[?12l[?25hfil

[?25l"[No Name]" --No lines in buffer--

>[?12l[?25hecho "\n- relative backtrace movement\n"

[?25l
- relative backtrace movement

>[?12l[?25hfr -1

[?25l>[?12l[?25hframe

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hfra +1

[?25l>[?12l[?25hfram

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "\n- go beyond limits does not crash\n"

[?25l
- go beyond limits does not crash

>[?12l[?25hfr 100

[?25lframe at highest level: 1

>[?12l[?25hfra

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hframe -40

[?25lframe is zero

>[?12l[?25hfram

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\n- final result 19:"

[?25l
- final result 19:

>[?12l[?25hcont

[?25l19

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h0debuggreedy
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25h$put =out
[?25l83 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[+][?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 84 lines, 1390 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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! ttest.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']][?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for option autocommand[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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, secoond 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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hfu! AutoCommand(match)
[?25l
:  [?12l[?25h:^Ilet c=g:testcase

[?25l:  [?12l[?25h:       let item=remove(g:options, 0)

[?25l:  [?12l[?25h:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l:  [?12l[?25h:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l:  [?12l[?25h:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l:  [?12l[?25h:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l:  [?12l[?25h:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l:  [?12l[?25h:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l:  [?12l[?25h:endfu
[?25l: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, secoond 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)[?12l[?25h[?25l
:[?12l[?25hau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="1: Setting number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="2: Setting local number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="3: Setting global number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="4: Setting local autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="5: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="6: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ai!
[?25l[?12l[?25h[?25l:[?12l[?25h Should not print anything, use :noa
[?25lE492: Not an editor command: Should not print anything, use :noa[?12l[?25h[?25l:[?12l[?25hnoa :set nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="7: Setting several global list and number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset list nu
[?25l     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 invallid, 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$[?12l[?25h[?25l:[?12l[?25hnoa set nolist nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="8: Setting global acd\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal acd
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="9: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="10: Setting local autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="11: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal invar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="12: Setting option backspace through :let\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hlet &bs="eol,indent,start"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backup', '', '1', 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25h "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hcall setbufvar(1, '&l:bk', 1)
[?25lE355: Unknown option: l:bk[?12l[?25h[?25l:[?12l[?25h "should trigger, use correct option name
[?25l[?12l[?25h[?25l:[?12l[?25hcall setbufvar(1, '&backup', 1)
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hcall setwinvar(0, '&number', 1)
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25h" Write register now, because next test shouldn't output anything.
[?25l[?12l[?25h[?25l:[?12l[?25h$put r
[?25l60 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>, Scoope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scoope: <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>[?12l[?25h[?25l:[?12l[?25hlet @r=''
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=blah
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:testcase
[?25l    138 
    139 15: Setting key option, shouldn't trigger[?12l[?25h[?25l
:[?12l[?25h$put r
[?25l
    140 [?12l[?25h[?25l
:[?12l[?25h/^dummy text/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for setting the '[,'] marks when joining lines.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^\t\t/
[?25l[?12l[?25h[?25lattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet a=string(getpos("'[")).'/'.string(getgcc -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
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
pos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h/^This line/;'}-join
[?25lThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='First test: Start/End '.string(a)
[?25lFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?12l[?25h[?25l:[?12l[?25h$put ='Second test: Start/End '.string(b)
[?25lSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?12l[?25h[?25l:[?12l[?25h/^\t\t/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l11[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l22[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l:[?12l[?25hvsplit
[?25l|
 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 [+]                 [?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  normal g;

[?25l:  [?12l[?25h:  normal ggVGcpass
[?25l21 fewer lines
:  

:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  normal ggVGcfail

[?25l:  

:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  %w! test.out

[?25l"test.out" [New File] 1 line, 5 characters written

:  [?12l[?25h:endtry
[?25lpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                           pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :[count]close! and :[count]hide     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hclose!
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 7 lines, 39 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l"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 = [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                       test_close_count.in                                                              [?12l[?25h[?25l:[?12l[?25h.hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?12l[?25h[?25l12 9
15 12 9
15 12[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 15 lines, 106 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[?12l[?25h[?25l:[?12l[?25h$ hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$-1 close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h.+close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[+][?12l[?25h[?25l15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 19 lines, 143 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:.+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l25 24 23 21 124 23 21 124 23 2124 21[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 23 lines, 183 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l" Test for expression comparators.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let oldisident=&isident

[?25l:  [?12l[?25h:  set isident+=#

[?25l:  [?12l[?25h:  if 1 is#1

[?25l:    [?12l[?25h:    $put ='ok'

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    $put ='ng'

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  let &isident=oldisident

[?25l:  [?12l[?25h:endtry
[?25l" 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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^marker/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for erasing backword[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h

[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25lド[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h/^test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:rreg, 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, aa:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for various eval features.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:$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:[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun AppendRegContents(reg)
[?25l
:  [?12l[?25h  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:  [?12l[?25h:endfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l
:  [?12l[?25h  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:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hcommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?12l[?25h[?25l:[?12l[?25hfun SetReg(...)
[?25l
:  [?12l[?25h    call call('setreg', a:000)

[?25l:  [?12l[?25h    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l:  [?12l[?25h    call AppendRegContents(a:1)

[?25l:  [?12l[?25h    if a:1 isnot# '='

[?25l:    [?12l[?25h        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun ErrExe(str)
[?25l
:  [?12l[?25h    call append('$', 'Executing '.a:str)

[?25l:  [?12l[?25h    try

[?25l:    [?12l[?25h        execute a:str

[?25l:    [?12l[?25h    catch

[?25l:    [?12l[?25h        $put =v:exception

[?25l:    [?12l[?25h    endtry

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h$put ='{{{1 let tests'

[?25l:  [?12l[?25hlet @" = 'abc'

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\n"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\<C-m>"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @= = '"abc"'

[?25l:  [?12l[?25hAR =

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Basic setreg tests'

[?25l:  [?12l[?25hcall SetReg('a', 'abcA', 'c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcB', 'v')

[?25l:  [?12l[?25hcall SetReg('c', 'abcC', 'l')

[?25l:  [?12l[?25hcall SetReg('d', 'abcD', 'V')

[?25l:  [?12l[?25hcall SetReg('e', 'abcE', 'b')

[?25l:  [?12l[?25hcall SetReg('f', 'abcF', "\<C-v>")

[?25l:  [?12l[?25hcall SetReg('g', 'abcG', 'b10')

[?25l:  [?12l[?25hcall SetReg('h', 'abcH', "\<C-v>10")

[?25l:  [?12l[?25hcall SetReg('I', 'abcI')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending single lines with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc', 'c')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAl', 'l')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc2','c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc', 'ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb', 'ba')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc2','ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb2','b50a')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('C', 'abcCl', 'l')

[?25l:  [?12l[?25hcall SetReg('C', 'abcCc', 'c')

[?25l:  [?12l[?25hcall SetReg('D', 'abcDb', 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('E', 'abcEb', 'b')

[?25l:  [?12l[?25hcall SetReg('E', 'abcEl', 'l')

[?25l:  [?12l[?25hcall SetReg('F', 'abcFc', 'c')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending NL with setreg()'

[?25l:  [?12l[?25hcall setreg('a', 'abcA2', 'c')

[?25l:  [?12l[?25hcall setreg('b', 'abcB2', 'v')

[?25l:  [?12l[?25hcall setreg('c', 'abcC2', 'l')

[?25l:  [?12l[?25hcall setreg('d', 'abcD2', 'V')

[?25l:  [?12l[?25hcall setreg('e', 'abcE2', 'b')

[?25l:  [?12l[?25hcall setreg('f', 'abcF2', "\<C-v>")

[?25l:  [?12l[?25hcall setreg('g', 'abcG2', 'b10')

[?25l:  [?12l[?25hcall setreg('h', 'abcH2', "\<C-v>10")

[?25l:  [?12l[?25hcall setreg('I', 'abcI2')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', "\n")

[?25l:  [?12l[?25hcall SetReg('B', "\n", 'c')

[?25l:  [?12l[?25hcall SetReg('C', "\n")

[?25l:  [?12l[?25hcall SetReg('D', "\n", 'l')

[?25l:  [?12l[?25hcall SetReg('E', "\n")

[?25l:  [?12l[?25hcall SetReg('F', "\n", 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA3'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3'], 'l')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC3'], 'b')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD3'])

[?25l:  [?12l[?25hcall SetReg('e', [1, 2, 'abc', 3])

[?25l:  [?12l[?25hcall SetReg('f', [1, 2, 3])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ['abcA3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3l'], 'la')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3b'], 'lb')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD32'])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', ['abcA32'])

[?25l:  [?12l[?25hcall SetReg('B', ['abcB3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3l'], 'l')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD3b'], 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with NL with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l:  [?12l[?25hcall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l:  [?12l[?25hcall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with NLs with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l:  [?12l[?25hcall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l:  [?12l[?25hcall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Search and expressions'

[?25l:  [?12l[?25hcall SetReg('/', ['abc/'])

[?25l:  [?12l[?25hcall SetReg('/', ["abc/\n"])

[?25l:  [?12l[?25hcall SetReg('=', ['"abc/"'])

[?25l:  [?12l[?25hcall SetReg('=', ["\"abc/\n\""])

[?25l:  [?12l[?25h$put ='{{{1 System clipboard'

[?25l:  [?12l[?25hif has('clipboard')

[?25l:    [?12l[?25h" Save and restore system clipboard.

[?25l:    [?12l[?25h" If no connection to X-Server is possible, test should succeed.

[?25l:    [?12l[?25hlet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l:    [?12l[?25hlet _clipopt = &cb

[?25l:    [?12l[?25hlet &cb='unnamed'

[?25l:    [?12l[?25h5y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25htabdo :windo :echo "hi"

[?25l:    [?12l[?25h6y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25hlet &cb=_clipopt

[?25l:    [?12l[?25hcall call('setreg', _clipreg)

[?25l:    [?12l[?25helse

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l:    [?12l[?25hendif

[?25l:  [?12l[?25h$put ='{{{1 Errors'

[?25l:  [?12l[?25hcall ErrExe('call setreg()')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, 3, 4)')

[?25l:  [?12l[?25hcall ErrExe('call setreg([], 2)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, {})')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, [])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("/", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("=", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l:  [?12l[?25hendfun
[?25l:$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:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test()
[?25l*: 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction SetReg
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction AppendRegContents
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction ErrExe
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hdelcommand AR
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name not starting with capital
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! g:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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 moore linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or moore 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()
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name includes a colon
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! b:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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()[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name folowed by #
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! test2() "#

[?25l:  [?12l[?25h:echo "test2"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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() "#[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name starting with/without "g:", buffer-local funcref.
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! g:Foo(n)
[?25l
:  [?12l[?25h:  $put ='called Foo(' . a:n . ')'

[?25l:  [?12l[?25h:endfunction
[?25lExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?12l[?25h[?25l
:[?12l[?25hlet b:my_func = function('Foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcall b:my_func(1)
[?25l
called Foo(1)[?12l[?25h[?25l
:[?12l[?25hecho g:Foo(2)
[?25l0
called Foo(2)[?12l[?25h[?25l
:[?12l[?25hecho Foo(3)
[?25l0
called Foo(3)[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" script-local function used in Funcref must exist.
[?25l[?12l[?25h[?25l:[?12l[?25hso test_eval_func.vim
[?25ls:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Using $ instead of '$' must give an error
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h: call append($, 'foobar')

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='{{{1 getcurpos/setpos'
[?25l
{{{1 getcurpos/setpos[?12l[?25h[?25l
/[?12l[?25h^012345678
[?25lsearch 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[?12l[?25h012345[?25l:[?12l[?25hlet sp = getcurpos()
[?25l[?12l[?25h
[?25l:[?12l[?25hcall setpos('.', sp)
[?25l[?12l[?25h[?25l:[?12l[?25h$put
[?25lExecuting 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" substring and variable name
[?25l[?12l[?25h[?25l:[?12l[?25hlet str = 'abcdef'
[?25l[?12l[?25h[?25l:[?12l[?25hlet n = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[n:]
[?25l
def[?12l[?25h[?25l
:[?12l[?25h$put =str[:n]
[?25l
abcd[?12l[?25h[?25l
:[?12l[?25h$put =str[n:n]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet n
[?25l[?12l[?25h[?25l:[?12l[?25hlet nn = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[nn:]
[?25ldef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:nn]
[?25labcd[?12l[?25h[?25l:[?12l[?25h$put =str[nn:nn]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet nn
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:nn = 4
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:]
[?25lef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:b:nn]
[?25labcde[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:b:nn]
[?25l
e[?12l[?25h[?25l
:[?12l[?25hunlet b:nn
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'fixeol'vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
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/os_unix.o os_unix.c
[New File][Incomplete last line] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hset eol fixeol
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol
[?25l"test_fixeol.in" 40 lines, 780 characters

2 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" try editing files with 'fixeol' disabled
[?25l[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l
stays eol[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestEol
[?25l"XXTestEol" [New File] 2 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25he! XXNoEol
[?25l"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?12l[?25h[?25l
stays without[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestNoEol
[?25l"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fixeol
[?25l: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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXEol
[?25l"XXEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXNoEol
[?25l"XXNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestEol
[?25l"XXTestEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestNoEol
[?25l"XXTestNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l0[?12l[?25h[?25l:[?12l[?25h$r XXEol
[?25l"XXEol" 2 lines, 13 characterswith eolEND[?12l[?25h[?25l:[?12l[?25h$r XXNoEol
[?25l"XXNoEol" 1 line, 15 characterswithout eolEND[?12l[?25h[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXTestEol
[?25l"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?12l[?25h[?25l:[?12l[?25h$r XXTestNoEol
[?25l"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 84 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xtopdir directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GetCwdInfo(win, tab)
[?25l
:  [?12l[?25h: let tab_changed = 0

[?25l:  [?12l[?25h: let mod = ":t"

[?25l:  [?12l[?25h: if a:tab > 0 && a:tab != tabpagenr()

[?25l:    [?12l[?25h:   let tab_changed = 1

[?25l:    [?12l[?25h:   exec "tabnext " . a:tab

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l:  [?12l[?25h: if tab_changed

[?25l:    [?12l[?25h:   tabprevious

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: if a:win == 0 && a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir()

[?25l:    [?12l[?25h: elseif a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win)

[?25l:    [?12l[?25h: else

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win, a:tab)

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: return bufname . ' ' . dirname . ' ' . lflag

[?25l:  [?12l[?25h:endfunction
[?25l: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
[?12l[?25h[?25l

:[?12l[?25h" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xtopdir')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xtopdir
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir1')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir2')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir3')
[?25l[?12l[?25h[?25l:[?12l[?25hnew a
[?25l"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?12l[?25h[?25l:[?12l[?25hnew b
[?25l"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?12l[?25h[?25l:[?12l[?25hnew c
[?25l"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lc                                                                                a                                                                               [?12l[?25h[?25l:[?12l[?25hlcd Xdir1
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                             b                                                                               ab                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                                               b                                                                                [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lcb                                                                               b                                                             a                                                             /<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25htabnew x
[?25l"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hnew y
[?25l"y" [New File]2 y  Xy                                                                                x                                                                                [?12l[?25h[?25l:[?12l[?25hnew z
[?25l"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lz                                                                                x                                                                               x  X[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25ly                                                                               x                                                                                y  X[?12l[?25h[?25l:[?12l[?25hlcd Xdir2
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lzb /                Xz                                                                               yb                                                                               x                                                             [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hlet tp_nr = tabpagenr()
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l 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             [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(3, tp_nr))
[?25l 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             [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(2, tp_nr))
[?25l 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             [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(1, tp_nr))
[?25l 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             [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall writefile(r, test_out, "a")
[?25l[?12l[?25h[?25l:[?12l[?25hq
[?25l 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for repeating insert and replace.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/Second
[?25l[?12l[?25h[?25looooecond line
ooo[?12l[?25h
Las[?25l:[?12l[?25h/^First/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:<[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'listchars' display with 'list' and :list[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:lines = []
[?25l[?12l[?25h[?25l:[?12l[?25hfunction GetScreenCharsForLine(lnum)
[?25l
:  [?12l[?25h:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l:  [?12l[?25h:endfunction
[?25l:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\\<CR>"[?12l[?25h[?25l
:[?12l[?25hnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l:endfunction[?12l[?25h[?25l
:[?12l[?25hset listchars+=tab:>-,space:.,trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset list
[?25l$.<expr>.GG.":call..\\<CR>"$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:$[?12l[?25h[?25l
:[?12l[?25hnormal! jzt
[?25l>-------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<<<<><<$[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset listchars-=trail:<
[?25l.....
.......>..[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hput =g:lines
[?25l10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?12l[?25h[?25l:[?12l[?25h'[,']w! test.out
[?25l"test.out" [New File] 10 lines, 124 characters written[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?12l[?25h[?25l
$[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset listchars+=trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist
[?25l   >>  [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:[?12l[?25h[?25l
:[?12l[?25hredir! >> test.out
[?25l[?12l[?25h[?25l:[?12l[?25h+1,$list
[?25l..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?12l[?25h[?25l
:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option (non-utf8)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25labcd{ef[?12l[?25h[?25l
:[?12l[?25h10new|:vsp|:vert resize 20
[?25l       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                                 [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,4)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: set linebreak"
[?25l[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: set linebreak + set list"
[?25l[?12l[?25h[?25l:[?12l[?25hset linebreak list listchars=
[?25l^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l^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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet lingcc -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
e=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25labcdef|^Iabcdef hijklmn^I[?12l[?25h[?25l:[?12l[?25hset nolist linebreak ts=8
[?25l    abcdef[?12l[?25h[?25l:[?12l[?25hlet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25l      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l1|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hlet line="_S_\t bla"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l_S_      bla|+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25labbbb[?12l[?25h[?25l:[?12l[?25hsyn match ConcealVar contained /_/ conceal
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match All /.*/ contains=ConcealVar
[?25lSabb[?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: this not"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25labbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE: this not    [?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE:             
+aaaaaaaaaaaaa      [?12l[?25h[?25l:[?12l[?25h1/^REMOVE:
[?25l[?12l[?25h[?25l[?12l[?25h[?25lR[?12l[?25h[?25lEMOVE: 
REMOVE:[?12l[?25h[?25lthis not        
aaaaaaaaaaaaa
~                   [?12l[?25h[?25l:[?12l[?25h$put
[?25l~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?12l[?25h[?25llong line:          [?12l[?25h[?25l foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?12l[?25h+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25lTARGET at
+end[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx at[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak sbr=
[?25lfoobar 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)[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l1111-1111-1111-11-  
1111-1111-1111      [?12l[?25h[?25l[?12l[?25h[?25l111[?12l[?25h[?25l2222[?12l[?25h[?25l2222[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: using redo after block visual mode"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                [?12l[?25h[?25l1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?12l[?25h[?25l[?12l[?25h[?25la
a[?12l[?25h[?25l3 lines changedA
A
A[?12l[?25h[?25lA
AaA[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 10: using normal commands after block-visual"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?12l[?25h[?25l:[?12l[?25hset linebreak
[?25l[?12l[?25h[?25lAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?12l[?25h[?25l[?12l[?25h[?25l[?12l[?25h[?25lpqrs
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?12l[?25h[?25l:[?12l[?25hset linebreak wrap
[?25l[?12l[?25h[?25lA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?12l[?25h[?25l[?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l[?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?12l[?25h[?25l0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25laaaaaaaaaaaaaaaaaaaa|~[?12l[?25h[?25l:[?12l[?25hset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l$[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hlet line="a aaaaaaaaaaaaaaaaalink.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     
aaaaa\ta "
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25la_|
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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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-$[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 62 lines, 2030 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for search('multi-byte char', 'bce')[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hsource small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hsource mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h/^Test bce:/+1
[?25l[?12l[?25h[?25l:[?12l[?25h$put =search('A', 'bce', line('.'))
[?25l15[?12l[?25h[?25l:[?12l[?25h1;/^Results:/,$wq! test.out
[?25l"test.out" [New File] 5 lines, 27 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for Unicode manipulationsvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:" 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
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Visual block Insert adjusts for multi-byte char
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                    [?12l[?25h[?25l:[?12l[?25hcall setline(1, ["aaa", "あああ", "bbb"])
[?25laaa
あああbbb[+][?12l[?25h[?25l:[?12l[?25hexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25lxaa
xあああ
bxbb[?12l[?25h[?25l:[?12l[?25hlet r = getline(1, '$')
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l:" 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
 [?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
axaa
xあああ
bxbb3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for built-in function strchars()
[?25l[?12l[?25h[?25l:[?12l[?25hfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l
:  [?12l[?25h:^I$put=strchars(str)

[?25l:  [?12l[?25h:^I$put=strchars(str, 0)

[?25l:  [?12l[?25h:^I$put=strchars(str, 1)

[?25l:  [?12l[?25h:endfor
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for customlist completion
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete1(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あ', 'い']

[?25l:  [?12l[?25h:endfunction
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete2(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l:  [?12l[?25h:endfunction
[?25l:/^start:/,$wq! test.out
ENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete3(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l:  [?12l[?25h:endfunction
[?25lENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 _[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for wordcount() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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:
[?12l[?25h[?25l
:[?12l[?25hset selection=inclusive fileformat=unix fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                               [?12l[?25h[?25l:[?12l[?25hfu DoRecordWin(...)
[?25l
:  [?12l[?25h:^Iwincmd k

[?25l:  [?12l[?25h:       if exists("a:1")

[?25l:    [?12l[?25h:           call cursor(a:1)

[?25l:    [?12l[?25h:       endif

[?25l:  [?12l[?25h:       let result=[]

[?25l:  [?12l[?25h:       call add(result, g:test)

[?25l:  [?12l[?25h:       call add(result, getline(1, '$'))

[?25l:  [?12l[?25h:       call add(result, wordcount())

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:       return result

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu PutInWindow(args)
[?25l
:  [?12l[?25h:       wincmd k

[?25l:  [?12l[?25h:       %d _

[?25l:  [?12l[?25h:       call append(1, a:args)

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu Log()
[?25l
:  [?12l[?25h:   $put ='----'

[?25l:  [?12l[?25h:   $put =remove(g:log,0)

[?25l:  [?12l[?25h:   $put =string(g:log)

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu! STL()
[?25l
:  [?12l[?25h:    if mode() =~? 'V'

[?25l:    [?12l[?25h:       let g:visual_stat=wordcount()

[?25l:    [?12l[?25h:    endif

[?25l:  [?12l[?25h:    return string(wordcount())

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: empty window"
[?25l[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin()
[?25l[No Name]                                                                        test_wordcount.in                                                               [?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 00, 'cursor_bytes': 0}][+][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: some words, cursor at start"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25lone two three[+][?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([1,1,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_worrds': 0, 'bytes': 15, 'cursor_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 3: some words, cursor at end"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlink.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk'
# Ensure ERM is set to a sane value for testing
[ yes != "yes" ] || flock debian env TERM=xterm /usr/bin/make -j1 -C src/vim-gtk test
let g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 15}][?12l[?25h[?25l


:[?12l[?25hset ve=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 5: several lines with words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25lone two threeone two three--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([4,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
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}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 6: one line with BOM set"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25l[No Name] [+]                                                                   test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset bomb
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2 lines, 18 characters writtenXtesta         [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 18, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25hwincmd k
[?25lXtest                                                                           test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset nobomb
[?25l[+][?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtest" 2 lines, 15 characters written    [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 7: one line with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh'])
[?25lÄne M¤ne Müh[+]--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_worrds': 3, 'bytes': 17, 'cursor_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 8: several lines with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25lund raus bist dü!--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'wwords': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 9: visual mode, complete buffer"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}[?12l[?25h[?25lÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 10: visual mode (empty)"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l[?12l[?25h[?25lursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 11: visual mode, single line"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h2
[?25l2,1,3}[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual_2}[?12l[?25h[?25lÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}[?12l[?25h[?25l
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3}[?12l[?25hsor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]s                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^RESULT test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for autocommands:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" drop out when there is no gzip program
[?25l[?12l[?25h[?25l:[?12l[?25hif !executable("gzip")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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/[?12l[?25h[?25l:[?12l[?25hlet $GZIP = ""
[?25l[?12l[?25h[?25l:[?12l[?25hau FileChangedShell * echo "caught FileChangedShell"
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePre    *.gz   '[,']!gzip
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePost   *.gz   undo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?12l[?25h[?25l11 lines filtered
"Xtestfile.gz"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
 [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[?12l[?25h[?25l:[?12l[?25hau FileReadPost    *.gz   '[,']!gzip -d
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$r Xtestfile.gz                " Read and decompress the testfile
[?25l"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?12l[?25h[?25lstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?12l[?25h[?25l
:[?12l[?25h?startstart?,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 29 lines, 788 characters written[?12l[?25h[?25l:[?12l[?25hau BufNewFile      *.c    read Xtest.c
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25lsearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25he! foo.c                       " Will load Xtest.c
[?25l"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hau! FileAppendPre
[?25l/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile.gz                " Edit compressed file
[?25l:!gzip -d 'Xtestfile.gz'

[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?12l[?25h[?25lcaught FileChangedShell

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hset shelltemp                  " need temp files here
[?25lstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out                    " Edit the output file
[?25l"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[?12l[?25h[?25l:[?12l[?25h23,$!cat
[?25l[?12l[?25h[?25l218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h23,$s/\r$//                 " remove CR for when sed adds them
[?25lE486: Pattern not found: \r$
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25lstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?12l[?25h[?25l
:[?12l[?25hau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz             " Read compressed file
[?25l[?12l[?25h[?25l"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw                           " write it, after filtering
[?25l"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau!             " remove all autocommands
[?25lE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he               " Edit test.out again
[?25l"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?12l[?25h[?25l:[?12l[?25hset nobin ff&   " use the default fileformat for writing
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 61 lines, 1599 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for reading and writing files with conversion for Win32.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make this a dummy test for non-Win32 systems
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("win32") | e! test.ok | wq! test.out | endif
[?25l"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=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
[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Lua interface and luaeval() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso lua.vim
[?25l"test.ok" 7 lines, 206 characters

"test.out" [New File] 7 lines, 206 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python') | e! test.ok | wq! test.out | endif
[?25l"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python3') | e! test.ok | wq! test.out | endif
[?25l"test.ok" 1445 lines, 77744 characters

"test.out" [New File] 1445 lines, 77744 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'directory' option.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset dir=.,~
[?25l[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest1
[?25l"Xtest1" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25h" do an ls of the current dir to find the swap file (should not be there)
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:  !ls .X*.swp >test.out

[?25l:!ls .X*.swp >test.out[?1l>[?12l[?25h[?1049l
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25helse

[?25l:  [?12l[?25h:  r !ls X*.swp >test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25h!echo first line >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l:  [?12l[?25h:" to make the result the same for all systems.

[?25l:  [?12l[?25h:  r!ls .X*.swp

[?25l:  [?12l[?25h:  s/\.*X/X/

[?25l:  [?12l[?25h:  .w >>test.out
[?25l"test.out" 1L, 11C appended

:  [?12l[?25h:  undo

[?25l1 line less; before #1  1 seconds ago

:  [?12l[?25h:else

[?25l:  [?12l[?25h:  !ls X*.swp >>test.out

[?25l:  [?12l[?25h:endif
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest2
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hset dir=./Xtest2,.,~
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25h!ls X*.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l
ls: cannot access 'X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under under >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest.je
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25lsearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest2/Xtest3" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25hset dir=Xtest.je,~
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest2/Xtest3
[?25l"Xtest2/Xtest3" 4L, 70C[?12l[?25h[?25l:[?12l[?25hswap
[?25lXtest.je/Xtest3.swp[?12l[?25h[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest.je >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" Create a link from test25.dir to the current directory.
[?25l[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ln -s . test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h" Create tags.text, with the current directory name inserted.
[?25lTest 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
[?12l[?25h[?25l
/[?12l[?25htags line
[?25lhis 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:
[?12l[?25h[?25l:[?12l[?25hr !pwd
[?25l[?12l[?25h[?25lSTARTTEST
: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
[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25htest
[?25l
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?12l[?25h[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir/test25.dir/@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-basic/testdir/test25.dir//test25.in/^#define  SECTION_OFF  3$/[?12l[?25h[?25l

:[?12l[?25h.w! tags.test
[?25l"tags.test" [New File] 1 line, 114 characters written[?12l[?25h[?25l:[?12l[?25h" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?12l[?25h[?25l:[?12l[?25h" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?12l[?25h[?25l:[?12l[?25h" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?12l[?25h[?25l:[?12l[?25hset tags=tags.test
[?25l[?12l[?25h[?25l/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?12l[?25h#[?25lefine  SECTION_OFF  3[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 23 characters written[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir tags.test
[?25l[?1l>[?12l[?25h[?1049l
[No write since last change]

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of the script language.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp nomore viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hso test49.vim
[?25lError 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"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"/tmp/vdTcBam/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/1[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/2[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/2"' -c 'breakad

dfile 8 /tmp/vdTcBam/1' -S /tmp/vdTcBam/1[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/3[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/4[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/4"' -c 'breakad

dfile 4 /tmp/vdTcBam/3' -S /tmp/vdTcBam/3[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/5[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/6[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/6"' -c 'breakad

dfunc 7 F' -S /tmp/vdTcBam/5[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/7[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/8[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/8"' -c 'breakad

dfunc 3 G' -S /tmp/vdTcBam/7[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/9[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/10[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/10"' -S /tmp/vdTcB

am/9[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/11[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/12[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/12"' -S /tmp/vdTcB

am/11[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/13[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/14[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/14"' -S /tmp/vdTcB

am/13[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/15[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/16[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/16"' -S /tmp/vdTcB

am/15[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/17[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/18[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/18"' -S /tmp/vdTcB

am/17[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/19[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/19" 7L, 149C appended8L, 171Cgcc -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
8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/20[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/20"' -S /tmp/vdTcB

am/19[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/21[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/22[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/22"' -S /tmp/vdTcB

am/21[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/23[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/24[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/24"' -S /tmp/vdTcB

am/23[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/25[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/26[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/26"' -S /tmp/vdTcB

am/25[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/27[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/28[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/28"' -S /tmp/vdTcB

am/27[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/29[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/30[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/30"' -S /tmp/vdTcB

am/29[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/31[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/32[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/32"' -S /tmp/vdTcB

am/31[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/33[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/34[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/34"' -S /tmp/vdTcB

am/33[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/36[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/36"' -S /tmp/vdTcB

am/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/37[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/38[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/38"' -S /tmp/vdTcB

am/37[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/39[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/40[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vdTcBam/39[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/41[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/42[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/42"' -S /tmp/vdTcB

am/41[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/43[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/44[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/44"' -S /tmp/vdTcB

am/43[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/45" 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/gui_gtk_gresources.o auto/gui_gtk_gresources.c
16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/46[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/46"' -S /tmp/vdTcB

am/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vdTcBam/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/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/vdTcBam/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/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/vdTcBam/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/50[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vdTcBam/51[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/51"' -S /tmp/vdTcBam/50[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669Ctest49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/52[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"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_perl.o auto/if_perl.c

<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/53[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/53"' -S /tmp/vdTcB

am/52[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/54[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/55[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcBam/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vdTcBam/54' -c 'breakadd file 31

/tmp/vdTcBam/54' -S /tmp/vdTcBam/54[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/56[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/57[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/57"' -S /tmp/vdTcB

am/56[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/59[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcB

am/59"' -c 'breakadd func 16 C' -S /tmp/vdTcBam/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/61[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcB

am/61"' -c 'breakadd func 16 B' -S /tmp/vdTcBam/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/63[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcBam/

63"' -c 'breakadd func 16 R' -S /tmp/vdTcBam/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/65[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/65"' -c 'breakadd

func 16 F' -S /tmp/vdTcBam/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/66[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/67[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcB

am/67"' -c 'breakadd func 16 E' -S /tmp/vdTcBam/66[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/68[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/68" 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
83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/69[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcBam/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vdTcBam/68[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/70[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/71[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcB

am/71"' -c 'breakadd func 16 T' -S /tmp/vdTcBam/70[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vdTcBam/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/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/vdTcBam/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/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/vdTcBam/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/76[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vdTcBam/77[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/77"' -S /tmp/vdTcBam/76[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/78[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/79[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/79"' -S /tmp/vdTcBam/78[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/80[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/81[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/81"' -S /tmp/vdTcBam/80[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669Cgcc -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

"test49.in" 32L, 705C
"/tmp/vdTcBam/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/82[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/83[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/83"' -S /tmp/vdTcBam/82[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/84[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/85[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vdTcBam/85"' -c 'breakadd file 4 /tmp/vdTcBam

/84' -S /tmp/vdTcBam/84[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/86[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/87[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/87"' -S /tmp/vdTcBam/86[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/88[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/89[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/89"' -S /tmp/vdTcBam/88[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/91[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/92[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/92"' -S /tmp/vdTcBam/91[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/93[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vdTcBam/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/94[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/94"' -S /tmp/vdTcBam/93[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/95[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vdTcBam/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/96[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/96"' -S /tmp/vdTcBam/95[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/97[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/97" 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     
3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vdTcBam/97" 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
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
# Ensure ERM is set to a sane value for testing
[ yes != "yes" ] || flock debian env TERM=xterm /usr/bin/make -j1 -C src/vim-gtk3 test
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
4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/98[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/98"' -S /tmp/vdTcBam/97[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/99[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vdTcBam/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/100[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/100"' -S /tmp/vdTcBam/99[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/101[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/102[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/102"' -S /tmp/vdTcBam/101[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/103[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/103" 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
3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vdTcBam/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/104[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/104"' -S /tmp/vdTcBam/103[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/105[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vdTcBam/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/106[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/106"' -S /tmp/vdTcBam/105[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/107[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vdTcBam/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/108[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/108"' -S /tmp/vdTcBam/107[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/109[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vdTcBam/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/110[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/110"' -S /tmp/vdTcBam/109[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/111[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/112[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/112"' -S /tmp/vdTcBam/111[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/113[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vdTcBam/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/114[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/114"' -S /tmp/vdTcBam/113[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/115[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vdTcBam/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/116[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/116"' -S /tmp/vdTcBam/115[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/117[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vdTcBam/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/118[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/118"' -S /tmp/vdTcBam/117[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/119[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vdTcBam/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/120[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/120"' -S /tmp/vdTcBam/119[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/121[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vdTcBam/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/122[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/122"' -S /tmp/vdTcBam/121[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/123[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/123" 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
4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vdTcBam/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/124[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vdTcBam/124"' -S /tmp/vdTcBam/123[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/126[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/127[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/127"' -S /tmp/vdTcBam/126[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/128[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vdTcBam/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/129[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/129"' -S /tmp/vdTcBam/128[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/130[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vdTcBam/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/131[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/131"' -S /tmp/vdTcBam/130[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/132[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vdTcBam/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/133[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/133"' -S /tmp/vdTcBam/132[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/134[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vdTcBam/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/135[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/135"' -S /tmp/vdTcBam/134[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/136[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vdTcBam/136"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
6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/137[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/137"' -S /tmp/vdTcBam/136[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/138[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vdTcBam/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/139[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/139"' -S /tmp/vdTcBam/138[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/140[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vdTcBam/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/141[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/141"' -S /tmp/vdTcBam/140[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/142[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vdTcBam/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/143[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/143"' -S /tmp/vdTcBam/142[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/144[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/144" 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
5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vdTcBam/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/145[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/145"' -S /tmp/vdTcBam/144[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/146[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vdTcBam/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/147[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/147"' -S /tmp/vdTcBam/146[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/149[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/149" 1L, 13C appended2L, 35Cgcc -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
2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/150[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/150"' -S /tmp/vdTcBam/149[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/151[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vdTcBam/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/152[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/152"' -S /tmp/vdTcBam/151[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/153[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vdTcBam/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/154[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/154"' -S /tmp/vdTcBam/153[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/155[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vdTcBam/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/156[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/156"' -S /tmp/vdTcBam/155[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/157[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vdTcBam/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/158[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/158"' -S /tmp/vdTcBam/157[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/159[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/160[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/160"' -S /tmp/vdTcBam/159[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/161[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vdTcBam/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/162[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/162"' -S /tmp/vdTcBam/161[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/163[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vdTcBam/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/164[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/164"' -S /tmp/vdTcBam/163[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/165[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vdTcBam/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/166[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/166"' -S /tmp/vdTcBam/165[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/167[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vdTcBam/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/168[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/168"' -S /tmp/vdTcBam/167[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/170[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/171[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/171"' -S /tmp/vdTcBam/170[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/172[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vdTcBam/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/173[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/173"' -S /tmp/vdTcBam/172[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/174[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vdTcBam/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/175[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/175"' -S /tmp/vdTcBam/174[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/176[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vdTcBam/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/177[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/177"' -S /tmp/vdTcBam/176[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/178[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vdTcBam/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/179[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/179"' -S /tmp/vdTcBam/178[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/180[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vdTcBam/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/181[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/181"' -S /tmp/vdTcBam/180[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/181" 0L, 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/menu.o menu.c

"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/182[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vdTcBam/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/183[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/183"' -S /tmp/vdTcBam/182[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/184[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vdTcBam/184"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
6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/185[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/185"' -S /tmp/vdTcBam/184[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/186[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vdTcBam/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/187[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vdTcBam/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vdTcBam/187"' -S /tmp/vdTcBam/186[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vdTcBam/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vdTcBam/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vdTcBam/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vdTcBam/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vdTcBam/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/vdTcBam/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vdTcBam/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vdTcBam/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vdTcBam/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vdTcBam/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vdTcBam/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/194[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/194"' -c 'break

add func 4 T' -S /tmp/vdTcBam/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vdTcBam/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/196[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/196"' -c 'br

eakadd file 115 /tmp/vdTcBam/195' -c 'breakadd file 225 /tmp/vdTcBam/195' -S /tm

p/vdTcBam/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/198[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/198"' -c 'break

add file 7 /tmp/vdTcBam/197' -S /tmp/vdTcBam/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/200[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vdTcBam/

200"' -c 'breakadd file 8 /tmp/vdTcBam/199' -c 'breakadd file 36 /tmp/vdTcBam/19

9' -c 'breakadd file 40 /tmp/vdTcBam/199' -c 'breakadd file 69 /tmp/vdTcBam/199'

-c 'breakadd file 95 /tmp/vdTcBam/199' -c 'breakadd file 97 /tmp/vdTcBam/199' -

S/tmp/vdTcBam/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vdTcBam/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vdTcBam/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" Error detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test49.vim:

line 5500:

"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing

*** Test  63: OK (236978127)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

"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vdTcBam/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/203[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/203"' -c 'break

add file 63 /tmp/vdTcBam/202' -S /tmp/vdTcBam/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/204[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/205[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/205"' -c 'break

add func 8 F' -S /tmp/vdTcBam/204[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vdTcBam/206" [New File]
"test49.in" 32L, 705C
"/tmp/vdTcBam/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/208[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/209[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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

/vdTcBam/209"' -c 'breakadd func 2 INT' -S /tmp/vdTcBam/208[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/210[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/211[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/211"' -S /tmp/vdTc

Bam/210[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/212[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/212" 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
15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/213[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/213"' -S /tmp/vdTc

Bam/212[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/214[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/215[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/215"' -c 'break

add file 8 /tmp/vdTcBam/214' -S /tmp/vdTcBam/214[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/216[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/216" 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
20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/217[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/217"' -S /tmp/vdTc

Bam/216[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/218[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/218" 24L, 480C appended25L, 502Cgcc -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
25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/219[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/219"' -S /tmp/vdTc

Bam/218[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/220[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/221[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/221"' -c 'break

add file 7 /tmp/vdTcBam/220' -S /tmp/vdTcBam/220[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/222[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/223[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/223"' -c 'break

add func 6 I' -S /tmp/vdTcBam/222[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/224[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/225[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/225"' -S /tmp/vdTc

Bam/224[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/226[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/227[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/227"' -c 'break

add file 8 /tmp/vdTcBam/226' -S /tmp/vdTcBam/226[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/229[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/229"' -c 'br

eakadd func 1 INT' -S /tmp/vdTcBam/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vdTcBam/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vdTcBam/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vdTcBam/233[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test49.vim:

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/vdTcBam/235" c[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/vdTcBam/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vdTcBam/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)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vdTcBam/0' >/tmp/vdTcBam/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vdTcBam/236" 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
151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vdTcBam/237[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdTcBam/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vdTcBam/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vdTcBam/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<lTJJ2/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9008L, 206669C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue:[?12l[?25h" Go back to this file and append the results from register r.
[?25l#
# 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 \[?12l[?25h[?25l:[?12l[?25hbuf test49.in
[?25l"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:[?12l[?25h
[?25l
83 more lines
*** Test  16: OK (8722)83 more lines[?12l[?25h[?25l:[?12l[?25h/^Results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" make valgrind happy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => funclist
[?25l[?12l[?25h[?25l:[?12l[?25hsilent func
[?25l[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hfor line in split(funclist, "\n")
[?25l
:  [?12l[?25h:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l:  [?12l[?25h:  if name != ''

[?25l:    [?12l[?25h:    exe "delfunc " . name

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?12l[?25h[?25l
:[?12l[?25hfor v in keys(g:)
[?25l
:  [?12l[?25h:  silent! exe "unlet " . v

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in[?12l[?25h[?25l
:[?12l[?25hunlet v
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest whether glob()/globpath() return correct results with certain escaped[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure glob() doesn't use the shell
[?25l[?12l[?25h[?25l:[?12l[?25hset shell=doesnotexist
[?25l[?12l[?25h[?25l:[?12l[?25h" consistent sorting of file names
[?25l[?12l[?25h[?25l:[?12l[?25hset nofileignorecase
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25l[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xxx{
[?25l
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! Xxx\$
[?25l"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25lXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25lXxx$[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim'))
[?25l'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 8 lines, 138 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option in utf-8 mode[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l:set list nolinebreak cc=3[?12l[?25h[?25l
:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?12l[?25h[?25l:[?12l[?25h10new|:vsp|:vert resize 20
[?25l                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                            [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width, lines)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,a:lines)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?12l[?25h[?25l:[?12l[?25hexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l▕———abcdef|▕———␣ˑ¶[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 2: set nolinebreak list"
[?25l[?12l[?25h[?25l:[?12l[?25hset list nolinebreak
[?25lhijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶                
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶          
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\t*mask = nil;\"
[?25l▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~ [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l      
    [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l*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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?12l[?25h[?25l:[?12l[?25hlet 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*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l#define             
+ABCDE      1       [?12l[?25h[?25l:[?12l[?25hvert resize 40
[?25l                    |                    |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] [+][?12l[?25h[?25l:[?12l[?25h$-7
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l#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
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset list linebreak listchars=tab:>- cole=1
[?25l>-->--->->--->>--->--->-->--->--->--->--->-->-[?12l[?25h[?25l:[?12l[?25hsyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25lAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l#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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),7)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l>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>
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?12l[?25h[?25l:[?12l[?25hlet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l[?12l[?25h[?25l:[?12l[?25h$
[?25l@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        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[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25lbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l>;>some text      [?12l[?25h[?25l:[?12l[?25hsyn clear
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match meaning    /;\s*\zs.*/
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match hasword    /^\x\{8}/    contains=word
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match beginword  /\<\x\x/     contained conceal
[?25leeeeee>--[?12l[?25h[?25l:[?12l[?25hsyn match endword    /\x\{6}\>/   contained
[?25l[?12l[?25h[?25l:[?12l[?25hhi meaning   guibg=blue
[?25lsome text[?12l[?25h[?25l:[?12l[?25hhi beginword guibg=green
[?25l[?12l[?25h[?25l:[?12l[?25hhi endword   guibg=red
[?25leeeeee[?12l[?25h[?25l:[?12l[?25hredraw!
[?25leeeeee>--->-;>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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),1)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l                                        
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                + [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: Screenattributes for comment"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 6: Screenattributes for comment    [?12l[?25h[?25l:[?12l[?25hcall append('$', ' /*^I^I and some more */')
[?25l /*>>- and some more */                 [?12l[?25h[?25l:[?12l[?25hexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25leeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?12l[?25h[?25l:[?12l[?25hsyntax on
[?25lbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?12l[?25h[?25l:[?12l[?25hhi SpecialKey term=underline ctermfg=red guifg=red
[?25l▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25lbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt0
[?25l /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['106']
[?12l[?25h[?25l:let attr += ['106']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:[?12l[?25hcall append('$', ['ScreenAttributes for test6:'])
[?25lScreenAttributes for test6:¶            [?12l[?25h[?25l:[?12l[?25hif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l
:  [?12l[?25h:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Not all attributes are different")

[?25l:  [?12l[?25h:endif
[?25l/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak selection=exclusive
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set linebreak with visual block [?12l[?25h[?25llong line:ˑ¶                            [?12l[?25h[?25l¶                                
¶                            
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?12l[?25h[?25l
foobar foobar TARGET¶               [?12l[?25h[?25lÃ' at end¶[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx' at end¶[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=[]
[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l /*▕———▕—————— 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
¶                                       [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25hset list nolinebreak cc=3
[?25l*
Scr
Att
Tesn 
a b
a b[?12l[?25h[?25l:[?12l[?25hsign define foo text=^+
[?25l[?12l[?25h[?25l:[?12l[?25hsign place 1 name=foo line=50 buffer=2
[?25l   /*▕———▕—————— 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  +[?12l[?25h[?25l:[?12l[?25hnorm! 2kztj
[?25l  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?12l[?25h[?25l:[?12l[?25hlet line1=line('.')
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['91']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hlet line2=line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=attr
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['91']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l  ¶ |
+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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),3)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l3 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¶               [?12l[?25h[?25l:[?12l[?25h" expected: attr[2] is different because of colorcolumn
[?25l[?12l[?25h[?25l:[?12l[?25hif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l
:  [?12l[?25h:   call append('$', "Screen attributes are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Screen attributes are the same!")

[?25l:  [?12l[?25h:endif
[?25l  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" 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] 57 lines, 1882 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.oout
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lSome tests for buffer-local autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25he xx
[?25l"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !del test.out.*

[?25l:  [?12l[?25h: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !rm -f test.out

[?25l:!rm -f test.out[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25he somefile           " here, autocommand for xx shall write test.out 
[?25l:!echo buffer-local autommand in xx>> test.out

[?12l[?25h[?25l"somefile" [New File]

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h                     " but autocommand shall not apply to buffer named <buffer

>[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?12l[?25h[?25l:[?12l[?25he xx                 " nothing shall be written
[?25l"xx" [New File][?12l[?25h[?25l:[?12l[?25he somefile           " nothing shall be written
[?25l"somefile" [New File][?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
:  [?12l[?25h: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:endif
[?25l:"
:if has("unix")
:let $CDIR = "."
/CDIR[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:let $CDIR = "."

[?25l:  [?12l[?25h/CDIR

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:if has("amiga")

[?25l:    [?12l[?25h:let $TDIR = "/testdir"

[?25l:    [?12l[?25h:else

[?25l:    [?12l[?25h:let $TDIR = "."

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h/TDIR

[?25l:  [?12l[?25h:endif
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?12l[?25h[?25l:[?12l[?25h" file is modified. It can be occurred when executing the following command
[?25l[?12l[?25h[?25l:[?12l[?25h" directly on Windows without fixing the 'fileformat':
[?25l[?12l[?25h[?25l:[?12l[?25h"  > nmake -f Make_dos.mak test17.out
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 135 lines, 2431 characters written[?12l[?25h[?25l
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/./test17a.in" 3 lines, 88

characters

Press ENTER or type command to continue[?12l[?25h[?25lThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 3 lines, 88 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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"^[:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' without \zs or \ze
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.a")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he! Xdir1/dir2/foo.a
[?25l"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l#include   "bar.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.a
[?25l"Xdir1/dir2/bar.a" [New File][?12l[?25h[?25l#include      "baz.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.a
[?25l"Xdir1/dir2/baz.a" [New File][?12l[?25h[?25l#include"foo.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.a
[?25l"Xbase.a" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l#include    <foo.a>[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.a" [New File] 1 line, 20 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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()'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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][?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.b")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l: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][?12l[?25h[?25l:[?12l[?25hfunction! DotsToSlashes()
[?25l
:  [?12l[?25h:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l:  [?12l[?25h:endfunction
[?25l:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?12l[?25h[?25l:[?12l[?25hlet &includeexpr='DotsToSlashes()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.b
[?25l"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   /bar/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.b
[?25l"Xdir1/dir2/bar.b" [New File][?12l[?25h[?25l%inc      /baz/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.b
[?25l"Xdir1/dir2/baz.b" [New File][?12l[?25h[?25l%inc/foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.b
[?25l"Xbase.b" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    /foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.b" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and no \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.c")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hfunction! StripNewlineChar()
[?25l
:  [?12l[?25h:  if v:fname =~ '\n$'

[?25l:    [?12l[?25h:    return v:fname[:-2]

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  return v:fname

[?25l:  [?12l[?25h:endfunction
[?25l:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='StripNewlineChar()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.c
[?25l"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   bar.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.c
[?25l"Xdir1/dir2/bar.c" [New File][?12l[?25h[?25l%inc      baz.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.c
[?25l"Xdir1/dir2/baz.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/FALSE.c
[?25l"Xdir1/dir2/FALSE.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.c
[?25l"Xbase.c" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    FALSE.c foo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l:[?12l[?25h" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?12l[?25h[?25l:[?12l[?25he test.out
[?25l"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)[?12l[?25h[?25l:[?12l[?25h%s#\\#/#g
[?25lE486: Pattern not found: \\[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 33 lines, 655 characters written[?12l[?25h[?25l:[?12l[?25hq
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for a lot of variations of the 'fileformats' option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" first write three test files, one in each format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=
[?25l[?12l[?25h[?25l:[?12l[?25h/^unix/;/eof/-1w! XXUnix
[?25l"XXUnix" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^dos/;/eof/-1w! XXDos
[?25l"XXDos" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25hset bin noeol
[?25l[?12l[?25h[?25l:[?12l[?25h$w! XXMac
[?25l"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?12l[?25h[?25l
noeol[?12l[?25h[?25l
:[?12l[?25h$w! XXEol
[?25l"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?12l[?25h[?25l:[?12l[?25hset nobin eol
[?25l[?12l[?25h[?25l:[?12l[?25henew!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l3 buffers wiped out[?12l[?25h[?25l:[?12l[?25h" create mixed format files
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !copy XXUnix,XXDos XXUxDs.

[?25l:  [?12l[?25h: !copy XXUnix,XXMac XXUxMac.

[?25l:  [?12l[?25h: !copy XXDos,XXMac  XXDosMac.

[?25l:  [?12l[?25h: !copy XXMac,XXEol  XXMacEol.

[?25l:  [?12l[?25h: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l:  [?12l[?25h:elseif has("win32")

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos XXUxDs

[?25l:  [?12l[?25h: !copy /b XXUnix+XXMac XXUxMac

[?25l:  [?12l[?25h: !copy /b XXDos+XXMac XXDosMac

[?25l:  [?12l[?25h: !copy /b XXMac+XXEol XXMacEol

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !cat XXUnix XXDos >XXUxDs

[?25l:!cat XXUnix XXDos >XXUxDs[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXMac >XXUxMac

[?25l:!cat XXUnix XXMac >XXUxMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXDos XXMac >XXDosMac

[?25l:!cat XXDos XXMac >XXDosMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXMac XXEol >XXMacEol

[?25l:!cat XXMac XXEol >XXMacEol[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l:!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25hendif
[?25l:[?12l[?25h"
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' empty
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" 2 lines, 10 charactersdos^M
dos^M[?12l[?25h[?25l:[?12l[?25hw! XXtt01
[?25l"XXtt01" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt02
[?25l"XXtt02" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=dos
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt11
[?25l"XXtt11" [New File][dos format] 2 lines, 12 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [dos format] 2 lines, 10 charactersdosdos[?12l[?25h[?25l:[?12l[?25hw! XXtt12
[?25l"XXtt12" [New File][dos format] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt13
[?25l"XXtt13" [New File][dos format] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=mac
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt21
[?25l"XXtt21" [New File][mac format] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?12l[?25h[?25l:[?12l[?25hw! XXtt22
[?25l"XXtt22" [New File][mac format] 3 lines, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt23
[?25l"XXtt23" [New File][mac format] 2 lines, 8 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l^Jdos
^Jeof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to one format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt31
[?25l"XXtt31" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt32
[?25l"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt33
[?25l"XXtt33" [New File][mac format] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to two formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt41
[?25l"XXtt41" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt42
[?25l"XXtt42" [New File] 3 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt43
[?25l"XXtt43" [New File][dos format] 3 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt51
[?25l"XXtt51" [New File] 4 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt52
[?25l"XXtt52" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt53
[?25l"XXtt53" [New File][mac format] 4 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt54
[?25l"XXtt54" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt61
[?25l"XXtt61" [New File][dos format] 4 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:dos[?12l[?25h[?25l:[?12l[?25hw! XXtt62
[?25l"XXtt62" [New File][dos format] 4 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt63
[?25l"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25he! XXMacEol
[?25l"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt64
[?25l"XXtt64" [New File][mac format] 4 lines, 26 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXMacEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to three formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt71
[?25l"XXtt71" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,dos,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt72
[?25l"XXtt72" [New File] 2 lines, 24 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,dos,unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt81
[?25l"XXtt81" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lmac,dos,unix:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt82
[?25l"XXtt82" [New File][mac format] 2 lines, 23 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h" try with 'binary' set
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt91
[?25l"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt92
[?25l"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt93
[?25l"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix nobin
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXtt01
[?25l"XXtt01" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt02
[?25l"XXtt02" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt11
[?25l"XXtt11" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt12
[?25l"XXtt12" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt13
[?25l"XXtt13" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt21
[?25l"XXtt21" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt22
[?25l"XXtt22" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt23
[?25l"XXtt23" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt31
[?25l"XXtt31" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt32
[?25l"XXtt32" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt33
[?25l"XXtt33" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt41
[?25l"XXtt41" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt42
[?25l"XXtt42" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt43
[?25l"XXtt43" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt51
[?25l"XXtt51" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt52
[?25l"XXtt52" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt53
[?25l"XXtt53" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt54
[?25l"XXtt54" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt61
[?25l"XXtt61" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt62
[?25l"XXtt62" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt63
[?25l"XXtt63" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt64
[?25l"XXtt64" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt71
[?25l"XXtt71" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt72
[?25l"XXtt72" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt81
[?25l"XXtt81" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt82
[?25l"XXtt82" 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
1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt91
[?25l"XXtt91" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt92
[?25l"XXtt92" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt93
[?25l"XXtt93" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results.
[?25l[?12l[?25h[?25l:[?12l[?25h" Make fileformat of test.out the native fileformat.
[?25l[?12l[?25h[?25l:[?12l[?25h" Add a newline at the end.
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25h$r XXtt01
[?25l"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt02
[?25l"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?12l[?25h
[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXtt11
[?25l"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt12
[?25l"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt13
[?25l"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?12l[?25h
[?25l
2[?12l[?25h[?25l:[?12l[?25h$r XXtt21
[?25l"XXtt21" 3 lines, 15 charactersunixunix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt22
[?25l"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt23
[?25l"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?12l[?25h[?25l
3[?12l[?25h[?25l
:[?12l[?25h$r XXtt31
[?25l"XXtt31" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt32
[?25l"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt33
[?25l"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
4[?12l[?25h[?25l
:[?12l[?25h$r XXtt41
[?25l"XXtt41" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt42
[?25l"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt43
[?25l"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
5[?12l[?25h[?25l
:[?12l[?25h$r XXtt51
[?25l"XXtt51" 5 lines, 24 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt52
[?25l"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt53
[?25l"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt54
[?25l"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
6[?12l[?25h[?25l
:[?12l[?25h$r XXtt61
[?25l"XXtt61" 5 lines, 26 characters
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt62
[?25l"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt63
[?25l"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt64
[?25l"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?12l[?25h[?25l
7[?12l[?25h[?25l
:[?12l[?25h$r XXtt71
[?25l"XXtt71" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt72
[?25l"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
8[?12l[?25h[?25l
:[?12l[?25h$r XXtt81
[?25l"XXtt81" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt82
[?25l"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?12l[?25h[?25l
9[?12l[?25h[?25l
:[?12l[?25h$r XXtt91
[?25l"XXtt91" 5 lines, 32 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt92
[?25l"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt93
[?25l"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
10[?12l[?25h[?25l
:[?12l[?25h$r XXUnix
[?25l"XXUnix" 2 lines, 10 characters
unix[?12l[?25h[?25l
:[?12l[?25hset nobinary ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 130 lines, 786 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for insert expansion[?12l[?25h[?25l/^STARTTEST
[?12l[?25h[?25l
:so small.vim[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l"Xtestfile" [New] 3L, 57C written[?12l[?25h[?25l:[?12l[?25hse cot=
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile"
run1 run2[+][?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h[?25l3[?12l[?25h
[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 115-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)
-- INSERTe --^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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3

run1 run2[?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h
[?25l:[?12l[?25hse cpt=.,w,i
[?25l[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)^ U-- Searching...
Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 57INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 57Addinge Whole line completion (^L^N^P) -- Searching...
Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=kXtestfile
[?25l[?12l[?25h[?25l:[?12l[?25hw Xtest11.one
[?25l"Xtest11.one" [New] 9L, 104C writtenXtest11.one+   [?12l[?25h[?25l:[?12l[?25hw Xtest11.two
[?25l"Xtest11.two" [New] 9L, 104C written[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?12l[?25h [?25l-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?12l[?25h[?25l-- INSERT --Xtest11
[?12l[?25h[?25l-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25h" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?12l[?25h[?25l:[?12l[?25h" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 4.INSERTa -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 445.
Make_all.mak
run1 run2d[?12l[?25h [?25l-- INSERT --[?12l[?25h[?25l
run1 run2~                                                                               [?12l[?25h
[?25l:[?12l[?25hse cpt=w
[?25l[?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=u nohid
[?25l[?12l[?25h[?25l

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only matchENDTEST
unless[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Definition completion (^D^N^P)^ U-- Searching...
Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching...
Scanning tags.pincluded file: Xtestfile
-- Keyword completion (^N^P) The only matchtest11file      36Gepeto/Tag/ asd
asd[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h
ru[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New] 15L, 175C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l:"
:" 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?12l[?25h[?25l:[?12l[?25hset maxmem=512 spell
[?25lvim

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[?12l[?25h[?25lasdTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25lChange "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): [?12l[?25h[?25l:[?12l[?25h"
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.latin1.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 151 lines, 3412 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.latin1.add
[?25lasdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?12l[?25h[?25l/[?12l[?25h^test2:
[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.latin1.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.latin1.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.latin1.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.latin1.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" NOSLITSUGS
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('8', '8')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Numbgcc -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
ers
[?25lNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?12l[?25h[?25l:[?12l[?25hcall TestOne('9', '9')
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 289 lines, 3844 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?12l[?25h[?25l:[?12l[?25h" text is in latin1, the test text is utf-8.
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l:[?12l[?25hset enc=utf-8
[?25lTests 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[?12l[?25h[?25l:[?12l[?25hset fenc=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.utf-8.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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 bytesgcc -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


17 lines yanked

17 more lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 153 lines, 3426 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.utf-8.add
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?12l[?25h[?25l/[?12l[?25h^test2:
[?25ltomato 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 !![?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.utf-8.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.utf-8.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.utf-8.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.utf-8.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25laddstart
/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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 270 lines, 3685 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for undo file.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile': first a simple one-line change.
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset ul=100 undofile nomore
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --this is one line[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hs/one/ONE/
[?25lONE
[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 change; before #2  0 seconds agoone
[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', change in original file fails check
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 1L, 17CONE
[?12l[?25h[?25l:[?12l[?25hs/line/Line/
[?25lL
[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 1L, 17C written[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" TODO: this beeps
[?25l[?12l[?25h[?5h[?5l[?25lAlready at oldest change[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 17C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --one
twothreefourfivesixseveneightnineten[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 4L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 more line; before #7  0 seconds agoeight[?12l[?25h[?25l1 more line; before #6  0 seconds agoseven[?12l[?25h[?25l1 more line; before #5  0 seconds agosix[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 7L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that reading the undofiles when setting undofile works
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile ul=0
[?25l[?12l[?25h[?25l-- INSERT --six
u[?12l[?25hs[?25l[?12l[?25h[?25l1 line less; before #8  0 seconds ago
~                                                                               [?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile ul=100
[?25l[?12l[?25h[?25l1 more line; before #7  0 seconds agoeight[?12l[?25h[?25l1 more line; before #6  0 seconds agoseven[?12l[?25h[?25l1 more line; before #5  0 seconds agosix[?12l[?25h[?25l1 more line; before #4  0 seconds agofive[?12l[?25h[?25l1 more line; before #3  0 seconds agofour[?12l[?25h[?25l1 more line; before #2  0 seconds agothree[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 10L, 49C appended[?12l[?25h[?25l:[?12l[?25h" And now with encryptiongcc -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
, cryptmethod=zip
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile cm=zip
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l-- INSERT --monday
tuesdaywednesdaythursdayfriday[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25lmonday
friday
~                                                                               [?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [crypted] 2L, 14C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l1 more line; before #11  1 seconds agothursday[?12l[?25h[?25l1 more line; before #10  1 seconds agowednesday[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 4L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******
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     

[?25ljan
feb
bar apr[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #15  2 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #14  2 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #13  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish2 ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lEnter encryption key: [?12l[?25h*******

[?25lEnter same key again: [?12l[?25h*******

[?25ljan
feb[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile"link.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena'
# Ensure ERM is set to a sane value for testing
[ yes != "yes" ] || flock debian env TERM=xterm /usr/bin/make -j1 -C src/vim-athena test
 [blowfish2] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?12l[?25h*******

[?25l"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #19  1 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #18  2 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #17  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Rename the undo file so that it gets cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: call rename("_un_Xtestfile", "Xtestundo")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: call rename(".Xtestfile.un~", "Xtestundo")

[?25l:  [?12l[?25h:endif
[?25ljan
feb
mar
apr[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01223456789abcdefghijklmnoparstuvwxyz0123456789"
: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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lInserts 10000 lines with text to fill the swap file with two levels of pointer[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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 linnecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appendd(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet linecount = 10000
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789[?12l[?25h[?25l:[?12l[?25hpreserve
[?25lFile preserved[?12l[?25h[?25l:[?12l[?25h" get the name of the swap file
[?25l[?12l[?25h[?25l:[?12l[?25hredir => swapname
[?25l[?12l[?25h[?25l:[?12l[?25hswapname
[?25l.Xtest.swp[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hlet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899a[?12l[?25h[?25l
:[?12l[?25h" make a copy of the swap file in Xswap
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hexe 'sp ' . swapname
[?25l".Xtest.swp"[noeol] 611L, 1224704Cb0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@RN^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@bm-wb-03^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-basic/testtdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      799a
999899a
999999a
1000099a~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw! Xswap
[?25l"Xswap" [New][noeol] 611L, 1224704C written[?12l[?25h[?25l:[?12l[?25hecho swapname
[?25l.Xtest.sw[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       b0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@RN^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@bm-wb-03^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-basic/testtdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe! Xtest
[?25l[?12l[?25h[?25l:[?12l[?25hcall rename('Xswap', swapname)
[?25l[?12l[?25h[?25l:[?12l[?25hrecover Xtest
[?25lUsing 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[?12l[?25h[?25l:[?12l[?25hcall delete(swapname)
[?25l1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       199a
299a
399a
4 99a
5 99a
Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hcall append(0, 'recovery start')
[?25lrecovery start[+][?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name] [+]                                                                    Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hlet linedollar = line('$')
[?25l[?12l[?25h[?25l:[?12l[?25hif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hq!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'recovery end')
[?25lrecovery end[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New] 3L, 29C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for tag search with !_TAG_FILE_ENCODING.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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[?12l[?25h[?25l:[?12l[?25hif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l"Xtags1.txt" [New File] 2 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l"Xtags2.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l"Xtags3.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l"Xtags1" [New File] 2 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hcall setline('.', 'Results of test83')
[?25lResults of test83
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case1:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l[No Name]                                                                       Results of test83test83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=Xtags1
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abcdefghijklmnopqrs
[?25l"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case2:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags2
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag /.BC
[?25l"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case3:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags3
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abc50
[?25l"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 4 lines, 48 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l- Some tests for setting 'number' and 'relativenumber'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden nocp nu rnu viminfo+=nviminfo
[?25l 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 donee     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  [?12l[?25h[?25l:[?12l[?25hredir @a | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! xx
[?25l"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir @b | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! #
[?25l"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 donee     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[?12l[?25h[?25l:[?12l[?25h$put ='results:'
[?25l
1
 20
 19
 18
 17ee 
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?12l[?25h[?25l
:[?12l[?25h$put a
[?25l3 more lines21
 20ee 
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?12l[?25h[?25l:[?12l[?25h$put b
[?25l3 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @c | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @d | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setlocal must NOT reset the other global value'
[?25l
 79 :setlocal must NOT reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put c
[?25l 80 
 81   number[?12l[?25h[?25l
:[?12l[?25h$put d
[?25l 82 
 83   relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l: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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @e | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @f | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setglobal MUST reset the other global value'
[?25l
:setglobal MUST reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put e
[?25lnumber[?12l[?25h[?25l
:[?12l[?25h$put f
[?25lrelativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?12l[?25h[?25l:[?12l[?25hredir @g | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:$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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset nu
[?25l88    [?12l[?25h[?25l:[?12l[?25hredir @h | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':set MUST reset the other global value'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put g
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?12l[?25h[?25l
:[?12l[?25h$put h
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic[?12l[?25h[?25l:[?12l[?25h" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?12l[?25h[?25l:[?12l[?25h" get above src/
[?25l[?12l[?25h[?25l:[?12l[?25hif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l/<<PKGBUILDDIR>>[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?12l[?25h[?25l
:[?12l[?25h$put ='Testing findfile'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?12l[?25h[?25l
:[?12l[?25hset ssl
[?25l[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','src/test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-basic[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =findfile('test19.in','testdir')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-basic/testdir[?12l[?25h[?25l:[?12l[?25h/^results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?12l[?25h[?25lExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest86.in

test1.oktest86.ok

test1.outtest86.out

test103.intest87.in

test103.oktest87.ok

test103.outtest87.out

test104.intest88.in

test104.oktest88.ok

test104.outtest88.out

test107.intest89.in

test107.oktest89.ok

test107.outtest89.out

test108.intest9.in

test108.oktest9.ok

test108.outtest9.out

test11.intest90.in

test11.oktest90.ok

test11.outtest90.out

test12.intest91.in

test12.oktest91.ok

test12.outtest91.out

test14.intest94.in

test14.oktest94.ok

test14.outtest94.out

test15.intest95.in

test15.oktest95.ok

test15.outtest95.out

test17.intest97.in

test17.oktest97.ok

test17.outtest97.out

test17a.intest98.in

test19.intest98.ok

test19.oktest98.out

test19.outtest99.in

test20.intest99.ok

test20.oktest99.out

test20.outtest_alot.vim

test22.intest_alot_latin.vim

test22.oktest_alot_utf8.vim

test22.outtest_arglist.res

test23.intest_arglist.vim

test23.oktest_assert.res

test23.outtest_assert.vim

test24.intest_assign.vim

test24.oktest_autochdir.res

test24.outtest_autochdir.vim

test25.intest_autocmd.vim

test25.oktest_autocmd_option.in

test25.outtest_autocmd_option.ok

test26.intest_autocmd_option.out

test26.oktest_autoformat_join.in

test26.outtest_autoformat_join.ok

test28.intest_autoformat_join.out

test28.oktest_backspace_opt.res

test28.outtest_backspace_opt.vim

test29.intest_breakindent.res

test29.oktest_breakindent.vim

test29.outtest_bufwintabinfo.res

test3.intest_bufwintabinfo.vim

test3.oktest_cdo.res

test3.outtest_cdo.vim

test30.intest_changelist.in

test30.oktest_changelist.ok

test30.outtest_changelist.out

test31.intest_channel.py

test31.oktest_channel.res

test31.outtest_channel.vim

test32.intest_channel_pipe.py

test32.oktest_charsearch.res

test32.outtest_charsearch.vim

test33.intest_close_count.in

test33.oktest_close_count.ok

test33.outtest_close_count.out

test34.intest_cmdline.vim

test34.oktest_command_count.vim

test34.outtest_comparators.in

test36.intest_comparators.ok

test36.oktest_comparators.out

test36.outtest_crypt.vim

test37.intest_cscope.vim

test37.oktest_cursor_func.vim

test37.outtest_delete.vim

test38.intest_diffmode.vim

test38.oktest_digraph.vim

test38.outtest_display.vim

test39.intest_erasebackword.in

test39.oktest_erasebackword.ok

test39.outtest_erasebackword.out

test4.intest_eval.in

test4.oktest_eval.ok

test4.outtest_eval.out

test40.intest_eval_func.vim

test40.oktest_ex_undo.vim

test40.outtest_execute_func.vim

test41.intest_expand.vim

test41.oktest_expand_dllpath.vim

test41.outtest_expr.vim

test42.intest_expr_utf8.vim

test42.oktest_farsi.vim

test42.outtest_feedkeys.vim

test43.intest_file_perm.vim

test43.oktest_fileformat.vim

test43.outtest_filter_cmd.vim

test44.intest_filter_map.vim

test44.oktest_fixeol.in

test44.outtest_fixeol.ok

test45.intest_fixeol.out

test45.oktest_float_func.vim

test45.outtest_fnameescape.vim

test48.intest_fnamemodify.vim

test48.oktest_fold.vim

test48.outtest_functions.vim

test49.intest_getcwd.in

test49.oktest_getcwd.ok

test49.outtest_getcwd.out

test49.vimtest_gf.vim

test5.intest_glob2regpat.vim

test5.oktest_gn.vim

test5.outtest_goto.vim

test50.intest_gui.vim

test50.oktest_hardcopy.vim

test51.intest_help_tagjump.vim

test51.oktest_hide.vim

test51.outtest_history.vim

test52.intest_hlsearch.vim

test52.oktest_increment.vim

test52.outtest_increment_dbcs.vim

test53.intest_insertcount.in

test53.oktest_insertcount.ok

test53.outtest_insertcount.out

test54.intest_job_fails.vim

test54.oktest_join.vim

test54.outtest_json.vim

test55.intest_jumps.vim

test55.oktest_lambda.vim

test55.outtest_langmap.vim

test56.intest_largefile.vim

test56.oktest_lispwords.vim

test56.outtest_listchars.in

test57.intest_listchars.ok

test57.oktest_listchars.out

test57.outtest_listlbr.in

test58.intest_listlbr.ok

test58.oktest_listlbr.out

test58.outtest_listlbr_utf8.in

test59.intest_listlbr_utf8.ok

test59.oktest_listlbr_utf8.out

test59.outtest_man.vim

test60.intest_mapping.vim

test60.oktest_marks.vim

test60.outtest_match.vim

test60.vimtest_matchadd_conceal.vim

test64.intest_matchadd_conceal_utf8.vim

test64.oktest_menu.vim

test64.outtest_messages.vim

test65.intest_mksession.vim

test65.oktest_mksession_utf8.vim

test65.outtest_modeline.vim

test66.intest_nested_function.vim

test66.oktest_netbeans.py

test66.outtest_netbeans.vim

test67.intest_normal.vim

test67.oktest_options.vim

test67.outtest_packadd.vim

test68.intest_partial.vim

test68.oktest_perl.vim

test68.outtest_popup.vim

test69.intest_profile.vim

test69.oktest_quickfix.vim

test69.outtest_regexp_latin.vim

test7.intest_regexp_utf8.vim

test7.oktest_reltime.vim

test7.outtest_ruby.vim

test70.intest_search.vim

test70.oktest_search_mbyte.in

test70.outtest_search_mbyte.ok

test72.intest_search_mbyte.out

test72.oktest_searchpos.vim

test72.outtest_set.vim

test73.intest_signs.vim

test73.oktest_smartindent.vim

test73.outtest_sort.vim

test75.intest_source.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_taglist.vim

test8.oktest_textobjects.vim

test8.outtest_timers.vim

test80.intest_true_false.vim

test80.oktest_undo.vim

test80.outtest_unlet.vim

test82.intest_usercommands.vim

test82.oktest_utf8.in

test82.outtest_utf8.ok

test83-tags2test_utf8.out

test83-tags3test_viminfo.vim

test83.intest_viml.vim

test83.oktest_visual.vim

test83.outtest_window_cmd.vim

test84.intest_window_id.vim

test84.oktest_wordcount.in

test84.outtest_wordcount.ok

test85.intest_wordcount.out

test85.oktest_writefile.vim

test85.out

: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
Xtestfile1 file1...Xtestfile1Xtestfile2 2:te 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_display.vim" 39 lines, 849 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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]                                                                  [?12l[?25h[?25l/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?12l[?25h[?25l
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_matchadd_conceal.vim" 289 lines, 9276 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vxDqpa9/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vy27TPy/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?12l[?25h[?25l:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?12l[?25h[?1l>[?1049lone
[?1049h[?1h=[?25l:.!sed -e 's/^/|    /'
[?12l[?25h[?25l:.!
:!echo one
[?1l>[?12l[?25h[?1049l
[No write since last change]
one

Press ENTER or type command to continue[?1049h[?1h=[?25l:.!!
[?12l[?25h
[?25lExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?12l[?25h[?25l7 lines filtered:.,$!./Xsed_format.sh
[?12l[?25h[?25l7 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/vQn4LVh/11removed from /tmp/vQn4LVh/11goood' added to /tmp/vQn4LVh/11removed from /tmp/vQn4LVh/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'[?1l>[?12l[?25h[?1049l
[No write since last change]
stdin not open for reading!

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25lExecuting 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]                                                                  [?12l[?25h[?25l[?12l[?25h[?25l:^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
[?1l>[?12l[?25h[?1049l
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_perl.vim" 123 lines, 3037 characters
"test_perl.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"359L, 9597C362L, 9634C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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"362L, 9634C369L, 9803C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lAlready only one window[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lExecuting 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[?1l>[?12l[?25h[?1049lloclistfoo:1:loclistfoo
[?1049h[?1h=
[?25lAlready 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_ruby.vim" 34 lines, 820 characters
"test_ruby.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"414L, 11106C417L, 11143C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '  66 their', '  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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, 11305C432L, 11518C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l1: /<<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

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_compatible_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25lError detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=
[?25lExecuting Test_file_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l3 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l2 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l4 files to edit
[?1049h[?1h=
[?25lExecuting Test_help_arg()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 1 line, 10 characters[?12;25h[?12l[?25h"Xtestout" [New File] 1 line, 10 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=
[?25lExecuting Test_startup_script()[?1000h

Executing Test_startuptime()[?1l>[?12l[?25h[?1049l[?1000l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1000h[?1049h[?1h=[?25l"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"436L, 11593C446L, 11844C written
[?1000l
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 2 lines, 24 characters[?12;25h[?12l[?25h"Xtestout" [New File] 2 lines, 24 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=[?25l"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"446L, 11844C451L, 11955C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?12l[?25h[?25l1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?12l[?25h

[?25lExecuting 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, 12429C476L, 12524C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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  2019/06/23 11:46:14

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, 12723C494L, 13030C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viml.vim" 1315 lines, 31693 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/vee0Psk/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vee0Psk/0" 13L, 248C written
"test_viml.vim" 1315L, 31693C
   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/vee0Psk/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vee0Psk/1" 14L, 281C written
"test_viml.vim" 1315L, 31693C
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/vee0Psk/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vee0Psk/2" 17L, 445C written
"test_viml.vim" 1315L, 31693C
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
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_utf8.vim" 11 lines, 440 characters[?1l>[?12l[?25h[?1049lExecuting 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"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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot.vim" 49 lines, 1258 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_OptionSet_modeline()

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" 49L, 1258C

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 Fwordfile1

cmd1

  2 Fwordfile2

cmd2

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_modeline.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             tBufReadPre              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      
Octobere        
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      
Octobere        
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      
Octobere        
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()[?12l[?25h[?25lExecuting Test_cursorhold_insert_ctrl_x()[?12l[?25h[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_empty_doau()

No matching autocommands

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" 49L, 1258C

Executing Test_func_sandbox()

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_glob2regpat_invalid()

Executing Test_glob2regpat_valid()

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] 8784L, 372352Cline 7690 of 8784 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1324 of 8784 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

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()[?12l[?25h

[?25l1[?12l[?25h
[?25l2[?12l[?25h
[?25l3[?12l[?25h
[?25l4[?12l[?25h
[?25l5[?12l[?25h
[?25l6[?12l[?25h
[?25l7[?12l[?25h
[?25l8[?12l[?25h
[?25lExecuting 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_modeline_fails_always()
"Xmodeline_fails_backupdir" 2L, 41C

"Xmodeline_fails_cdpath" 2L, 38C

"Xmodeline_fails_charconvert" 2L, 43C

"Xmodeline_fails_completefunc" 2L, 44C

"Xmodeline_fails_cscopeprg" 2L, 41C

"Xmodeline_fails_diffexpr" 2L, 40C

"Xmodeline_fails_directory" 2L, 41C

"Xmodeline_fails_equalprg" 2L, 40C

"Xmodeline_fails_errorfile" 2L, 41C

"Xmodeline_fails_exrc" 2L, 36C

"Xmodeline_fails_formatprg" 2L, 41C

"Xmodeline_fails_fsync" 2L, 37C

"Xmodeline_fails_grepprg" 2L, 39C

"Xmodeline_fails_helpfile" 2L, 40C

"Xmodeline_fails_keywordprg" 2L, 42C

"Xmodeline_fails_langmap" 2L, 39C

"Xmodeline_fails_makeef" 2L, 38C

"Xmodeline_fails_makeprg" 2L, 39C

"Xmodeline_fails_mkspellmem" 2L, 42C

"Xmodeline_fails_modelineexpr" 2L, 32C

"Xmodeline_fails_omnifunc" 2L, 40C

"Xmodeline_fails_operatorfunc" 2L, 44C

"Xmodeline_fails_printdevice" 2L, 43C

"Xmodeline_fails_patchexpr" 2L, 41C

"Xmodeline_fails_printexpr" 2L, 41C

"Xmodeline_fails_runtimepath" 2L, 43C

"Xmodeline_fails_secure" 2L, 38C

"Xmodeline_fails_shell" 2L, 37C

"Xmodeline_fails_shellcmdflag" 2L, 44C

"Xmodeline_fails_shellpipe" 2L, 41C

"Xmodeline_fails_shellquote" 2L, 42C

"Xmodeline_fails_shellredir" 2L, 42C

"Xmodeline_fails_shellxquote" 2L, 43C

"Xmodeline_fails_spellfile" 2L, 41C

"Xmodeline_fails_spellsuggest" 2L, 44C

"Xmodeline_fails_titleold" 2L, 40C

"Xmodeline_fails_viewdir" 2L, 39C

"Xmodeline_fails_viminfo" 2L, 39C

"Xmodeline_fails_undodir" 2L, 39C

"Xmodeline_fails_t_AB" 2L, 36C

"Xmodeline_fails_t_ce" 2L, 36C

"Xmodeline_fails_t_sr" 2L, 36C

"Xmodeline_fails_t_8b" 2L, 36C

Executing Test_modeline_fails_modelineexpr()
"Xmodeline_fails_foldexpr" 2L, 40C

"Xmodeline_fails_foldtext" 2L, 40C

"Xmodeline_fails_formatexpr" 2L, 42C

"Xmodeline_fails_iconstring" 2L, 42C

"Xmodeline_fails_includeexpr" 2L, 43C

"Xmodeline_fails_indentexpr" 2L, 42C

"Xmodeline_fails_rulerformat" 2L, 43C

"Xmodeline_fails_statusline" 2L, 42C

"Xmodeline_fails_tabline" 2L, 39C

"Xmodeline_fails_titlestring" 2L, 43C

Executing Test_modeline_filetype()
"Xmodeline_filetype" 2L, 24C

Executing Test_modeline_filetype_fails()
"Xmodeline_fails_filetype" 2L, 31C

Executing Test_modeline_invalid()
"Xmodeline" 2L, 13C

Executing Test_modeline_keymap()
"Xmodeline_keymap" 2L, 32C

Executing Test_modeline_keymap_fails()
"Xmodeline_fails_keymap" 2L, 35C

Executing Test_modeline_syntax()
"Xmodeline_syntax" 2L, 25C

Executing Test_modeline_syntax_fails()
"Xmodeline_fails_syntax" 2L, 32C

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 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
[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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_repeat_many()[?12l[?25h

[?25lExecuting Test_repeat_three()[?12l[?25h

[?25lExecuting Test_retain_partial()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_stop_in_callback()[?12l[?25h

[?25lExecuting 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[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_dir_delete()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting 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()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=
[?25l"colored" [New File]

Executing Test_trunc()

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()[?12l[?25h[?25ltilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 256 tests"messages" 574L, 15147C

"messages" 835L, 23678C written

[?1l>[?12l[?25h[?1049l

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_OptionSet_modeline()
    Skipped
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_empty_doau()
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_sandbox()
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_glob2regpat_invalid()
Executing Test_glob2regpat_valid()
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_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_modeline_fails_always()
Executing Test_modeline_fails_modelineexpr()
Executing Test_modeline_filetype()
Executing Test_modeline_filetype_fails()
Executing Test_modeline_invalid()
Executing Test_modeline_keymap()
Executing Test_modeline_keymap_fails()
Executing Test_modeline_syntax()
Executing Test_modeline_syntax_fails()
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_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 256 tests
SKIPPED Test_OptionSet_modeline(): test_override() missing

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   -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           
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   -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           
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
touch build-stamp-vim-basic
dh_testdir
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
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
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
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
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 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
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
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
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 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" If columns or lines are too small, create wrongtermsize.
[?25l[?12l[?25h[?25l:[?12l[?25h" (Some tests will fail. When columns and/or lines are small)
[?25l[?12l[?25h[?25l:[?12l[?25hif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l/* vim: set cin ts=4 sw=4 : */[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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] 5 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo modeline
[?25l[?12l[?25h[?25l:[?12l[?25hedit                " read modeline
[?25l"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?12l[?25h[?25l/[?12l[?25hstart of AUTO
[?25l[?12l[?25h[?25l/[?12l[?25hend of AUTO
[?25l956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?12l[?25h[?25l/^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
 */[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset tw=0 wm=60 columns=80 noai fo=croq
[?25l}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
 */[?12l[?25h[?25l/[?12l[?25hserious/e
[?25l[?12l[?25h[?25l


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

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

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

/[?12l[?25htesting2
[?25lif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?12l[?25h [?25l
/^STARTTEST
}

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

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


[?25l8 lines to indent...
9indented [?12l[?25h
   [?25l/^STARTTEST
n();
}

STARTTEST[?12l[?25h[?25l
:set cino={s,e-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,e-s
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
7 lines to indent...
8indented     {[?12l[?25h[?25l
if ( k() )[?12l[?25h[?25l
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

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

STARTTEST[?12l[?25h[?25l
:set cino= com=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino= com=
[?25l[?12l[?25h[?25l/[?12l[?25hcomment
[?25la()
{
label1:/* hmm */// comment[?12l[?25h[?25l
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set comments& comments^=s:/*,m:**,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/simple
=5j[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset comments& comments^=s:/*,m:**,ex:*/
[?25l[?12l[?25h[?25l/[?12l[?25hsimple
[?25l/*
  * A simple comment[?12l[?25h[?25l
5 lines to indent...
6indented * A simple comment[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
/*
** A different comment
*/

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

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

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

STARTTEST[?12l[?25h[?25l
:set cino=(s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/spell.o spell.c
2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(s
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
5 lines to indent...
6indented [?12l[?25h[?25l
c = c1 &&[?12l[?25h[?25l
/^STARTTEST
(c2 ||c3) && c4;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[?25l
69 lines to indent...
50
7indented [?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
/^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};[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l:[?12l[?25hset cino+=l1
[?25l[?12l[?25h[?25l
[?12l[?25h

[?25l22 lines to indent...
23indented [?12l[?25h
[?25l/^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";
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l
[?12l[?25h

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

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

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

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


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


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


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


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


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


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

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


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

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

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

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

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

STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l16 lines to indent...
17indented [?12l[?25h[?25l/^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',[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1,+2
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?12l[?25h[?25l/^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[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin cino&
[?25l[?12l[?25h[?25l/[?12l[?25hstart of define
[?25l[?12l[?25h[?25l/[?12l[?25hend of define
[?25l11 lines to indent...
12indented     BBB\
    CCC[?12l[?25h[?25l/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l226 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 */[?12l[?25h[?25l:[?12l[?25h1;/start of AUTO/,$wq! test.out
[?25l"test.out" [New] 2096L, 20188C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 sset
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes current buffer on BufEnter event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter Xxx brew
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25lstartstart
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25h.,/end of/w! Xxx   " write test file Xxx
[?25l"Xxx" [New] 7L, 124C written[?12l[?25h[?25l:[?12l[?25hset ai modeline modelines=3
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xxx             " split to Xxx, autocmd will do :brew
[?25l"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 ssetGo# 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[?12l[?25h[?25l: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[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --        this should be auto-indented[+][+][?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l:[?12l[?25h                   " Append text with autoindent to this file
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufEnter Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hbuf Xxx            " go to Xxx, no autocmd anymore
[?25l"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~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxxt          [?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --this should be in column 1[+][?12l[?25h[?25l:[?12l[?25hwq " append text without autoindent to Xxx
[?25l"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 ssetGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25hr Xxx             " include Xxx in the current file
[?25l"Xxx" 8L, 151C
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25hset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l:au! BufEnter Xxx[?12l[?25h[?25lvim: 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
[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --
# def[?12l[?25h[?25lINSERTt --defo[?12l[?25hd[?25l[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --[?12l[?25h[?25l
-- INSERTt --def:[?12l[?25hd[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l:[?12l[?25h?startstart?,$w! test.out
[?25l"test.out" [New] 20L, 330C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that deletes the current buffer on BufLeave event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave Xxx bwipe
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx               " write test file Xxx
[?25l"Xxx" [New File] 7 lines, 124 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx                         " split to Xxx
[?25l"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                                                                        [?12l[?25h[?25l:[?12l[?25hbwipe                          " delete buffer Xxx, now we're back here
[?25lTest 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[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?12l[?25h[?25l
?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l
this is some more text[?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25h                               " Append some text to this file
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out           " Write current file contents
[?25l"test.out" [New File] 8 lines, 147 characters written[?12l[?25h[?25l:[?12l[?25hbwipe test.out                 " delete alternate buffer
[?25l[?12l[?25h[?25l:[?12l[?25hau bufleave test5.in bwipe
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!                         " delete current buffer, get an empty one
[?25lError 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lthis is another test line[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 26 characters appended[?12l[?25h[?25l:[?12l[?25h                               " append an extra line to the output file
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes the buffer list, when doing ":ball".[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1   " write test file Xxx1
[?25l"Xxx1" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx1
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2    " write test file Xxx2
[?25l"Xxx2" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx2
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3    " write test file Xxx3
[?25l"Xxx3" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx3
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 bwipe
[?25l[?12l[?25h[?25l4[?12l[?25h[?25l:[?12l[?25hball                 " open window for all args, close Xxx2
[?25l"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

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

Press ENTER or type command to continue[?12l[?25h[?25l: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                                                                            [?12l[?25h
test7.in [+]                                                                     Xxx1                                                                            [?25l:[?12l[?25hw >>test.out        " Append contents of second window (Xxx1)
[?25l"test.out" 4 lines, 77 characters appended[?12l[?25htest7.in [+]                                                                    Xxx1                                                                             [?25l:[?12l[?25h/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25lsearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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('$')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

E203: Autocommands deleted or unloaded buffer to be written

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

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

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

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! BufWritePre
[?25lstart of Xxx1test
end of Xxx[?12l[?25h[?25l:[?12l[?25hfunc CloseAll()
[?25l
:  [?12l[?25h  let i = 0

[?25l:  [?12l[?25h  while i <= bufnr('$')

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

[?25l:      [?12l[?25h      exe  i . "bunload"

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let i += 1

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfunc WriteToOut()
[?25l
:  [?12l[?25h  edit! test.out

[?25l:  [?12l[?25h  $put ='VimLeave done'

[?25l:  [?12l[?25h  write

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               [?12l[?25h[?25l:[?12l[?25hset viminfo='100,nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufUnload * call CloseAll()
[?25l[?12l[?25h[?25l:[?12l[?25hau VimLeave * call WriteToOut()
[?25l[?12l[?25h[?25l:[?12l[?25he small.vim
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp mbyte.vim
[?25l"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?12l[?25h[?25l:[?12l[?25hq
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Bufleave autocommand that deletes the buffer we are about to edit.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave test9.in bwipe yy
[?25l[?12l[?25h[?25l:[?12l[?25he yy
[?25lE143: Autocommands unexpectedly deleted new buffer yy[?12l[?25h[?25l:[?12l[?25h/^start of/,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 2 lines, 42 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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

"
[?25l:  [?12l[?25h:else

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

[?25l:  [?12l[?25h:endif
[?25l:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?12l[?25h[?25l:[?12l[?25hexe "normal " . tt
[?25lABC !a^Og^G8[?12l[?25h[?25l:[?12l[?25hunlet tt
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset vb
[?25l[?12l[?25h[?25l/[?12l[?25h^Piece
[?25l[?12l[?25h[?25l{A[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25ltt m2 {[?12l[?25h[?25l{B[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25lt2;} e2tt m3 {[?12l[?25h[?25l{C[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l{DC[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{EA[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{F[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}G e1[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h
[?25lif (x){t3;}} e3[?12l[?25h[?25l}H e3[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l
}[?12l[?25h[?5h[?5l[?25l}I[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}JH e3[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 8 characters appended[?12l[?25h[?25l}K e2[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l{LF[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^foobar
[?25lfoobar[?12l[?25h[?25l
:[?12l[?25hlet startline = line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('foobar', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25hcall search('^$', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('^$', 'bc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l/[?12l[?25htwo
[?25lsubstitute foo asdf

one two[?12l[?25h[?25l
:[?12l[?25hcall search('.', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hs/foo/bar/
[?25lbar
[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25lsearch()
0
1
1
two
foo[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hkeeppatterns s/asdf/xyz/
[?25lxyz[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25l
^substitute[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l
/[?12l[?25hbar /e
[?25l[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l

:[?12l[?25hkeeppatterns /xyz
[?25l[?12l[?25h[?25l
/bar /exyz[?12l[?25h[?25l:[?12l[?25h/^search()/,$w >>test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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


3 more lines
aaaaaa3 more lines[?12l[?25h[?25l
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?12l[?25h
[?25l:[?12l[?25h?test for :left?,$w! test.out
[?25l"test.out"[New] 111L, 2304C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset smarttab expandtab ts=8 sw=4
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lSTARTTEST
: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
[?12l[?25h[?25l
/[?12l[?25hsome
[?25lstart textsome test text[?12l[?25h[?25l    ome test text[?12l[?25h[?25l
:[?12l[?25hset noexpandtab
[?25l[?12l[?25h[?25l/[?12l[?25hother
[?25ltest textother test text[?12l[?25h[?25l    ther test text[?12l[?25h[?25l
a cde[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs and then backspacing to undo it
[?25l[?12l[?25h
    [?25l[?12l[?25h[?25l
f ghi[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs
[?25l[?12l[?25h
    [?25l     hi[?12l[?25h[?25l
test text[?12l[?25h[?25l
:[?12l[?25h" Test that copyindent works with expandtab set
[?25l[?12l[?25h[?25l:[?12l[?25hset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?12l[?25h[?25l{x[?12l[?25h[?25l
:[?12l[?25hset nosol
[?25l[?12l[?25h[?25l/[?12l[?25hSecond line/
[?25l
Second line beginning with whitespace[?12l[?25h[?25l
  with whitespace[?12l[?25h[?25l
:[?12l[?25h?^start?,$w! test.out
[?25l"test.out" [New File] 10 lines, 121 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Ox^[jAy^[kdd[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25ly
Ox^[jAy^[kdd[?12l[?25h[?25l

2 changes; before #1  0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l1 line less; before #1  0 seconds ago    [?12l[?25h[?25l:[?12l[?25hquit!
[?25l: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[?12l[?25h[?25l[?12l[?25h[?25l
Ox^[jAy^[kdd[?12l[?25h[?25l
/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l/[?12l[?25h456$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25l4
234[?12l[?25h[?25l5
345[?12l[?25h[?25l[?12l[?25h[?25lstart here56
234start here67
345start here78[?12l[?25h[?25l:[?12l[?25h/56$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for file with some lines ending in CTRL-M, some not^M[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for regexp with backslash and other special characters inside [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[\t\]]
[?25l[?12l[?25h[?25ltext test tex[?12l[?25h[?25l/[?12l[?25h[]y]
[?25l[?12l[?25h[?25ltest text[?12l[?25h[?25l/[?12l[?25h[\]]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[y^]
[?25l[?12l[?25h[?25lst text[?12l[?25h[?25l/[?12l[?25h[$y]
[?25l[?12l[?25h[?25lxt test text[?12l[?25h[?25l/[?12l[?25h[\x61]
[?25l[?12l[?25h[?25lext test text  x61[?12l[?25h[?25l/[?12l[?25h[\x60-\x64]
[?25l[?12l[?25h[?25lext test text  x60-x64[?12l[?25h
[?25l/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text  x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text  o143[?12l[?25h[?25l text test text  o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text  o140-o144[?12l[?25h[?25lt text test text  o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text  o41 7[?12l[?25h[?25l text test text  o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text  \%x42[?12l[?25h[?25lest text  \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text  \%o103[?12l[?25h[?25lst text  \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text  [\x00][?12l[?25h[?25ltest text  [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext  [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text  [\x00-\x10][?12l[?25h[?25l
test \xyztext test text  [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text  [\x-z][?12l[?25h[?25l
test text tev\uyst text  [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text  [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//
[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
 [?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
 [?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" 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
[New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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")[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h:  if has("ebcdic")

[?25l:    [?12l[?25h:    execute "normal o" . i . "\047"

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    execute "normal o" . i . "\033"

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i % 2

[?25l:    [?12l[?25h:    normal Ax^^[

[?25l:    [?12l[?25h:    if i == 9

[?25l:      [?12l[?25h:      break

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if i == 5

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      let j = 9

[?25l:      [?12l[?25h:      while j > 0

[?25l:[?12l[?25h:        if has("ebcdic")

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x27"

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x1b"

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        let j = j - 1

[?25l:[?12l[?25h:      endwhile

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i == 9

[?25l:    [?12l[?25h:    if has("ebcdic")

[?25l:      [?12l[?25h:      execute "normal Az\047"

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      execute "normal Az\033"

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endwhile
[?25l:  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[?12l[?25h[?25l
:[?12l[?25hunlet i j
[?25l[?12l[?25h[?25l:[?12l[?25h't,$w! test.out
[?25l"test.out" [New File] 10 lines, 159 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for sourcing a file with CTRL-V's at the end of the line[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25l
sd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25hd  [?25lsd^[[?12l[?25h^[  [?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l
:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 cpoptionss+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for joining lines and marks in them[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j
[?25l[?12l[?25h[?25l/[?12l[?25hfirstline/
[?25l[?12l[?25h
[?25l/[?12l[?25h^STARTTEST/-1
[?25l+-1
37 fewer linesSTARTTEST
/^{/+1[?12l[?25h[?25lmore linesasdfasdf.
asdf[?12l[?25h[?25lasdf
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop!
ert[?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?12l[?25h  er[?25lt  e[?12l[?25h
zx cv[?25len[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv[?25l
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions-=j nojoinspaces compatible
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l.  as dfg? hjkl iop! ert[?12l[?25h[?25lt  a[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l
/[?12l[?25hSTARTTEST/-2
[?25l+-2
4 fewer lines[?12l[?25h[?25l/^STARTTEST

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

STARTTEST[?12l[?25h[?25l
:" Test with backspace set to the non-compatible setting
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" Test with backspace set to the non-compatible setting
[?25l[?12l[?25h[?25l/[?12l[?25h^\d\+ this
[?25l[?12l[?25h[?25l:[?12l[?25hset cp bs=2
[?25l[?12l[?25h[?25l[?12l[?25hd    [?25lvim2[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?25ld3[?12l[?25h[?25l:[?12l[?25hiunmap <c-u>
[?25l[?12l[?25h[?25l[?12l[?25h
[?25l:[?12l[?25h" Test with backspace set to the compatible setting
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace= visualbell
[?25l[?12l[?25h[?25lvim5[?12l[?25h[?5h[?5l[?5h[?5l[?25ld vim6[?12l[?25h6    [?25lzwei[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?5h[?5l[?5h[?5l[?25lvim7[?12l[?25h
[?25l:[?12l[?25hset compatible novisualbell
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTj3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code!^M// Make sure backspacing does not remove this comment leader.^[0i^HH^[
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?12l[?25h
[?25l/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?12l[?25h
[?25l:[?12l[?25h.,+8join
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?12l[?25h
[?25l/* 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?[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lShould the next comment leader be left alone?  Yes.


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


:[?12l[?25h.,+2join
[?25l/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?12l[?25h
[?25l/* Here the comment leader should be left intact. */ // And so should this one.[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();[?12l[?25h[?25l
[?12l[?25h[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;[?12l[?25h[?25l
[?12l[?25h[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+5join
[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25lSome code!
// Make sure backspacing does not remove this comment leader.[?12l[?25h
[?25l// Make sure backspacing does not remove this comment leader.
}[?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:?firstline?+1,$w! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l74 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 brackett) 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 liness. This comment should retain its comment leader.># Note that the last character of the ending comment leader (left angle brackett) 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 liness. This comment should retain its comment leader.

Some code!// Make sure backspacing does not remove this comment leader.
}[?12l[?25h[?25l:[?12l[?25h?firstline?+1,$w! test.out
[?25l"test.out" [New File] 97 lines, 3018 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for commands that close windows and/or buffers:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h
[?25l1[?12l[?25h[?25l:[?12l[?25h$w! Xtest1
[?25l"Xtest1" [New File] 1 line, 11 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h$w! Xtest2
[?25l"Xtest2" [New File] 1 line, 11 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h$w! Xtest3
[?25l"Xtest3" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hn! Xtest1 Xtest2
[?25l"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test for working :n when hidden set; write "testtext 2"
[?25l[?12l[?25h[?25l:[?12l[?25hn
[?25l"Xtest2" 1 line, 11 characters2[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25h" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hrew
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hrew
[?25l"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hsp
[?25lXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hn Xtest2 Xtest3
[?25l"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 [?12l[?25h[?25l:[?12l[?25hall
[?25l"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25lXtest1 [+]                                                                      Xtest2 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 2 2" twice
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l1 1[?12l[?25h[?25l:[?12l[?25hq!
[?25ltesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25hunhide
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hhide
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3"
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25ltesttext 3 3[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 1 line, 11 characters1[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3 3"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest3
[?25l"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 1"
[?25l[?12l[?25h[?25l3 3[?12l[?25h[?25l:[?12l[?25hclose!
[?25l1~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest4
[?25l"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?12l[?25h[?25l 4[+][?12l[?25h[?25l:[?12l[?25hall!
[?25l"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[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25ltesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":q!" and hidden buffer.
[?25l[?12l[?25h[?25l:[?12l[?25hbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp Xtest1
[?25l"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[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25lXtest1                                                                           test31.in                                                                       [?12l[?25h[?25l:[?12l[?25hbw!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[?12l[?25h[?25l:[?12l[?25hbot sp Xtest2
[?25l"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hbot sp Xtest3
[?25l"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hwincmd t
[?25lXtest1 [+]                                                                      Xtest3 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hhide
[?25ltesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hq!
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hq!
[?25lE37: No write since last change

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'lisp'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset lisp
[?25l[?12l[?25h[?25l/[?12l[?25h^(defun
[?25l[?12l[?25h[?25l22 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[?12l[?25h[?25l:[?12l[?25h/^(defun/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction Table(title, ...)
[?25l
:  [?12l[?25h:  let ret = a:title

[?25l:  [?12l[?25h:  let idx = 1

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

[?25l:    [?12l[?25h:    exe "let ret = ret . a:" . idx

[?25l:    [?12l[?25h:    let idx = idx + 1

[?25l:    [?12l[?25h:  endwhile

[?25l:  [?12l[?25h:  return ret

[?25l:  [?12l[?25h:endfunction
[?25l: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[?12l[?25h[?25l

:[?12l[?25hfunction Compute(n1, n2, divname)
[?25l
:  [?12l[?25h:  if a:n2 == 0

[?25l:    [?12l[?25h:    return "fail"

[?25l:    [?12l[?25h:  endif

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

[?25l:  [?12l[?25h:  return "ok"

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

:[?12l[?25hfunc Expr1()
[?25l
:  [?12l[?25h:  normal! v

[?25l:  [?12l[?25h:  return "111"

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

:[?12l[?25hfunc Expr2()
[?25l
:  [?12l[?25h:  call search('XX', 'b')

[?25l:  [?12l[?25h:  return "222"

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

:[?12l[?25hfunc ListItem()
[?25l
:  [?12l[?25h:  let g:counter += 1

[?25l:  [?12l[?25h:  return g:counter . '. '

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

:[?12l[?25hfunc ListReset()
[?25l
:  [?12l[?25h:  let g:counter = 0

[?25l:  [?12l[?25h:  return ''

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

:[?12l[?25hfunc FuncWithRef(a)
[?25l
:  [?12l[?25h:  unlet g:FuncRef

[?25l:  [?12l[?25h:  return a:a

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

:[?12l[?25hlet g:FuncRef=function("FuncWithRef")
[?25l[?12l[?25h[?25l:[?12l[?25hlet counter = 0
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> ( ListItem()
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> [ ListReset()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> + Expr1()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> * Expr2()
[?25l[?12l[?25h[?25l:[?12l[?25hlet retval = "nop"
[?25l[?12l[?25h[?25l/[?12l[?25h^here
[?25l[?12l[?25h[?25lher$=[?12l[?25hTable("xxx", 4, "asdf")
[?25l=[?12l[?25hCompute(45, 0, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hCompute(45, 5, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hg:FuncRef(333)

[?25lError detected while processing function Expr1:

line    1:

E523: Not allowed here

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

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

ing

[?25l:  [?12l[?25h:    " rhs of &&.

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

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

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:    $put ='!!! Unexpected exception:'

[?25l:  [?12l[?25h:    $put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l:    $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[?12l[?25h[?25l
:[?12l[?25h$-9,$w! test.out
[?25l"test.out" [New File] 10 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25hdelfunc Table
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Compute
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr1
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr2
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListItem
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListReset
[?25l[?12l[?25h[?25l:[?12l[?25hunlet retval counter
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest character classes in regexp using regexpengine 0, 1, 2.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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







:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l




~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


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


~                                                                               [?12l[?25h[?25l





:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

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

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







:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 --[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt=ver,jump
[?25l[?12l[?25h[?25l:[?12l[?25hset scrolloff=2
[?25l[?12l[?25h[?25l:[?12l[?25hset nowrap
[?25l[?12l[?25h[?25l:[?12l[?25hset noequalalways
[?25l[?12l[?25h[?25l:[?12l[?25hset splitbelow
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST using two windows open to one buffer, one extra empty window
[?25l[?12l[?25h[?25l:[?12l[?25hsplit
[?25l^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                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 8
[?25l:" ***** 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[?12l[?25h[?25l/[?12l[?25h^start of window 1$/
[?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 7
[?25l[?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?12l[?25h[?25l
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h

[?25l. 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[?12l[?25htest37.in                                                                        [No Name]                                                                       [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    


[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?12l[?25htest37.in                                                                        test37.in                                                                       test37.in                                                                       test37.in                                                                        test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       test37.in                                                                        test37.in                                                                        test37.in                                                                       test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    
test37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" ****** tests using two different buffers *****
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25lstart of window 20000000000[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of window 2$/,/^end of window 2$/y
[?25l18 lines yanked[?12l[?25h[?25l:[?12l[?25hnew
[?25ltest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        test37.in                                                                        [No Name]                                                                       [?25l4 more lines[+][?12l[?25h


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


[?25l. 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[?12l[?25h[No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    

[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?12l[?25h[?25l2[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

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

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST syncbind
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest 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[?12l[?25h


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 201010202[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25h[?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25h[?25l

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


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lzt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
^Wj:
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" ***** done with tests *****
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out             " Write contents of this file
[?25l"test.out" [New File] 33 lines, 1329 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25l^[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
[?12l[?25h[?25lTest 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[?12l[?25h[?25l
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l
abcdefghijk      lmn    opq rstuvwxyz[?12l[?25h[?25l:[?12l[?25hset ai
[?25l[?12l[?25h[?25l:[?12l[?25hset bs=2
[?25l[?12l[?25h[?25l 1
 A BCDEFGHIJ    KL        MNOPQR[?12l[?25h[?25l:[?12l[?25hka
[?25l[?12l[?25h[?25labcdefghijk      lmn    opq rstuvwxyz[?12l[?25h
[?25l 1[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25lab      cdefghi jkl[?12l[?25h
[?25lAB......CDEFGHI.J[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25labcdefghijklmnopqrst[?12l[?25h
[?25lAB      IJKLMNO QR[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 13 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotegcc -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
st
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l/[?12l[?25h^abcde
[?25lbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?12l[?25h[?25l
:[?12l[?25h" Test shift-right of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25habcd[?25l[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?12l[?25h     ef[?25l[?12l[?25h[?25lg[?12l[?25h[?25lhg[?12l[?25h[?25lih[?12l[?25h[?25lji[?12l[?25h[?25l        ghijklm        ghijklm[?12l[?25h[?25l:[?12l[?25h" Test shift-left of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25h[?25l[?12l[?25h[?25li[?12l[?25h[?25l [?12l[?25h[?25l


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


abcd[?25l[?12l[?25h[?25le[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lbccf[?12l[?25h[?25lcddg[?12l[?25h[?25ld  h[?12l[?25h[?25lqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?12l[?25h
axyz[?25l:[?12l[?25h" Test block-change
[?25l[?12l[?25h

[?25l[?12l[?25h[?25lj[?12l[?25h[?25li[?12l[?25h[?25l     ghijkl[?12l[?25h[?25lef  gkl[?12l[?25h[?25lmnomnomno[?12l[?25h[?25l:[?12l[?25h$-4,$w! test.out
[?25l"test.out" [New File] 5 lines, 108 characters written[?12l[?25h[?25l:[?12l[?25h" Test block-insert using cursor keys for movement
[?25l[?12l[?25h[?25l/[?12l[?25h^aaaa/
[?25lsearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?12l[?25h[?25l:[?12l[?25h/^aa/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?12l[?25h[?25l/[?12l[?25hxaaa$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?12l[?25h[?25l:[?12l[?25h/xaaa$/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the last <C-v>$
[?25l[?12l[?25h[?25l/[?12l[?25h^A23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?12l[?25h[?25l/[?12l[?25h^B23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?12l[?25h[?25l/[?12l[?25h^C23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25lab
456ab7[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all enc=utf-8
[?25laaa  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[?12l[?25h[?25l


:[?12l[?25h/\t\tline
[?25lsearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25lxxx[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 4 lines, 49 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block append when virtualedit=all
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25lx   line1x   line2x   line3[?12l[?25h[?25l:[?12l[?25hset ve= enc=latin1
[?25lx     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[?12l[?25h[?25l
the [?25l
:[?12l[?25h" VU must uppercase a whole line
[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" same, when it's the last line in the buffer
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" Uppercase two lines
[?25l[?12l[?25h[?25l
blah didoh dut[?12l[?25h[?25l
doh dut [?12l[?25h[?25lblah di t[?12l[?25h[?25l
BLAH DIDOH DUT[?12l[?25h[?25l
:[?12l[?25h" Uppercase part of two lines
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l
333the yo[?12l[?25h[?25lut[?12l[?25h[?25lUTUSSEUU END
333THE YOUTU[?12l[?25h[?25l

:[?12l[?25h" visual replace using Enter or NL
[?25l[?12l[?25h
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^M65
98^M65
98^M65[?12l[?25h
98
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^@65
98^@65
98^@65[?12l[?25h[?25l


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


:[?12l[?25h/^the/,$w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for "*Cmd" autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l"Xxx" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestA 0r Xxx|$del
[?25l[?12l[?25h[?25l:[?12l[?25he XtestA^I^I^I" will read text of Xxd instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?12l[?25h[?25l:[?12l[?25hw^I^I^I^I" will append a line to the file
[?25lwrite[?12l[?25h[?25l:[?12l[?25hr XtestA^I^I^I" should not read anything
[?25lE484: Can't open file XtestA[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" now we have:
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileReadCmd XtestB '[r Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWriteCmd XtestC '[,']copy $
[?25l[?12l[?25h[?25ltest401[?12l[?25h[?25l:[?12l[?25h4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l        test401end of Xxx[?12l[?25h[?25l:[?12l[?25hr XtestC^I^I^I" should not read anything
[?25lE484: Can't open file XtestC[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw >>XtestD^I^I^I" will write all lines to test.out
[?25l"test.out" [New File] 9 lines, 91 characters written[?12l[?25h[?25l:[?12l[?25h$r XtestD^I^I^I" should not read anything
[?25lE484: Can't open file XtestD[?12l[?25h[?25l:[?12l[?25h$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestE 0r test.out|$del
[?25l[?12l[?25h[?25l:[?12l[?25hsp XtestE^I^I^I" split window with test.out
[?25l"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?12l[?25h[?25lasdf[+][?12l[?25hXtestE [+]                                                                       XtestA                                                                          [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestE w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hwall^I^I^I^I" will write other window to test.out
[?25l"test.out" 11 lines, 107 characters written   [?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iasdf
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 10^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 11^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file of over 100 Kbyte[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 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[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"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[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file starting with a BOM[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l: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^@[?12l[?25h[?25l:[?12l[?25hset fileencodings=ucs-bom,latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Write the test files
[?25l[?12l[?25h[?25l:[?12l[?25h/^latin-1$/+1w! Xtest0
[?25l"Xtest0" [New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8$/+1w! Xtest1
[?25l"Xtest1" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8-err$/+1w! Xtest2
[?25l"Xtest2" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2$/+1w! Xtest3
[?25l"Xtest3" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2le$/+1w! Xtest4
[?25l"Xtest4" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add a NUL byte after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4                      " Ignore change from setting 'ff'
[?25l"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hset ffs& nobinary              " Allow default test42.in format
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix                    " Format for files to write
[?25l[?12l[?25h[?25l:[?12l[?25h/^ucs-4$/+1w! Xtest5
[?25l"Xtest5" [converted][New File] 1 line, 30 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-4le$/+1w! Xtest6
[?25l"Xtest6" [converted][New File] 1 line, 35 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add three NUL bytes after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6                      " ! for when setting 'ff' is a change
[?25l"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
~   [?25l
^@^@^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest0
[?25l"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir! >test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=latin1

nobomb

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

  bomb

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

nobomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8<80>err
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 17 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest2x
[?25l"Xtest2x" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest3
[?25l"Xtest3" [converted] 1 line, 8 charactersucs-2[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest3x
[?25l"Xtest3x" [converted][New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4
[?25l"Xtest4" [converted] 1 line, 10 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest4x
[?25l"Xtest4x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest5
[?25l"Xtest5" [converted] 1 line, 10 characters4[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest5x
[?25l"Xtest5x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6
[?25l"Xtest6" [converted] 1 line, 12 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest6x
[?25l"Xtest6x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check the files written with BOM
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25h$r Xtest0x
[?25l"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?12l[?25h[?25l
:[?12l[?25h$r Xtest1x
[?25l"Xtest1x" 1 line, 9 characters
<feff>utf-8[?12l[?25h[?25l
:[?12l[?25h$r Xtest2x
[?25l"Xtest2x" 1 line, 17 characters
utf-8<80>err[?12l[?25h[?25l
:[?12l[?25h$r Xtest3x
[?25l"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest4x
[?25l"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest5x
[?25l"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest6x
[?25l"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l
:[?12l[?25hset nobin ff&               " Write the file in default format
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 44 lines, 409 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

1 more line; before #2  0 seconds agobar[?12l[?25h[?25l
9 foo
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 11L, 137C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
: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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l:[?12l[?25h" c
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
:[?12l[?25h" d
[?25l[?12l[?25h[?25l/[?12l[?25h[\u4f7f\u5929]\+
[?25l
:[?12l[?25h" e
[?25l[?12l[?25h[?25l/[?12l[?25h\%U12345678
[?25l
:[?12l[?25h" f
[?25l[?12l[?25h[?25l/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
:[?12l[?25h" g
[?25l[?12l[?25h[?25l/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" j Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?12l[?25h[?25l:[?12l[?25h$put =['dog(a', 'cat(']
[?25ldog(acat([+][?12l[?25h[?25l/[?12l[?25h(/e+
[?25l/(/e+1
[?12l[?25h[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hbd!
[?25l1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?12l[?25h[?25la[?12l[?25h[?25l
cat(
[?12l[?25h[?25l
:[?12l[?25hw!
[?25l"test.out" 25L, 271C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("."))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for folding. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We also need the +syntax feature here.
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("syntax")
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   w! test.out

[?25l:  [?12l[?25h   qa!

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

[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?12l[?25h[?25l:[?12l[?25hcall append("$", getline(foldclosed(".")))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with markers.
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=marker fdl=1 fdc=3
[?25l   :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[?12l[?25h[?25l/[?12l[?25h^5
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", "marker " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l{{ |  6 ff }}}[?12l[?25h[?25l-{|
|
|
|[?12l[?25h[?25l


:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l6 ff }}}
 7 gg
 8 hh[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with indent
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=indent sw=2
[?25l-++---  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[?12l[?25h[?25l/[?12l[?25h^2 b
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l
-  2 bb[?12l[?25h[?25l
|-    3 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", "indent " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test syntax folding
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=syntax fdl=0
[?25l          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[?12l[?25h[?25l:[?12l[?25hsyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hsyn region Fd1 start="ee" end="ff" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd2 start="gg" end="hh" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?12l[?25h[?25l   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?12l[?25h[?25l:[?12l[?25hcall append("$", "folding " . getline("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l
--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[?12l[?25h[?25l commentend- 
|-

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

[?25l:  [?12l[?25h  if l =~ "bb$"

[?25l:    [?12l[?25h    return 2

[?25l:    [?12l[?25h  elseif l =~ "gg$"

[?25l:    [?12l[?25h    return "s1"

[?25l:    [?12l[?25h  elseif l =~ "ii$"

[?25l:    [?12l[?25h    return ">2"

[?25l:    [?12l[?25h  elseif l =~ "kk$"

[?25l:    [?12l[?25h    return "0"

[?25l:    [?12l[?25h  endif

[?25l:  [?12l[?25h  return "="

[?25l:  [?12l[?25hendfun
[?25l   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?12l[?25h[?25l:[?12l[?25hset fdm=expr fde=Flvl()
[?25l++-- 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---------------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l/[?12l[?25hbb$
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hcall append("$", "expr " . foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hhh$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hii$
[?25l-9 ii||a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hkk$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h/^last/+1,$w! test.out
[?25l"test.out" [New File] 18 lines, 96 characters written[?12l[?25h[?25l:[?12l[?25hdelfun Flvl
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l   
   
   
   ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?12l[?25h[?25lTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?12l[?25h[?25l:[?12l[?25hset fdm=indent
[?25l++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l:[?12l[?25h1m1
[?25l[?12l[?25h[?25l:[?12l[?25hm0
[?25l3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?12l[?25h[?25l:[?12l[?25h%w >> test.out
[?25l"test.out" 5 lines, 77 characters appendedtest.out [+]]  [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of 'virtualedit'.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswf
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


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

"r"     
a^Vb^Msdabcv6efi.him0kl[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   When past the end of a line that ends in a single character "b" skips
[?25l[?12l[?25h[?25l:[?12l[?25h"    that word.
[?25l[?12l[?25h
[?25l$7[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'i' works
[?25l[?12l[?25h
'i'   [?25l<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'C' works
[?25l[?12l[?25h
'C'   [?25l$<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'a' works
[?25l[?12l[?25h
'a'   [?25l <-- should be 4 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'A' works
[?25l[?12l[?25h
'A'   [?25l<-- should be 0 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'D' works
[?25l[?12l[?25h
'D'   [?25l<-- 'D' should be intact[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for yank bug reported by Mark Waggoner.
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=block
[?25l[?12l[?25h
[?25l[?12l[?25h[?25laaa[?12l[?25h[?25laaablock of 4 lines yanked[?12l[?25h[?25l3 more linesa
aa [?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" beyond the end of the line
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l/[?12l[?25h^"r"
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h"r"    [?25lx[?12l[?25h[?25lx<-- should be 'x'[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" on a tab
[?25l[?12l[?25h[?25l:[?12l[?25h" Note that for this test, 'ts' must be 8 (the default).
[?25l[?12l[?25h
"r"  [?25lx[?12l[?25h[?25lx  <-- should be '  x  '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test to make sure 'x' can delete control characters
[?25l[?12l[?25h[?25l:[?12l[?25hset display=uhex
[?25l<16>b<0d>sd[?12l[?25h
[?25l<16>b<0d>sd[?12l[?25h[?25lb<0d>sd[?12l[?25h[?25l<0d>sd[?12l[?25h[?25lsd[?12l[?25h[?25ld[?12l[?25h[?25l[?12l[?25h[?25l[This line should contain only the text between the brackets.][?12l[?25h[?25l:[?12l[?25hset display=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?12l[?25h[?25l:[?12l[?25h"   Roy <royl@netropolis.net>.
[?25l[?12l[?25h
[?25l[?12l[?25h   [?25lv[?12l[?25hv   [?25li[?12l[?25hi   [?25lm   <-- should show the name of a noted text editor[?12l[?25h
[?25l[?12l[?25h    [?25l6[?12l[?25h6   [?25l.[?12l[?25h.   [?25l0   <-- and its version number[?12l[?25h[?25l
[?12l[?25h
    [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for yanking and pasting using the small delete register
[?25l[?12l[?25h[?25l/[?12l[?25h^foo
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l, bar[?12l[?25h, [?25l[?12l[?25h[?25lba[?12l[?25h[?25l[?12l[?25h[?25lfoo[?12l[?25h
keyw[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 23 lines, 479 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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=#000ff00 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

EndOfBuffer    xxx links to NonText

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

Directory      xxx term=bold ctermfg=4 guifg=Blue

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 guibg=Yellow

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

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline ctermfg=3 guifg=Brown

CursorLineNr   xxx term=bold ctermfg=3 gui=bold guifg=Brown

Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen

StatusLine     xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse

StatusLineNC   xxx term=reverse cterm=reverse gui=reverse

VertSplit      xxx term=reverse cterm=reverse gui=reverse

Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=LightGrey

VisualNOS      xxx term=bold,underline cterm=bold,underline gui=bold,underline

WarningMsg     xxx term=standout ctermfg=1 guifg=Red

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

Foldedxxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue

guibg=LightGrey

FoldColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=LightBlue

DiffChange     xxx term=bold ctermbg=5 guibg=LightMagenta

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

guibg=LightCyan

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

SignColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue 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=DarkCyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=LightMagenta

PmenuSelxxx ctermfg=0 ctermbg=7 guibg=Grey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=0 guibg=Black

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

gui=underline guibg=LightGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=7 guibg=Grey90

CursorLine     xxx term=underline cterm=underline guibg=Grey90

ColorColumn    xxx term=reverse ctermbg=1 guibg=LightRed

Cursorxxx guifg=bg guibg=fg

lCursorxxx guifg=bg guibg=fg

MatchParen     xxx term=reverse ctermbg=6 guibg=Cyan

Normalxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Search
[?25l
Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow

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

0ff00 guibg=Cyan
[?25lE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 term= cterm=
[?25lE418: Illegal value: cterm=

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group3
[?25l
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear NewGroup
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?12l[?25h[?25l
:[?12l[?25hhi NewGroup
[?25l
NewGroupxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 NONE
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?12l[?25h[?25l
:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hhi Group3
[?25l
Group3xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Crash term='asdf
[?25lE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l:hi NewGroup
:hi Group2
:hi Group3[?12l[?25h[?25l
:[?12l[?25h" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h%s/ctermfg=\d*/ctermfg=2/
[?25l2
[?12l[?25h[?25l:[?12l[?25h%s/ctermbg=\d*/ctermbg=3/
[?25l3
[?12l[?25h[?25l:[?12l[?25h" filter out possibly translated error message
[?25l[?12l[?25h[?25l:[?12l[?25h%s/E475: [^:]*:/E475:/
[?25lterm='asdf[?12l[?25h[?25l:[?12l[?25h" fix the fileformat
[?25l[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hwq!
[?25l"test.out" 20 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for string and html text objects. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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>-[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l[?12l[?25h[?25lfo[?12l[?25h
[?25l[?12l[?25h[?25l'foo'[?12l[?25h[?25l 'bar'[?12l[?25h[?25l
xxxxxxxxxxxx
[?12l[?25h
[?25lblah[?12l[?25h
[?25l"[?12l[?25h
[?25l[?12l[?25h[?25l' rep[?12l[?25h[?25lyyyyy[?12l[?25h[?25l:[?12l[?25hset quoteescape=+*-
[?25l[?12l[?25h[?25l` b`la[?12l[?25h[?25l[?12l[?25h[?25l" sdf"[?12l[?25h[?25l" [?12l[?25h[?25l"[?12l[?25h[?25l asdf" sdf [?12l[?25h[?25lah" sdf "
voo "[?12l[?25h[?25lzzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^<begin
[?25l[?12l[?25h
[?25l</i>asdf</b>-[?12l[?25h[?25l
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?12l[?25h
[?25l</b>-[?12l[?25h[?25l
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?12l[?25h[?25lasdf</b>-[?12l[?25h[?25l
-<b>asdX<i>as<b />df</i>asdf</b>-[?12l[?25h
[?25l
--[?12l[?25h[?25l
-<b>
-[?12l[?25h[?25l<b></b>[?12l[?25h[?25l
</begin>[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l
b[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l
bc[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l
c[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l
a[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, -1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 4) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 3, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 2) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 1, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 2, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 4) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25h/^start:/,/^end:/wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 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] 45 lines, 284 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test(...)
[?25l
:  [?12l[?25h:lang C

[?25l:  [?12l[?25h:" Creating List directly with different types

[?25l:  [?12l[?25h:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:$put =string(l[-4])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-5])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List slices

[?25l:  [?12l[?25h:$put =string(l[:])

[?25l:  [?12l[?25h:$put =string(l[1:])

[?25l:  [?12l[?25h:$put =string(l[:-2])

[?25l:  [?12l[?25h:$put =string(l[0:8])

[?25l:  [?12l[?25h:$put =string(l[8:-1])

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" List identity

[?25l:  [?12l[?25h:let ll = l

[?25l:  [?12l[?25h:let lx = copy(l)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Creating Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l:  [?12l[?25h:$put =string(d) . d.1

[?25l:  [?12l[?25h:$put =string(sort(keys(d)))

[?25l:  [?12l[?25h:$put =string (values(d))

[?25l:  [?12l[?25h:for [key, val] in items(d)

[?25l:    [?12l[?25h:  $put =key . ':' . string(val)

[?25l:    [?12l[?25h:  unlet key val

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:call extend  (d, {3:33, 1:99})

[?25l:  [?12l[?25h:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  call extend(d, {3:333,4:444}, "error")

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:call filter(d, 'v:key =~ ''[ac391]''')

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary identity

[?25l:  [?12l[?25h:let dd = d

[?25l:  [?12l[?25h:let dx = copy(d)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items with :unlet

[?25l:  [?12l[?25h:unlet l[2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:let l = range(8)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:unlet l[:3]

[?25l:    [?12l[?25h:unlet l[1:]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:$put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:unlet d.c

[?25l:  [?12l[?25h:unlet d[-1]

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:1]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:3]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:4]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:5]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-1:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-3:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-4:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-5:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-6:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" assignment to a list

[?25l:  [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:let [va, vb] = l[2:3]

[?25l:  [?12l[?25h:$put =va

[?25l:  [?12l[?25h:$put =vb

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l[1:1]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: let d[i] = 3000 - i

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let n = d[1500]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" lookup each items

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h: let i += 1

[?25l:  [?12l[?25h:" delete even items

[?25l:  [?12l[?25h:while i >= 2

[?25l:    [?12l[?25h: let i -= 2

[?25l:    [?12l[?25h: unlet d[i]

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l:  [?12l[?25h:" delete odd items, checking value, one intentionally wrong

[?25l:  [?12l[?25h:let d[33] = 999

[?25l:  [?12l[?25h:let i = 1

[?25l:  [?12l[?25h:while i < 1500

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =i . '=' . d[i]

[?25l:      [?12l[?25h: else

[?25l:      [?12l[?25h:  unlet d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h: let i += 2

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =string(d)  " must be almost empty now

[?25l:  [?12l[?25h:unlet d

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary function

[?25l:  [?12l[?25h:let dict = {}

[?25l:  [?12l[?25h:func dict.func(a) dict

[?25l:    [?12l[?25h:  $put =a:a . len(self.data)

[?25l:    [?12l[?25h:endfunc

[?25l:    [?12l[?25h:let dict.data = [1,2,3]

[?25l:    [?12l[?25h:call dict.func("len: ")

[?25l:    [?12l[?25h:let x = dict.func("again: ")

[?25l:    [?12l[?25h:let Fn = dict.func

[?25l:    [?12l[?25h:call Fn('xxx')

[?25l:    [?12l[?25h:" 

[?25l:    [?12l[?25h:" Function in script-local List or Dict

[?25l:    [?12l[?25h:let g:dict = {}

[?25l:    [?12l[?25h:function g:dict.func() dict

[?25l:      [?12l[?25h:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l:      [?12l[?25h:endfunc

[?25l:      [?12l[?25h:let g:dict.foo = ['-', 2, 3]

[?25l:      [?12l[?25h:call insert(g:dict.foo, function('strlen'))

[?25l:      [?12l[?25h:call g:dict.func()

[?25l:      [?12l[?25h:" 

[?25l:      [?12l[?25h:" Nasty: remove func from Dict that's being called (works)

[?25l:      [?12l[?25h:let d = {1:1}

[?25l:      [?12l[?25h:func d.func(a)

[?25l:[?12l[?25h:  return "a:". a:a

[?25l:[?12l[?25h:endfunc

[?25l:[?12l[?25h:$put =d.func(string(remove(d, 'func')))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l:[?12l[?25h:let d = {1:1, 2:2}

[?25l:[?12l[?25h:let l = [4, d, 6]

[?25l:[?12l[?25h:let d[3] = l

[?25l:[?12l[?25h:let dc = deepcopy(d)

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let dc = deepcopy(d, 1)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:let l2 = [0, l, l, 3]

[?25l:[?12l[?25h:let l[1] = l2

[?25l:[?12l[?25h:let l3 = deepcopy(l2)

[?25l:[?12l[?25h:$put ='same list: ' . (l3[1] is l3[2])

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1][0] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2]['6'][7] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2][6] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Unletting locked variables

[?25l:[?12l[?25h:$put ='Unletting:'

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]['6'][7]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2][6]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1][0]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables and :unlet or list / dict functions

[?25l:[?12l[?25h:$put ='Locks and commands or functions:'

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put =':unlet after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='filter() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call filter(d, 'v:key != "a"')

[?25l:[?12l[?25h:  $put ='did filter()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='map() after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call map(d, 'v:val + 200')

[?25l:[?12l[?25h:  $put ='did map()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  $put =string(extend(d, {'a': 123}))

[?25l:[?12l[?25h:  $put ='did extend()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No remove() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l:[?12l[?25h:    $put ='did remove()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l:[?12l[?25h:    $put ='did extend()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet of variable in locked scope:'

[?25l:[?12l[?25h:let b:testvar = 123

[?25l:[?12l[?25h:lockvar 1 b:

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet b:testvar

[?25l:[?12l[?25h:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:unlockvar 1 b:

[?25l:[?12l[?25h:unlet! b:testvar

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :let += of locked list variable:'

[?25l:[?12l[?25h:let l = ['a', 'b', 3]

[?25l:[?12l[?25h:lockvar 1 l

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let l += ['x']

[?25l:[?12l[?25h:  $put ='did :let +='

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:lockvar! l

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:unlet l[0:1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l[1:2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:let l[0:1] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let l[1:2] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:" :lockvar/islocked() triggering script autoloading

[?25l:[?12l[?25h:set rtp+=./sautest

[?25l:[?12l[?25h:lockvar g:footest#x

[?25l:[?12l[?25h:unlockvar g:footest#x

[?25l:[?12l[?25h:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l:[?12l[?25h:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l:[?12l[?25h:$put ='g:footest#x: '.g:footest#x

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" a:000 function argument

[?25l:[?12l[?25h:" first the tests that should fail

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000 = [1, 2]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[0] = 9

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[0]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2] = [9, 10]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[2]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[3] = {9: 10}

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[3]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:" now the tests that should pass

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2][1] = 9

[?25l:[?12l[?25h:  call extend(a:000[2], [5, 6])

[?25l:[?12l[?25h:  let a:000[3][5] = 8

[?25l:[?12l[?25h:  let a:000[3]['a'] = 12

[?25l:[?12l[?25h:  $put =string(a:000)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught ' . v:exception

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" reverse(), sort(), uniq()

[?25l:[?12l[?25h:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l:[?12l[?25h:$put =string(uniq(copy(l)))

[?25l:[?12l[?25h:$put =string(reverse(l))

[?25l:[?12l[?25h:$put =string(reverse(reverse(l)))

[?25l:[?12l[?25h:$put =string(sort(l))

[?25l:[?12l[?25h:$put =string(reverse(sort(l)))

[?25l:[?12l[?25h:$put =string(sort(reverse(sort(l))))

[?25l:[?12l[?25h:$put =string(uniq(sort(l)))

[?25l:[?12l[?25h:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'n'))

[?25l:[?12l[?25h:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l:[?12l[?25h:$put =string(sort(copy(l), 1))

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'i'))

[?25l:[?12l[?25h:$put =string(sort(copy(l)))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" splitting a string to a List

[?25l:[?12l[?25h:$put =string(split('  aa  bb '))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W', 1))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 0))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 1))

[?25l:[?12l[?25h:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs'))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs', 1))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare recursively linked list and dict

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:let d = {'1': 1, '2': l, '3': 3}

[?25l:[?12l[?25h:let l[1] = d

[?25l:[?12l[?25h:$put =(l == l)

[?25l:[?12l[?25h:$put =(d == d)

[?25l:[?12l[?25h:$put =(l != deepcopy(l))

[?25l:[?12l[?25h:$put =(d != deepcopy(d))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare complex recursively linked list and dict

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:call add(l, l)

[?25l:[?12l[?25h:let dict4 = {"l": l}

[?25l:[?12l[?25h:call add(dict4.l, dict4)

[?25l:[?12l[?25h:let lcopy = deepcopy(l)

[?25l:[?12l[?25h:let dict4copy = deepcopy(dict4)

[?25l:[?12l[?25h:$put =(l == lcopy)

[?25l:[?12l[?25h:$put =(dict4 == dict4copy)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same List to extend()

[?25l:[?12l[?25h:let l = [1, 2, 3, 4, 5]

[?25l:[?12l[?25h:call extend(l, l)

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend()

[?25l:[?12l[?25h:let d = { 'a': {'b': 'B'}}

[?25l:[?12l[?25h:call extend(d, d)

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend() with "error"

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call extend(d, d, "error")

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" test for range assign

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:let l[:] = [1, 2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:endfun
[?25l:$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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 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]
~                                                                               [?12l[?25h[?25l

:[?12l[?25hdelfunc Test
[?25l[?12l[?25h[?25l:[?12l[?25hunlet dict
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for patch 7.3.637
[?25l[?12l[?25h[?25l:[?12l[?25hlet a = 'No error caught'
[?25l[?12l[?25h[?25l:[?12l[?25htry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?12l[?25h[?25l=[?12l[?25ha
[?25lVim(foldopen):E490:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hredir => a
[?25l[?12l[?25h[?25l:[?12l[?25htry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?12l[?25h[?25l
=[?12l[?25ha
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'))|endtry
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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>delfunnc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for script-local function.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,/^end:/-1w! Xtest.vim
[?25l"Xtest.vim" [New] 7L, 251C written[?12l[?25h[?25l:[?12l[?25hsource Xtest.vim
[?25l[?12l[?25h[?25l:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?12l[?25h[?25lTest for script-local function.     vim: set ft=vim :nothing line[?12l[?25h[?25l:[?12l[?25h$-1,$wq! test.out
[?25l"test.out" [New] 2L, 23C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :sort command.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^t01:/+1,/^t02/-1sort
[?25l 123b2
a123
a
ababc[?12l[?25h[?25l:[?12l[?25h/^t02:/+1,/^t03/-1sort n
[?25lb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?12l[?25h[?25l
:[?12l[?25h/^t03:/+1,/^t04/-1sort x
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?12l[?25h[?25l:[?12l[?25h/^t04:/+1,/^t05/-1sort u
[?25lb321b
b322b
c123d
c321d
t04: alpha, unique[?12l[?25h[?25l
:[?12l[?25h/^t05:/+1,/^t06/-1sort!
[?25la123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?12l[?25h[?25l:[?12l[?25h/^t06:/+1,/^t07/-1sort! n        
[?25la
 123b


t06: numeric, reverse
b322b[?12l[?25h[?25l
:[?12l[?25h/^t07:/+1,/^t08/-1sort! u
[?25l123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?12l[?25h[?25l:[?12l[?25h/^t08:/+1,/^t09/-1sort o         
[?25l123b

t08: octal
abc[?12l[?25h[?25l
:[?12l[?25h/^t09:/+1,/^t10/-1sort! x        
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?12l[?25h[?25l:[?12l[?25h/^t10:/+1,/^t11/-1sort/./        
[?25lab
a


t10: alpha, skip first character
a[?12l[?25h[?25l
:[?12l[?25h/^t11:/+1,/^t12/-1sort/../       
[?25l123b
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[?12l[?25h[?25l:[?12l[?25h/^t12:/+1,/^t13/-1sort/../u
[?25lb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?12l[?25h[?25l
:[?12l[?25h/^t13:/+1,/^t14/-1sort/./n
[?25lb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?12l[?25h[?25l:[?12l[?25h/^t14:/+1,/^t15/-1sort/./r
[?25lc321d
b321
b321b
b322b
t14: alpha, sort on first character[?12l[?25h[?25l
:[?12l[?25h/^t15:/+1,/^t16/-1sort/../r
[?25la321
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[?12l[?25h[?25l:[?12l[?25h/^t16:/+1,/^t17/-1sort/./rn
[?25lb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?12l[?25h[?25l
:[?12l[?25h/^t17:/+1,/^t18/-1sort/\d/
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?12l[?25h[?25l:[?12l[?25h/^t18:/+1,/^t19/-1sort/\d/r
[?25la123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t19:/+1,/^t20/-1sort/\d/n
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t20:/+1,/^t21/-1sort/\d/rn
[?25la123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t21:/+1,/^t22/-1sort/\d\d/
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t22:/+1,/^t23/-1sort/\d\d/n
[?25la123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t23:/+1,/^t24/-1sort/\d\d/x
[?25lb321
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[?12l[?25h[?25l:[?12l[?25h/^t24:/+1,/^t25/-1sort/\d\d/r
[?25lc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25lc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t27:/+1,/^t28/-1sort no
[?25lE474: Invalid argument[?12l[?25h[?25l:[?12l[?25h/^t28:/+1,/^t29/-1sort b
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?12l[?25h[?25l:[?12l[?25h/^t29:/+1,/^t30/-1sort b
[?25l0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?12l[?25h[?25l
:[?12l[?25h/^t30:/+1,/^t31/-1sort f
[?25la0b001000
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[?12l[?25h[?25l:[?12l[?25h/^t01:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! RunTest(str, result)
[?25l
:  [?12l[?25h    if exists(a:str) == a:result

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED: Checking for " . a:str

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfunction
[?25lendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?12l[?25h[?25l
:[?12l[?25hfunction! TestExists()
[?25l
:  [?12l[?25h    augroup myagroup

[?25l:  [?12l[?25h^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l:  [?12l[?25h^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l:  [?12l[?25h    augroup END

[?25l:  [?12l[?25h    set rtp+=./sautest

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    let test_cases = []

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " valid autocmd group

[?25l:  [?12l[?25h    let test_cases += [['#myagroup', 1]]

[?25l:  [?12l[?25h    " valid autocmd group with garbage

[?25l:  [?12l[?25h    let test_cases += [['#myagroup+b', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd group or event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup', 0]]

[?25l:  [?12l[?25h    " Non-existing autocmd group and valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event with no matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['###', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group and event or empty event and pattern

[?25l:  [?12l[?25h    let test_cases += [['##', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##FileReadCmd', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##MySpecialCmd', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&textwidth', 1]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&tw', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['&tw-', 0]]

[?25l:  [?12l[?25h    " Global option

[?25l:  [?12l[?25h    let test_cases += [['&g:errorformat', 1]]

[?25l:  [?12l[?25h    " Local option

[?25l:  [?12l[?25h    let test_cases += [['&l:errorformat', 1]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&nojoinspaces', 0]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&nojs', 0]]

[?25l:  [?12l[?25h    " Non-existing option

[?25l:  [?12l[?25h    let test_cases += [['&myxyzoption', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['+incsearch', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['+incsearch!1', 0]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['+is', 1]]

[?25l:  [?12l[?25h    " Existing option that is hidden.

[?25l:  [?12l[?25h    let test_cases += [['+autoprint', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing environment variable

[?25l:  [?12l[?25h    let $EDITOR_NAME = 'Vim Editor'

[?25l:  [?12l[?25h    let test_cases += [['$EDITOR_NAME', 1]]

[?25l:  [?12l[?25h    " Non-existing environment variable

[?25l:  [?12l[?25h    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal function

[?25l:  [?12l[?25h    let test_cases += [['*bufnr', 1]]

[?25l:  [?12l[?25h    " Valid internal function with ()

[?25l:  [?12l[?25h    let test_cases += [['*bufnr()', 1]]

[?25l:  [?12l[?25h    " Non-existing internal function

[?25l:  [?12l[?25h    let test_cases += [['*myxyzfunc', 0]]

[?25l:  [?12l[?25h    " Valid internal function with garbage

[?25l:  [?12l[?25h    let test_cases += [['*bufnr&6', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid user defined function

[?25l:  [?12l[?25h    let test_cases += [['*TestExists', 1]]

[?25l:  [?12l[?25h    " Non-existing user defined function

[?25l:  [?12l[?25h    let test_cases += [['*MyxyzFunc', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function that may be created by FuncUndefined event

[?25l:  [?12l[?25h    let test_cases += [['*UndefFun', 0]]

[?25l:  [?12l[?25h    " Function that may be created by script autoloading

[?25l:  [?12l[?25h    let test_cases += [['*footest#F', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    redir! > test.out

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    for [test_case, result] in test_cases

[?25l:    [?12l[?25h        echo test_case . ": " . result

[?25l:    [?12l[?25h        call RunTest(test_case, result)

[?25l:    [?12l[?25h    endfor

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match)

[?25l:  [?12l[?25h    echo ':edit: 2'

[?25l:  [?12l[?25h    if exists(':edit') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match) with garbage

[?25l:  [?12l[?25h    echo ':edit/a: 0'

[?25l:  [?12l[?25h    if exists(':edit/a') == 0

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (partial match)

[?25l:  [?12l[?25h    echo ':q: 1'

[?25l:  [?12l[?25h    if exists(':q') == 1

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing internal command

[?25l:  [?12l[?25h    echo ':invalidcmd: 0'

[?25l:  [?12l[?25h    if !exists(':invalidcmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (full match)

[?25l:  [?12l[?25h    command! MyCmd :echo 'My command'

[?25l:  [?12l[?25h    echo ':MyCmd: 2'

[?25l:  [?12l[?25h    if exists(':MyCmd') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (partial match)

[?25l:  [?12l[?25h    command! MyOtherCmd :echo 'Another command'

[?25l:  [?12l[?25h    echo ':My: 3'

[?25l:  [?12l[?25h    if exists(':My') == 3

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Command modifier

[?25l:  [?12l[?25h    echo ':rightbelow: 2'

[?25l:  [?12l[?25h    if exists(':rightbelow') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (full match)

[?25l:  [?12l[?25h    delcommand MyCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':MyCmd: 0'

[?25l:  [?12l[?25h    if !exists(':MyCmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (partial match)

[?25l:  [?12l[?25h    delcommand MyOtherCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':My: 0'

[?25l:  [?12l[?25h    if !exists(':My')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var: 1'

[?25l:  [?12l[?25h    if exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable with garbage

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var%n: 0'

[?25l:  [?12l[?25h    if !exists('local_var%n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local variable

[?25l:  [?12l[?25h    unlet local_var

[?25l:  [?12l[?25h    echo 'local_var: 0'

[?25l:  [?12l[?25h    if !exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing autoload variable that may be autoloaded

[?25l:  [?12l[?25h    echo 'footest#x: 0'

[?25l:  [?12l[?25h    if !exists('footest#x')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list

[?25l:  [?12l[?25h    let local_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'local_list: 1'

[?25l:  [?12l[?25h    if exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item

[?25l:  [?12l[?25h    echo 'local_list[1]: 1'

[?25l:  [?12l[?25h    if exists('local_list[1]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item with garbage

[?25l:  [?12l[?25h    echo 'local_list[1]+5: 0'

[?25l:  [?12l[?25h    if !exists('local_list[1]+5')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Invalid local list item

[?25l:  [?12l[?25h    echo 'local_list[2]: 0'

[?25l:  [?12l[?25h    if !exists('local_list[2]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local list

[?25l:  [?12l[?25h    unlet local_list

[?25l:  [?12l[?25h    echo 'local_list: 0'

[?25l:  [?12l[?25h    if !exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local dictionary

[?25l:  [?12l[?25h    let local_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'local_dict: 1'

[?25l:  [?12l[?25h    if exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local dictionary

[?25l:  [?12l[?25h    unlet local_dict

[?25l:  [?12l[?25h    echo 'local_dict: 0'

[?25l:  [?12l[?25h    if !exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing local curly-brace variable

[?25l:  [?12l[?25h    let str = "local"

[?25l:  [?12l[?25h    let curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local curly-brace variable

[?25l:  [?12l[?25h    unlet curly_{str}_var

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable

[?25l:  [?12l[?25h    let g:global_var = 1

[?25l:  [?12l[?25h    echo 'g:global_var: 1'

[?25l:  [?12l[?25h    if exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable with garbage

[?25l:  [?12l[?25h    echo 'g:global_var-n: 1'

[?25l:  [?12l[?25h    if !exists('g:global_var-n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global variable

[?25l:  [?12l[?25h    unlet g:global_var

[?25l:  [?12l[?25h    echo 'g:global_var: 0'

[?25l:  [?12l[?25h    if !exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global list

[?25l:  [?12l[?25h    let g:global_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'g:global_list: 1'

[?25l:  [?12l[?25h    if exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global list

[?25l:  [?12l[?25h    unlet g:global_list

[?25l:  [?12l[?25h    echo 'g:global_list: 0'

[?25l:  [?12l[?25h    if !exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global dictionary

[?25l:  [?12l[?25h    let g:global_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'g:global_dict: 1'

[?25l:  [?12l[?25h    if exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global dictionary

[?25l:  [?12l[?25h    unlet g:global_dict

[?25l:  [?12l[?25h    echo 'g:global_dict: 0'

[?25l:  [?12l[?25h    if !exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global curly-brace variable

[?25l:  [?12l[?25h    let str = "global"

[?25l:  [?12l[?25h    let g:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global curly-brace variable

[?25l:  [?12l[?25h    unlet g:curly_{str}_var

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window variable

[?25l:  [?12l[?25h    echo 'w:window_var: 1'

[?25l:  [?12l[?25h    let w:window_var = 1

[?25l:  [?12l[?25h    if exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window variable

[?25l:  [?12l[?25h    unlet w:window_var

[?25l:  [?12l[?25h    echo 'w:window_var: 0'

[?25l:  [?12l[?25h    if !exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window list

[?25l:  [?12l[?25h    let w:window_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'w:window_list: 1'

[?25l:  [?12l[?25h    if exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window list

[?25l:  [?12l[?25h    unlet w:window_list

[?25l:  [?12l[?25h    echo 'w:window_list: 0'

[?25l:  [?12l[?25h    if !exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window dictionary

[?25l:  [?12l[?25h    let w:window_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'w:window_dict: 1'

[?25l:  [?12l[?25h    if exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window dictionary

[?25l:  [?12l[?25h    unlet w:window_dict

[?25l:  [?12l[?25h    echo 'w:window_dict: 0'

[?25l:  [?12l[?25h    if !exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window curly-brace variable

[?25l:  [?12l[?25h    let str = "window"

[?25l:  [?12l[?25h    let w:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window curly-brace variable

[?25l:  [?12l[?25h    unlet w:curly_{str}_var

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer variable

[?25l:  [?12l[?25h    echo 'b:buffer_var: 1'

[?25l:  [?12l[?25h    let b:buffer_var = 1

[?25l:  [?12l[?25h    if exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer variable

[?25l:  [?12l[?25h    unlet b:buffer_var

[?25l:  [?12l[?25h    echo 'b:buffer_var: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer list

[?25l:  [?12l[?25h    let b:buffer_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'b:buffer_list: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer list

[?25l:  [?12l[?25h    unlet b:buffer_list

[?25l:  [?12l[?25h    echo 'b:buffer_list: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer dictionary

[?25l:  [?12l[?25h    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer dictionary

[?25l:  [?12l[?25h    unlet b:buffer_dict

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer curly-brace variable

[?25l:  [?12l[?25h    let str = "buffer"

[?25l:  [?12l[?25h    let b:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer curly-brace variable

[?25l:  [?12l[?25h    unlet b:curly_{str}_var

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Script-local tests

[?25l:  [?12l[?25h    source test60.vim

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:version: 1'

[?25l:  [?12l[?25h    if exists('v:version')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:non_exists_var: 0'

[?25l:  [?12l[?25h    if !exists('v:non_exists_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function arguments

[?25l:  [?12l[?25h    function TestFuncArg(func_arg, ...)

[?25l:    [?12l[?25h        echo 'a:func_arg: 1'

[?25l:    [?12l[?25h        if exists('a:func_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:non_exists_arg: 0'

[?25l:    [?12l[?25h        if !exists('a:non_exists_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:1: 1'

[?25l:    [?12l[?25h        if exists('a:1')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:2: 0'

[?25l:    [?12l[?25h        if !exists('a:2')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h    endfunction

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    call TestFuncArg("arg1", "arg2")

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    echo ' g:footest#x =' g:footest#x

[?25l:    [?12l[?25h    echo '   footest#F()' footest#F()

[?25l:    [?12l[?25h    echo 'UndefFun()' UndefFun()

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    redir END

[?25l:    [?12l[?25hendfunction
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hcall TestExists()
[?25l#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[?12l[?25h[?25l:[?12l[?25h"
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hdelfunc TestExists
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestFuncArg
[?25l[?12l[?25h[?25l:[?12l[?25hedit! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 206 lines, 1941 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns without multi-byte support.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp engine
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"operator \|
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a*', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x', 'abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search single groups
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'baced'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search multi-modifiers
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" no match here
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a\{0,1}'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" leading star as normal char when \{} follows
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test groups of characters and submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test greedy-ness and lazy-ness
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test Character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test collections and character range []
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-a]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?12l[?25h[?25l:[?12l[?25h" filename regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?12l[?25h[?25l:[?12l[?25h" special chars
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?12l[?25h[?25l:[?12l[?25h" collation elem
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" middle of regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test start/end of line, start/end of file
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "b a \na_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a', " a \na "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test recognition of character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \z features
[?25l[?12l[?25h[?25l:[?12l[?25h" match ends at \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" match starts at \zs
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \@= and \& features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match, no matter the input text
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Combining different tests and features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" \%u and friends
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \%[abc]
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Alternatives, must use first longest match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Look-behind with limit
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" look-behind match in front of a zero-width item
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" complicated look-behind match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \@>
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" TODO: BT engine does not restore submatch after failure
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" "\_" prepended negated collection matches EOL
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Requiring lots of states.
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Skip adding state twice
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""" Test \%V atom
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""""" multi-line tests """"""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" line breaks
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25lOK 0 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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', '']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a line break and ^ and $
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the multi-line tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='multi-line tests'
[?25l
multi-line tests[?12l[?25h[?25l
:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let before = t[2]

[?25l:  [?12l[?25h:  let after = t[3]

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    new

[?25l:    [?12l[?25h:    call setline(1, before)

[?25l:    [?12l[?25h:    exe '%s/' . pat . '/XX/'

[?25l:    [?12l[?25h:    let result = getline(1, '$')

[?25l:    [?12l[?25h:    q!

[?25l:    [?12l[?25h:    if result != after

[?25l:      [?12l[?25h:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?12l[?25h[?25l:[?12l[?25h" matchstr() with \ze in between.
[?25l[?12l[?25h[?25l:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25h.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l5">Ta 5</Title>
<T="7">Ac 7</Title>
[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h.+1,.+2yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
<T="5">Ta 5</Title>
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a look beind crossing a line boundary
[?25l[?12l[?25h[?25l/[?12l[?25h^Behind:
[?25lsearch 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[?12l[?25h[?25l/[?12l[?25h\(<\_[xy]\+\)\@3<=start
[?25l[?12l[?25h[?25l:[?12l[?25h.yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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>
[?12l[?25h[?25l
[?12l[?25h[?25l
xxstart3
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching Visual area
[?25l[?12l[?25h[?25l/[?12l[?25h^Visual:
[?25lsearch 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[?12l[?25h
the[?25l[?12l[?25h[?25lxe the the[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Ve/E/g
[?25l3 substitutions on 1 linexE thE thE
[?12l[?25h
[?25landaxand andaxand 
[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Va/A/g
[?25l6 substitutions on 1 lineAndAxAnd AndAxAnd[?12l[?25h
ooo[?25l[?12l[?25h[?25lxofor foro[?12l[?25h[?25lx
oooxofor foro[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Vo/O/g
[?25l8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?12l[?25h[?25l:[?12l[?25h/^Visual/+1,/^Visual/+4yank
[?25lsearch hit BOTTOM, continuing at TOP
4 lines yanked[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
4 more lines
thexE thE thExethe4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching marks
[?25l[?12l[?25h[?25l/[?12l[?25h^Marks:
[?25lsearch 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[?12l[?25h
asdf[?25l:[?12l[?25h.-4,.+6s/.\%>'s.*\%<'e../here/
[?25lhereasdf[?12l[?25h
asdf
dfsa
dfsadf[?25l:[?12l[?25h.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l
asdfagainasdfOK 0 - bc*[?12l[?25h[?25l:[?12l[?25h/^Marks:/+1,/^Marks:/+3yank
[?25lsearch hit BOTTOM, continuing at TOP
3 lines yanked[?12l[?25h[?25lOK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check patterns matching cursor 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
position.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! Postest()
[?25l
:  [?12l[?25h new

[?25l:  [?12l[?25h 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:  [?12l[?25h call setpos('.', [0, 1, 0, 0])

[?25l:  [?12l[?25h s/\%>3c.//g

[?25l:  [?12l[?25h call setpos('.', [0, 2, 4, 0])

[?25l:  [?12l[?25h s/\%#.*$//g

[?25l:  [?12l[?25h call setpos('.', [0, 3, 0, 0])

[?25l:  [?12l[?25h s/\%<3c./_/g

[?25l:  [?12l[?25h %s/\%4l\%>5c./_/g

[?25l:  [?12l[?25h %s/\%6l\%>25v./_/g

[?25l:  [?12l[?25h %s/\%>6l\%3c./!/g

[?25l:  [?12l[?25h %s/\%>7l\%12c./?/g

[?25l:  [?12l[?25h %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l:  [?12l[?25h $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l:  [?12l[?25h 1,$yank

[?25l:  [?12l[?25h quit!

[?25l:  [?12l[?25hendfunc
[?25lOK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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[?12l[?25h[?25l255\
OK 0 - 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~                                                                               [?12l[?25h[?25l
-0-[?12l[?25h[?25l
:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25loooxOfOr 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 xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?12l[?25h[?25l
-1-[?12l[?25h[?25l
:[?12l[?25hset re=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-2-[?12l[?25h[?25l:[?12l[?25hset re=2
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l-2-
ffo
bob~                                                                               [?12l[?25h[?25l:[?12l[?25h" start and end of buffer
[?25l[?12l[?25h[?25l/[?12l[?25h\%^
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%^..
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25lt END[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:" 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'])[?12l[?25h[?25l/[?12l[?25h..\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l[?12l[?25h[?25lEN[?12l[?25h[?25l[?12l[?25h[?25lE[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check for detecting error
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=2
[?25l[?12l[?25h[?25l:[?12l[?25hfor pat in [' \ze*', ' \zs*']
[?25l
:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    let l = matchlist('x x', pat)

[?25l:    [?12l[?25h:    $put ='E888 NOT detected for ' . pat

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='E888 detected for ' . pat

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor
[?25lffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx xxxxxx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxxxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx   xxxxxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Write the results """""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("float")
[?25l
:  [?12l[?25h:  e! test.ok

[?25l:  [?12l[?25h:  wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%f', 123.456)
[?25l
123.456000[?12l[?25h[?25l
:[?12l[?25h$put =printf('%e', 123.456)
[?25l
1.234560e+02[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 123.456)
[?25l
123.456[?12l[?25h[?25l
:[?12l[?25h" check we don't crash on division by zero
[?25l[?12l[?25h[?25l:[?12l[?25hecho 1.0 / 0.0
[?25linf[?12l[?25h[?25l:[?12l[?25h$put ='+='
[?25l
+=[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 6.543
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
7.777[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 5
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
6.234[?12l[?25h[?25l
:[?12l[?25hlet a = 5
[?25l[?12l[?25h[?25l:[?12l[?25hlet a += 3.333
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(a)
[?25l
8.333[?12l[?25h[?25l
:[?12l[?25h$put ='=='
[?25l
==[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25h$put =v == 1.234
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =v == 1.2341
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='add-subtract'
[?25l
add-subtract[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 + 1.234)
[?25l
5.234[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 1.234 - 8)
[?25l
-6.766[?12l[?25h[?25l
:[?12l[?25h$put ='mult-div'
[?25l
mult-div[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 * 1.234)
[?25l
4.936[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4.0 / 1234)
[?25l
0.003241[?12l[?25h[?25l
:[?12l[?25h$put ='dict'
[?25l
dict[?12l[?25h[?25l
:[?12l[?25h$put =string({'x': 1.234, 'y': -2.0e20})
[?25l
{'x': 1.234, 'y': -2.0e20}[?12l[?25h[?25l
:[?12l[?25h$put ='list'
[?25l
list[?12l[?25h[?25l
:[?12l[?25h$put =string([-123.4, 2.0e-20])
[?25l
[-123.4, 2.0e-20][?12l[?25h[?25l
:[?12l[?25h$put ='abs'
[?25l
abs[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(1456))
[?25l
1456[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(-4))
[?25l
4[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs([1, 2, 3]))
[?25lE745: Using a List as a Number
-1[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(14.56))
[?25l
14.56[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g',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
 abs(-54.32))
[?25l
54.32[?12l[?25h[?25l
:[?12l[?25h$put ='ceil'
[?25l
ceil[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(1.456))
[?25l
2.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-4.000))
[?25l
-4.0[?12l[?25h[?25l
:[?12l[?25h$put ='floor'
[?25l
floor[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(1.856))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(-5.456))
[?25l
-6.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(4.0))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='log10'
[?25l
log10[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(1000))
[?25l
3.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(0.01000))
[?25l
-2.0[?12l[?25h[?25l
:[?12l[?25h$put ='pow'
[?25l
pow[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(3, 3.0))
[?25l
27.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(2, 16))
[?25l
65536.0[?12l[?25h[?25l
:[?12l[?25h$put ='round'
[?25l
round[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(0.456))
[?25l
0.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(4.5))
[?25l
5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(-4.50))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put ='sqrt'
[?25l
sqrt[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', sqrt(100))
[?25l
10.0[?12l[?25h[?25l
:[?12l[?25hecho sqrt(-4.01)
[?25lnan[?12l[?25h[?25l:[?12l[?25h$put ='str2float'
[?25l
str2float[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', str2float('1e40'))
[?25l
1.0e40[?12l[?25h[?25l
:[?12l[?25h$put ='trunc'
[?25l
trunc[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(1.456))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(4.000))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='float2nr'
[?25l
float2nr[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(123.456)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(-123.456)
[?25l
-123[?12l[?25h[?25l
:[?12l[?25h$put ='AND'
[?25l
AND[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 127)
[?25l
127[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 16)
[?25l
16[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 128)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='OR'
[?25l
OR[?12l[?25h[?25l
:[?12l[?25h$put =or(16, 7)
[?25l
23[?12l[?25h[?25l
:[?12l[?25h$put =or(8, 7)
[?25l
15[?12l[?25h[?25l
:[?12l[?25h$put =or(0, 123)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put ='XOR'
[?25l
XOR[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 127)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 16)
[?25l
111[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 128)
[?25l
255[?12l[?25h[?25l
:[?12l[?25h$put ='invert'
[?25l
invert[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(127), 65535)
[?25l
65408[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(16), 65535)
[?25l
65519[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(128), 65535)
[?25l
65407[?12l[?25h[?25l
:[?12l[?25h$put =invert(1.0)
[?25lE805: Using a Float as a Number
0[?12l[?25h[?25l
:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^one
[?25l[?12l[?25hon[?25l[?12l[?25h[?25le
one two three
one two three
one two three
one two three[?12l[?25h[?25l
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?12l[?25h[?25lmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?12l[?25h[?25le
one
one
one
on[?12l[?25h[?25l1
on1
on1
on1
on1[?12l[?25h[?25l:[?12l[?25h'<,'>w! test.out
[?25l"test.out" [New File] 5 lines, 70 characters written[?12l[?25h[?25l/[?12l[?25h^abcdefgh
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?12l[?25h[?25la
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc            defghijklmnopqrstuvwxyz[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-5,$w >> test.out
[?25l"test.out"6 lines, 151 characters appended[?12l[?25h[?25l:[?12l[?25h$-4,$s/\s\+//g
[?25l7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
a
a
a[?12l[?25h[?25l
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghij[?12l[?25h
    ab[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                       defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                 defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-4,$w >> test.out
[?25l"test.out"5 lines, 147 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest that groups and patterns are tested correctly when calling exists() for[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet results=[]
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter *.test let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile.test
[?25l"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter <buffer> let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile2.test
[?25l"testfile2.test" [New File][?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l:[?12l[?25hcall append(0, results)
[?25l##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[?12l[?25h[?25l:[?12l[?25h$d
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 190 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset noai tw=2 fo=t
[?25l[?12l[?25h[?25la
b[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l
a  b[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tw
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
[?12l[?25h[?25l
a[?12l[?25ha [?25l
b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a ^A[?12l[?25h[?25l
:[?12l[?25hset tw=3 fo=t
[?25l[?12l[?25h[?25l
^A[?12l[?25h[?25la
^A
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a b[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tcq1 comments=:#
[?25l[?12l[?25h[?25l
#a b[?12l[?25h[?25la b
#a b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  1 a[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=tcn comments=:#
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
# 1 a[?12l[?25h[?25l
#   b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+3
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+3
[?25l{

  x a
  b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=t2a si
[?25l[?12l[?25h[?25l    b[?12l[?25h[?25l b_[?12l[?25h[?25l
c[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# 1 a b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=qn comments=:#
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# x[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=q2 comments=:#
[?25l[?12l[?25h[?25l# x a
[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+2
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+2
[?25l{
   1aa
   2bb[?12l[?25h[?25l
:[?12l[?25hset tw& fo=a
[?25l[?12l[?25h[?25l1aa ^^2bb }STARTTEST[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h[?25l
/mno pqr/[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25hmno pqr/
[?25l/* abc def ghi jkl
 *    mno pqr stu[?12l[?25h[?25l
:[?12l[?25hsetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?12l[?25h[?25l
*    vwx yz[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^#/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^#/
[?25l
# 1 xxxxx[?12l[?25h[?25l
:[?12l[?25hsetl tw=12 fo=tqnc comments=:#
[?25l[?12l[?25h[?25l
#   foobar[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 77 lines, 281 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for multi-byte text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=t
[?25l[?12l[?25h
[?25l
XYZ[?12l[?25h[?25l[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
Z
abc [?12l[?25h[?25l
X[?12l[?25h[?25lY[?12l[?25h[?25lZ[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
X[?12l[?25h[?25l
:[?12l[?25hset tw=1 fo=tm
[?25l[?12l[?25h[?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l
X a
[?12l[?25h[?25l
a[?12l[?25h[?25l
XY
[?12l[?25h[?25l
Y
[?12l[?25h[?25l
X Y
[?12l[?25h[?25l
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h
[?25la[?12l[?25h
[?25la[?12l[?25h
[?25lY
[?12l[?25h
[?25lY 
[?12l[?25h[?25l
aX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abcX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX c
[?12l[?25h[?25lX
c[?12l[?25h[?25l
abXY
[?12l[?25h[?25lX
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25lY
a[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
abc[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
c
ab[?12l[?25h[?25l
X[?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
  a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset noai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=cqm comments=n:X
[?25l[?12l[?25h

[?25lXY[?12l[?25h

[?25lXZ
[?12l[?25h

[?25l
X Z
[?12l[?25h[?25l
XX
[?12l[?25h[?25l
XXa
[?12l[?25h[?25l
XXY
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25l
Xa
[?12l[?25h[?25lXa[?12l[?25h[?25lXY
[?12l[?25h[?25lX[?12l[?25h[?25l
Y
[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25lXZ
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25lX [?12l[?25h[?25lY[?12l[?25h[?25lX Z
[?12l[?25h[?25lX[?12l[?25h[?25l
X
[?12l[?25h[?25lX[?12l[?25h[?25l
Xa
[?12l[?25h[?25lX[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
‘two three ’four[?12l[?25h[?25l
:[?12l[?25hset mps+=^‘:^’
[?25l[?12l[?25h[?25l four[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
/^ra test
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTjVjra
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^ra test
[?25l
ra test[?12l[?25h[?25l
abba
[?12l[?25h[?25lbba 
[?12l[?25h[?25l
a
aab 
[?12l[?25h[?25laaaaaaa [?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set whichwrap+=h
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset whichwrap+=h
[?25l[?12l[?25h[?25l/[?12l[?25h^x
[?25láx[?12l[?25h[?25lx[?12l[?25h
[?25l
:[?12l[?25hset whichwrap-=h
[?25l[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:let a = '.é.' " one char of two bytes
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let b = '.é.' " normal e with composing char
/^byteidx
:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteiddx(a, 4)])
:put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])
/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)])
:let b = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet a = '.é.' " one char of two bytes
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = '.eé.' " normal e with composing char
[?25l[?12l[?25h[?25l/[?12l[?25h^byteidx
[?25l
byteidx[?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25lENDTESTá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5[?12l[?25h[?25l
/[?12l[?25h^byteidxcomp
[?25l
byteidxcomp[?12l[?25h[?25l
:[?12l[?25hput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25lá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5
byteidxcomp[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hlet b = '.eé.'
[?25l[?12l[?25h[?25l:[?12l[?25hput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25lSTARTTEST
: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(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][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^substitute
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?12l[?25h[?25lsubstitute[?12l[?25h[?25l

:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^substitute
[?25l[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25la1a2a3a[?12l[?25h[?25l

/^STARTTEST

STARTTEST[?12l[?25h[?25l:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?12l[?25h[?25l

:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l

/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l104 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[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" 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
[New File] 166 lines, 730 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 6 lines, 94 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for find completion.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xfind directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xfind')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE345: Can't find file "" in path[?12l[?25h[?25l:[?12l[?25hexec "w! " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
</vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                 [?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                 [?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                 [?12l[?25h[?25l:[?12l[?25hset path=./**
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                 [?12l[?25h[?25l:[?12l[?25h" We shouldn't find any file at this point, test.out must be empty.
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('in')
[?25l[?12l[?25h[?25l:[?12l[?25hcd in
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hcall mkdir('path')
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdirtest73.in                                                      [?12l[?25h[?25l:[?12l[?25he Xfind/file.txt
[?25l"Xfind/file.txt" [New File]Xfind/file.txt[?12l[?25h[?25l-- INSERT --Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/file.txt" [New] 1L, 11C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/file.txt
[?25l"Xfind/in/file.txt" [New File]in/file.txt[?12l[?25h[?25l-- INSERT --Jimmy Hoffa[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/file.txt" [New] 1L, 12C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/stuff.txt
[?25l"Xfind/in/stuff.txt" [New File]stuff.txt[?12l[?25h[?25l-- INSERT --Another Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/stuff.txt" [New] 1L, 19C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/path/file.txt
[?25l"Xfind/in/path/file.txt" [New File]path/file.txt[?12l[?25h[?25l-- INSERT --E.T.[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/path/file.txt" [New] 1L, 5C written    [?12l[?25h[?25l:[?12l[?25hset path=Xfind/**
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Same steps again, using relative and fullpath items that point to the same
[?25l[?12l[?25h[?25l:[?12l[?25h" recursive location.
[?25l[?12l[?25h[?25l:[?12l[?25h" This is to test that there are no duplicates in the completion list.
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path+=Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25h" Test find completion for directory of current buffer, which at this point
[?25l[?12l[?25h[?25l:[?12l[?25h" is Xfind/in/file.txt.
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind st...[?25luff.txt[?12l[?25h
[?25l"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25h" Test find completion for empty path item ",," which is the current directory
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfindin/stuff.txtf       /<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind f...[?25lile.txt[?12l[?25h...[?25l[?12l[?25h
[?25l"file.txt" 1L, 11CHoly Grailfile.txt.     [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25h" Test shortening of
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is above foo/ they should be shortened to (in order
[?25l[?12l[?25h[?25l:[?12l[?25h" of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/file.txt[?12l[?25h[?25l:[?12l[?25hcall mkdir('x')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('y')
[?25l[?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/x[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfindfile.txti                                                             [?12l[?25h[?25l:[?12l[?25h" We should now be in the Xfind directory
[?25l[?12l[?25h[?25l:[?12l[?25he foo/x/bar/voyager.txt
[?25l"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?12l[?25h[?25l-- INSERT --Voyager 1[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/x/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25he foo/y/bar/voyager.txt
[?25l"foo/y/bar/voyager.txt" [New File]y/[?12l[?25h[?25l-- INSERT --Voyager 2[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/y/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h
[?25l"foo/x/bar/voyager.txt" 1L, 10C1x/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h...[?25ly[?12l[?25h
[?25l"foo/y/bar/voyager.txt" 1L, 10C2y/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?12l[?25h[?25l:[?12l[?25h" order of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    ./voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/fooy/bar/voyager.txt.     [?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/ybar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/y/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25lx/bar/voyager.txt[?12l[?25h
[?25l<d/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/x/bar/voyager.txt"
<lTJJ2/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1<ild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/x/bar/voyager.txt[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check the opposite too:
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foox/bar/voyager.txti                                                               [?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/xbar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/x/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25ly/bar/voyager.txt[?12l[?25h
[?25l<d/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/y/bar/voyager.txt"
<lTJJ2/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2<ild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/y/bar/voyager.txt[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/in"
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./file.txt[?5h[?5l[?12l[?25h
[?25l"file.txt" 1L, 12CJimmy Hoffafile.txt-                                                                        [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Test for relative to current buffer 'path' item
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/"
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfindin/file.txt[?12l[?25h[?25l:[?12l[?25hset path=./path
[?25l[?12l[?25h[?25l:[?12l[?25h" Open the file where Jimmy Hoffa is found
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12C[?12l[?25h[?25l:[?12l[?25h" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25ltxt[?12l[?25h
[?25l"in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that completion works when path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h" Open Jimmy Hoffa file
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?12l[?25h[?25l:[?12l[?25hfind stu...[?25lff.txt[?12l[?25h
[?25l"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25hq
[?25l: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[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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^[:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for maparg().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25h" Test maparg() with a string result
[?25l[?12l[?25h[?25l:[?12l[?25hmap foo<C-V> is<F4>foo
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('foo<C-V>'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hmap <buffer> <nowait> foo bar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc x<char-114>x
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc y<S-char-114>y
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25leof
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[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Outside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x1040> a
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u1040\<Esc>"
[?25la[?12l[?25h[?25l:[?12l[?25h" Inside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x103f> b
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u103f\<Esc>"
[?25lb[?12l[?25h[?25l:[?12l[?25h" Inside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf03f> c
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf03f\<Esc>"
[?25lc[?12l[?25h[?25l:[?12l[?25h" Outside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf040> d
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf040\<Esc>"
[?25ld[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^eof/+1,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25lcksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?12l[?25h[?25l
:[?12l[?25hset fileformat=unix undolevels=-1
[?25l[?12l[?25h[?25lInserts 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.[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

egcc -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
[?25l12345678910111213141516171819202122[?12l[?25h[?25l
23[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2000000 lines, 14888896 characters written[?12l[?25h[?25l:[?12l[?25hr !cksum Xtest
[?25l[?12l[?25h[?25l1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?12l[?25h[?25l:[?12l[?25hs/\s/ /g
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat&
[?25l[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 26 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25lA
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l&[?12l[?25h
[?25l:[?12l[?25hs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set nomagic
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25l&&
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\='\'/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\='\\'/
[?25l\\b
[?12l[?25h
[?25l:[?12l[?25hs/C/\='^^M'/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\='\^^M'/
[?25l\d[?12l[?25h
[?25l


:[?12l[?25hs/E/\='\\^^M'/
[?25l\\
efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\='\r'/
[?25l\rf
[?12l[?25h[?25l
gGg[?12l[?25h[?25l
:[?12l[?25hs/G/\='^^@'/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\='\^^@'/
[?25l
\h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\='\\^^@'/
[?25l
\\
i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\='\n'/
[?25l\nj
[?12l[?25h[?25l
kKk[?12l[?25h[?25l
:[?12l[?25hs/K/\="\r"/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\="\n"/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25ld[?12l[?25h
[?25l


:[?12l[?25hs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l\efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l
f[?12l[?25h[?25l
gGg
[?12l[?25h[?25l
:[?12l[?25hs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l
h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l
\i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l
j[?12l[?25h[?25l
kKk
[?12l[?25h[?25l
:[?12l[?25hs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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), subbmatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), subbmatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l
TEST_5:[?12l[?25h[?25l
A123456789
[?12l[?25h[?25l
:[?12l[?25hs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25li\
i987654321[?12l[?25h[?25l
B123456789
[?12l[?25h[?25l
:[?12l[?25hs/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)])/
[?25li
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25lTEST_6:
A
B[?12l[?25h[?25l


:[?12l[?25hset cpo+=/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/a/
[?25la[?12l[?25h
[?25l:[?12l[?25hs/B/%/
[?25la[?12l[?25h[?25l:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25lC
D[?12l[?25h[?25l


:[?12l[?25hs/C/c/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/%/
[?25l%[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST_7/
[?25l
TEST_7:[?12l[?25h[?25l
A^MA
[?12l[?25h[?25l
:[?12l[?25hs/A./\=submatch(0)/
[?25l
A[?12l[?25h[?25l
B^@B
[?12l[?25h[?25l
:[?12l[?25hs/B./\=submatch(0)/
[?25l
B[?12l[?25h[?25l
C^@C
[?12l[?25h[?25l
:[?12l[?25hs/C./\=strtrans(string(submatch(0, 1)))/
[?25l['C^@']C
[?12l[?25h[?25l
D^@[?12l[?25h[?25l
:[?12l[?25hs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l['D^@', 'D']
[?12l[?25h[?25l
E^@[?12l[?25h[?25l
:[?12l[?25hs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l['E^@', '^@', '^@', '^@', '^@E']
[?12l[?25h[?25l/[?12l[?25h^Q$
[?25l
Q[?12l[?25h[?25l
:[?12l[?25hs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25lE486: Pattern not found: Q[^\n]Q[?12l[?25h[?25l:[?12l[?25h" Avoid :s error breaks dotest map on Windows.
[?25l[?12l[?25h[?25l/^STARTTEST
Q

STARTTEST[?12l[?25h[?25l
:function! TitleString()
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hfunction! TitleString()
[?25l
:  [?12l[?25h  let check = 'foo' =~ 'bar'

[?25l:  [?12l[?25h  return ""

[?25l:  [?12l[?25hendfunction
[?25lTEST_7:
A[?12l[?25h[?25l
:[?12l[?25hset titlestring=%{TitleString()}
[?25l[?12l[?25h[?25l:[?12l[?25h/^test_one/s/.*/\="foo\nbar"/
[?25lfoo
bar[?12l[?25h[?25l
:[?12l[?25h/^test_two/s/.*/\="foo\nbar"/c
[?25l
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l
foobar
[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 134 lines, 574 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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', '')[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_1:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('xXx', 'X', \"\r\", '')
[?25l
x^Mx[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l
YyyY[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l
zZZz[?12l[?25h[?25l
/[?12l[?25h^TEST_2
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_2:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25lKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('tTt', 'T', \"\r\", '')
[?25l
t^Mt[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l
XxxX[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l
yYYy[?12l[?25h[?25l
/[?12l[?25h^TEST_3
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_3:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l
b\\b[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l
c^Mc[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l
d\^Md[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l
e\\^Me[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l
f\rf[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l
j\nj[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l
k^Mk[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25ll
l[?12l[?25h[?25l
/[?12l[?25h^TEST_4
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_4:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25lu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25lu
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25lv^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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25lw\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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25lXxxX
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25lyYYyTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25lb\\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[?12l[?25h[?25l
/[?12l[?25h^TEST_5
[?25lsearch 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) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_5:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$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)', '')
[?25lf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?12l[?25h[?25l
:[?12l[?25h$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)])', '')
[?25lj\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']][?12l[?25h[?25l
/[?12l[?25h^TEST_6
[?25lsearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25lTEST_7:[?12l[?25h[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_6:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hset cpo+=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', 'a', '')
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '%', '')
[?25l
%[?12l[?25h[?25l
:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('C', 'C', 'c', '')
[?25l
c[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', '%', '')
[?25l
%[?12l[?25h[?25l
/[?12l[?25h^TEST_7
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_7:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l
A^MA[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25lB
B[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l['B
']B[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l
-abab[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\ze', 'c', 'g')
[?25l
c-cbcbc[?12l[?25h[?25l
/[?12l[?25h^TEST_8
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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 -o objects/if_lua.o if_lua.c
10 lines, 186 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTyy/^TEST_9:
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_8:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =',,X'
[?25l
,,X[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25lN,,NX
[?12l[?25h[?25l:[?12l[?25h$put =',,Y'
[?25l
,,Y[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,NY
[?12l[?25h[?25l
:[?12l[?25h$put =',,Z'
[?25l
,,Z[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l,NZ
[?12l[?25h[?25l
/[?12l[?25h^TEST_9:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_9:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put ='xxx'
[?25l
xxx[?12l[?25h[?25l
:[?12l[?25hs/x/X/gc
[?25lx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lx[?12l[?25h[?25l
/[?12l[?25h^TEST_10:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_10:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l
1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l
a1a2a3[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l
aa2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l
1aaa[?12l[?25h[?25l
/[?12l[?25h^TEST_11
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25l"test.out" [New File] 131 lines, 617 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("multi_byte")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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%.22X', n)) | endfor[?12l[?25h[?25l


:[?12l[?25hset enc=utf8
[?25l: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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h[?25lTests 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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Ch(a, op, b, expected)
[?25l
:  [?12l[?25h:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l:    [?12l[?25h:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    let b:passed += 1

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Chk(a, b, result)
[?25l
:  [?12l[?25h:  if a:result == 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  elseif a:result > 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 1)

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Check(a, b, result)
[?25l
:  [?12l[?25h:  call Chk(a:a, a:b, a:result)

[?25l:  [?12l[?25h:  call Chk(a:b, a:a, -a:result)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! LT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, -1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! EQ(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 0)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet b:passed=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('', '')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('', 'a')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('abc', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc', 'abC')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('AB', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'aBc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa', 'k')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc\x80', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc\x80', 'AbC\x81')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xc3XYZ', '\xc3xyz')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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~                                                                               [?12l[?25h[?25l:[?12l[?25hcall LT('\xc3', '\xc3\x83')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(0, printf('%d checks passed', b:passed))
[?25l3732 checks passed[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test that g~ap changes one paragraph only.
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?12l[?25h[?25labcddefg[+][?12l[?25h[?25lABCD
[?12l[?25h[?25l:[?12l[?25hlet lns = getline(1,3)
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), lns)
[?25lABCDdefg[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 5 lines, 31 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for curswant not changing when setting an option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start target options$/+1,/^end target options$/-1 yank
[?25l3 lines yanked[?12l[?25h[?25l:[?12l[?25hlet target_option_names = split(@0)
[?25l[?12l[?25h[?25l:[?12l[?25hfunction TestCurswant(option_name)
[?25l
:  [?12l[?25h:  normal! ggf8j

[?25l:  [?12l[?25h:  let curswant_before = winsaveview().curswant

[?25l:  [?12l[?25h:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l:  [?12l[?25h:  let curswant_after = winsaveview().curswant

[?25l:  [?12l[?25h:  return [a:option_name, curswant_before, curswant_after]

[?25l:  [?12l[?25h:endfunction
[?25l:  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[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =['1234567890', '12345']
[?25l123456789012345[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hlet result = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor option_name in target_option_names
[?25l
:  [?12l[?25h:  call add(result, TestCurswant(option_name))

[?25l:  [?12l[?25h:endfor
[?25l1234567890
12345[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =map(copy(result), 'join(v:val, '' '')')
[?25l3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hwrite test.out
[?25l"test.out" [New File] 3 lines, 43 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hqall!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lvim: set ft=vim[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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|[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('conceal')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:normal W
GGk
:normal W[?12l[?25h[?25l:[?12l[?25h" Conceal settings.
[?25l[?12l[?25h[?25l:[?12l[?25hset conceallevel=2
[?25l[?12l[?25h[?25l:[?12l[?25hset concealcursor=nc
[?25l[?12l[?25h[?25l:[?12l[?25hsyntax match test /|/ conceal
[?25lconcealed  concealed  


a       b       c       d[?12l[?25h[?25l:[?12l[?25h" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?12l[?25h[?25l:[?12l[?25h" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?12l[?25h[?25l:[?12l[?25h" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?12l[?25h[?25l:[?12l[?25hlet positions = []
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?12l[?25h[?25l:[?12l[?25h" Start test.
[?25l[?12l[?25h[?25l/[?12l[?25h^start:
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ztj
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:let positions += ['2:1']
[?12l[?25h[?25l:[?12l[?25h" We should end up in the same column when running these commands on the two
[?25l[?12l[?25h[?25l:[?12l[?25h" lines.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['2:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['2:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['3:1']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['3:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['3:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['5:8']
[?12l[?25h[?25l:[?12l[?25h" Same for next test block.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['5:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['5:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['6:8']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['6:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['6:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['8:1']
[?12l[?25h[?25l:[?12l[?25h" And check W with multiple tabs and conceals in a line.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['8:27']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset lbr
[?25l[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset list listchars=tab:>-
[?25l>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?12l[?25h[?25l:[?12l[?25hnormal 0
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25h" Display result.
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', 'end:')
[?25lend:[?12l[?25h[?25l:[?12l[?25hcall append('$', positions)
[?25l2:12:172:203:13:173:205:85:255:286:86:256:288:1[?12l[?25h[?25l:[?12l[?25h/^end/,$wq! test.out
[?25l"test.out" [New File] 29 lines, 135 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78522b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afeee48bb'
: let res='ok'
:else[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: 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") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb00b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('cryptv') || !exists('*sha256')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc3[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for empty string: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25l
test for empty string: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 1 char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for 1 char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 3 chars: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'
:else[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25ltest for 3 chars: ok
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet te/usr/bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > auto/if_perl.c
stcase='test for contains meta char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25ltest for contains meta char: ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/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
let testcase='test for contains non-ascii char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for contains non-ascii char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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        -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
[New File] 109 lines, 3127 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Use strings to test for memory leaks.
[?25l[?12l[?25h[?25l:[?12l[?25h" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:testvar='abcd'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h" Test for getbufvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:var_num = '1234'
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_num = '5678'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num'))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25hunlet b:var_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, '', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25hunlet def_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, '&autoindent'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '&autoindent', 1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Open new window with forced option values
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hlet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25l:$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[?12l[?25h[?25l:[?12l[?25h$put =otherff
[?25l
dos[?12l[?25h[?25l
:[?12l[?25h$put =string(otherbin)
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =otherfenc
[?25l
iso-8859-2[?12l[?25h[?25l
:[?12l[?25hunlet otherff otherbin otherfenc
[?25l[?12l[?25h[?25l:[?12l[?25h" test for getwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet w:var_str = "Dance"
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_str = "Chance"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str'))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =strigcc -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
ng(getwinvar(1, 'var_str', def_str))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25hunlet w:var_str
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, '', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu',  1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25hunlet def_str
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet t:var_list = [1, 2, 3]
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:other = 777
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_list = [4, 5, 6, 7]
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list'))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, ''))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '', def_list))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25htablast
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hunlet t:var_list
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, '', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25hunlet def_list
[?25l[?12l[?25h[?25l:[?12l[?25htabonly
[?25ldos[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabprev
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hsplit
[?25l2N o[No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hsplit
[?25l + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                                                        [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25hvert split
[?25l4  X||||||~~~~~[No Name]                              [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                 [No Name]                               X[?12l[?25h[?25l:[?12l[?25hlet w:var_dict = {'dict': 'tabwin'}
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_dict = {'dict2': 'newval'}
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd b
[?25l[No Name]                               [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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]
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25htabnext
[?25l + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                              [No Name]                                                                         X[?12l[?25h[?25l:[?12l[?25hunlet w:var_dict
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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'}}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25hunlet def_dict
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l
1[?12l[?25h[?25l
:[?12l[?25htabonly
[?25l0[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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()[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Visual mode and operators[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf-8 nocp viminfo+=nviminfo
[?25lkv3lyjv3lpgvcxxx^[
:$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[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" User functions
[?25l[?12l[?25h[?25l:[?12l[?25hfunction MoveToCap()
[?25l
:  [?12l[?25h:  call search('\u', 'W')

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'[?12l[?25h[?25l:[?12l[?25hfunction SelectInCaps()
[?25l
:  [?12l[?25h:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l:  [?12l[?25h:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l:  [?12l[?25h:  call setpos("'<", [0, line1, col1, 0])

[?25l:  [?12l[?25h:  call setpos("'>", [0, line2, col2, 0])

[?25l:  [?12l[?25h:  normal! gv

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual modes followed by operator
[?25l[?12l[?25h[?25l/[?12l[?25h^apple
[?25l[?12l[?25ha[?25l-- VISUAL --[?12l[?25h[?25lp[?12l[?25h[?25lle banana cherry[?12l[?25h[?25l banana cherry[?12l[?25h [?25lbanan-- VISUAL --[?12l[?25h[?25l
a  cherry[?12l[?25h[?25ly[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^line 1
[?25l[?12l[?25h[?25lline 1 line 1 -- VISUAL LINE --[?12l[?25h[?25lINSERT --Nnewline[?12l[?25h[?25l-- INSERT --newline[?12l[?25h[?25l
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?12l[?25h[?25lline 5 line 5line 6 line 6xxxxxxxxxxxxx[?12l[?25h[?25lxxxxxxxxxxxxx
xxxxxxxxxxxxx[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^xxxx
[?25l[?12l[?25h[?25l


-- VISUAL BLOCK --[?12l[?25h[?25lx
[?12l[?25h[?25lx
x[?12l[?25h[?25lINSERT --O  
  [?12l[?25h [?25l


-- INSERT --  
    [?12l[?25h [?25l
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?12l[?25h[?25l
-- INSERT --O----
    ----
xxxx----
xxxx----[?12l[?25h-[?25l-- INSERT ------------------[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap W /\u/s-1<CR>
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Kiwi
[?25lKiwiRaspberryDateWatermelonPeach[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25l/\u/s-1
Kiw[?12l[?25h[?25l
-- INSERT --NoRaspberryDateWatermelonPeach[?12l[?25ho[?25l
-- INSERT --NoberryDateWatermelonPeach[?12l[?25hoberry[?25lDateWat
-- VISUAL --[?12l[?25h[?25lrmelonPeach[?12l[?25h[?25lach[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Jambu
[?25l
JambuRambutanBananaTangerineMango[?12l[?25hJa[?25l
-- VISUAL --[?12l[?25h[?25l:'<,'>call SelectInCaps()
Jamb[?12l[?25h[?25l
-- INSERT ---RambutanBananaTangerineMango[?12l[?25h-[?25l
-- INSERT ---tanBananaTangerineMango[?12l[?25h-[?25ltanBanana
-- VISUAL --[?12l[?25h[?25l
--angerineMango[?12l[?25ha[?25lgo[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Operator-pending mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25honoremap W /\u/<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Pineapple
[?25lPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h[?25l
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---GrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---Z[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Juniper
[?25l
JuniperDurianZ[?12l[?25h[?25l
:call MoveToCap()
Whavcre
[?12l[?25h[?25l:call MoveToCap()
Qhevna[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Lemon
[?25l
LemonNectarineZ[?12l[?25h[?25l
:call SelectInCaps()
[?12l[?25h[?25lLemonLemonNectarineZ
Lemo[?12l[?25hn[?25l:call SelectInCaps()
NewNectarineZ[?12l[?25hwNecta[?25l
:call SelectInCaps()
wZ[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?12l[?25h[?25l/[?12l[?25h^zzzz
[?25lzzzz[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25lE21: Cannot make changes, 'modifiable' is off[?12l[?25h[?25l:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: replace last line'
[?25l
characterwise visual mode: replace last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25hlet @" = 'x'
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h$put ='v:errmsg='.v:errmsg
[?25l
v:errmsg=[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle line'
[?25l
characterwise visual mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle two line'
[?25l
characterwise visual mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise visual mode: delete last line'
[?25l
characterwise visual mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete last two line'
[?25l
characterwise visual mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Select mode maps
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>End> <End>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Down> <Down>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Del> <Del>
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle line'
[?25l
characterwise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle two line'
[?25l
characterwise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise select mode: delete last line'
[?25l
characterwise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- SELECT --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete last two line'
[?25l
characterwise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- SELECT --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle line'
[?25l
linewise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25lbc
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle two line'
[?25l
linewise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25la
b 
[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='linewise select mode: delete last line'
[?25l
linewise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lc 
-- SELECT LINE --[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete last two line'
[?25l
linewise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lb 

-- SELECT LINE --[?12l[?25h[?25lb
c 
[?12l[?25h[?25l~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='v_p: replace last character with line register at middle line'
[?25l
v_p: replace last character with line register at middle line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25laaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25lccc
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25llinewise 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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25lb[?12l[?25h[?25laaa[?12l[?25h[?25l
ccc
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line'
[?25l
v_p: replace last character with line register at last line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25laaa
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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode after operation'
[?25l
gv in exclusive select mode after operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25h$put ='äà '
[?25l
äÃ[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h
[?25l
-- VISUAL --[?12l[?25h[?25läÃ[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode without operation'
[?25l
gv in exclusive select mode without operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h/^start:/+2,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns with multi-byte support, using utf-8.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:
~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l: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:
~                                                                               [?12l[?25h[?25l


:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?12l[?25h[?25l:[?12l[?25h"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l:endif[?12l[?25h[?25l


:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" check that 'ambiwidth' does not change the meaning of \p
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=1 ambiwidth=single
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=1 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi double: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=single
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi double: 0[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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(toopLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We don't want the status line to cause problems:
[?25l[?12l[?25h[?25l:[?12l[?25hset laststatus=0
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:totalLines = &lines * 20
[?25l[?12l[?25h[?25l:[?12l[?25hlet middle = g:totalLines / 2
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd n
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd o
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'LINE ' . i)

[?25l:  [?12l[?25h:endfor
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25haboveleft vert new
[?25l        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'line ' . i)

[?25l:  [?12l[?25h:endfor
[?25lline 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25l2293023123223323423523623723823924024124224324424524624748495051[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lline 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[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25h" Execute the following two command at once to reproduce the problem.
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb | wincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineLeft = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineRight = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25lLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?12l[?25h[?25l:[?12l[?25h%del _
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25lDifference between the top lines (left - right): 0[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 51 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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(toopLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l:" 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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
/[?12l[?25h[\u4f7f\u5929]\+
[?25l
/[?12l[?25h\%U12345678
[?25l
/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for visual mode not being reset causing E315 error.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"ex-way will require the colon operator which resets the visual mode thuus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25henew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:msg="Everything's fine."
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! TriggerTheProblem()
[?25l
:  [?12l[?25h:^I" At this point there is no visual selection because :call reset it.

[?25l:  [?12l[?25h:^I" Let's restore the selection:

[?25l:  [?12l[?25h:^Inormal gv

[?25l:  [?12l[?25h:^I'<,'>del _

[?25l:  [?12l[?25h:^Itry

[?25l:    [?12l[?25h:^I^Iexe "normal \<Esc>"

[?25l:    [?12l[?25h:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l:    [?12l[?25h:^I^Iechom 'Snap! E315 error!'

[?25l:    [?12l[?25h:^I^Ilet g:msg='Snap! E315 error!'

[?25l:    [?12l[?25h:^Iendtry

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25henew
[?25l[?12l[?25h[?25l:[?12l[?25hsetl buftype=nofile
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'Delete this line.')
[?25lDelete this line.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?12l[?25h[?25l:[?12l[?25h"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?12l[?25h[?25l:[?12l[?25h"       preventing the problem:
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h
[?25lDelete this line. 
[?12l[?25h[?25l:'<,'>[?12l[?25hcall TriggerTheProblem()
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h%del _
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), g:msg)
[?25lEverything's fine.[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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 thuus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :let.  vim: set ft=vim ts=8 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset runtimepath+=./sautest
[?25l[?12l[?25h[?25l:[?12l[?25h" Test to not autoload when assigning.  It causes internal error.
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let Test104#numvar = function('tr')

[?25l:  [?12l[?25h:  $put ='OK: ' . string(Test104#numvar)

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  $put ='FAIL: ' . v:exception

[?25l:  [?12l[?25h:endtry
[?25l: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')[?12l[?25h[?25l
:[?12l[?25hlet a = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = 2
[?25l[?12l[?25h[?25l:[?12l[?25hfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    redir => messages

[?25l:    [?12l[?25h:    execute 'let' letargs

[?25la#1

b#2

:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:    $put ='OK:'

[?25l:    [?12l[?25h:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='FAIL: ' . v:exception

[?25l:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor

[?25lb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for adjusting window and contents     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?12l[?25h[?25l:[?12l[?25hcall setline(1, range(1,256))
[?25l1
234567891011[+][?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! GetScreenStr(row)
[?25l
:  [?12l[?25h:   let str = ""

[?25l:  [?12l[?25h:   for c in range(1,3)

[?25l:    [?12l[?25h:       let str .= nr2char(screenchar(a:row, c))

[?25l:    [?12l[?25h:   endfor

[?25l:  [?12l[?25h:   return str

[?25l:  [?12l[?25h:endfunc
[?25l1
2
3
4
5
6[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?12l[?25h[?25l:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l50
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l59
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25h:wincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l::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[?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for backtrace debug commands.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Foo()
[?25l
:  [?12l[?25h:   let var1 = 1

[?25l:  [?12l[?25h:   let var2 = Bar(var1) + 9

[?25l:  [?12l[?25h:   return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bar(var)
[?25l
:  [?12l[?25h:    let var1 = 2 + a:var

[?25l:  [?12l[?25h:    let var2 = Bazz(var1) + 4

[?25l:  [?12l[?25h:    return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bazz(var)
[?25l
:  [?12l[?25h:    let var1 = 3 + a:var

[?25l:  [?12l[?25h:    let var3 = "another var"

[?25l:  [?12l[?25h:    return var1

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?12l[?25h[?25l:[?12l[?25hdebuggreedy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => out
[?25l[?12l[?25h[?25l:[?12l[?25hdebug echo Foo()
[?25lEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?12l[?25hstep

[?25lfunction Foo

line 1: let var1 = 1

>[?12l[?25hstep

[?25lfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "- show backtrace:\n"

[?25l- show backtrace:

>[?12l[?25hbacktrace

[?25l  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "\nshow variables on different levels:\n"

[?25l
show variables on different levels:

>[?12l[?25hecho var1

[?25l6
>[?12l[?25hup

[?25l>[?12l[?25hback

[?25l  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l3
>[?12l[?25hu

[?25l>[?12l[?25hbt

[?25l->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l1
>[?12l[?25hecho "\n- undefined vars:\n"

[?25l
- undefined vars:

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?12l[?25hframe 2

[?25l>[?12l[?25hecho "undefined var3 on former level:"

[?25lundefined var3 on former level:

>[?12l[?25hecho var3

[?25lError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?12l[?25hfr 0

[?25l>[?12l[?25hecho "here var3 is defined with \"another var\":"

[?25lhere var3 is defined with "another var":

>[?12l[?25hecho var3

[?25lanother var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: return var2

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: End of function

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nundefined var2 on former level"

[?25l
undefined var2 on former level

>[?12l[?25hecho var2

[?25lError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?12l[?25hdown

[?25l>[?12l[?25hecho "here var2 is defined with 10:"

[?25lhere var2 is defined with 10:

>[?12l[?25hecho var2

[?25l10

>[?12l[?25hecho "\n- backtrace movements:\n"

[?25l
- backtrace movements:

>[?12l[?25hb

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\nnext command cannot go down, we are on bottom\n"

[?25l
next command cannot go down, we are on bottom

>[?12l[?25hdown

[?25lframe is zero

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nnext command cannot go up, we are on top\n"

[?25l
next command cannot go up, we are on top

>[?12l[?25hup

[?25lframe at highest level: 1

>[?12l[?25hb

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "fil is not frame or finish, it is file"

[?25lfil is not frame or finish, it is file

>[?12l[?25hfil

[?25l"[No Name]" --No lines in buffer--

>[?12l[?25hecho "\n- relative backtrace movement\n"

[?25l
- relative backtrace movement

>[?12l[?25hfr -1

[?25l>[?12l[?25hframe

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hfra +1

[?25l>[?12l[?25hfram

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "\n- go beyond limits does not crash\n"

[?25l
- go beyond limits does not crash

>[?12l[?25hfr 100

[?25lframe at highest level: 1

>[?12l[?25hfra

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hframe -40

[?25lframe is zero

>[?12l[?25hfram

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\n- final result 19:"

[?25l
- final result 19:

>[?12l[?25hcont

[?25l19

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h0debuggreedy
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25h$put =out
[?25l83 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[+][?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 84 lines, 1390 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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! ttest.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']][?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for option autocommand[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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, secoond 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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hfu! AutoCommand(match)
[?25l
:  [?12l[?25h:^Ilet c=g:testcase

[?25l:  [?12l[?25h:       let item=remove(g:options, 0)

[?25l:  [?12l[?25h:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l:  [?12l[?25h:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l:  [?12l[?25h:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l:  [?12l[?25h:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l:  [?12l[?25h:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l:  [?12l[?25h:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l:  [?12l[?25h:endfu
[?25l: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, secoond 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)[?12l[?25h[?25l
:[?12l[?25hau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="1: Setting number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="2: Setting local number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="3: Setting global number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="4: Setting local autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="5: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="6: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ai!
[?25l[?12l[?25h[?25l:[?12l[?25h Should not print anything, use :noa
[?25lE492: Not an editor command: Should not print anything, use :noa[?12l[?25h[?25l:[?12l[?25hnoa :set nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="7: Setting several global list and number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset list nu
[?25l     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 invallid, 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$[?12l[?25h[?25l:[?12l[?25hnoa set nolist nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="8: Setting global acd\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal acd
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="9: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="10: Setting local autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="11: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal invar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="12: Setting option backspace through :let\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hlet &bs="eol,indent,start"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backup', '', '1', 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25h "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hcall setbufvar(1, '&l:bk', 1)
[?25lE355: Unknown option: l:bk[?12l[?25h[?25l:[?12l[?25h "should trigger, use correct option name
[?25l[?12l[?25h[?25l:[?12l[?25hcall setbufvar(1, '&backup', 1)
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hcall setwinvar(0, '&number', 1)
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25h" Write register now, because next test shouldn't output anything.
[?25l[?12l[?25h[?25l:[?12l[?25h$put r
[?25l60 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>, Scoope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scoope: <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>[?12l[?25h[?25l:[?12l[?25hlet @r=''
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=blah
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:testcase
[?25l    138 
    139 15: Setting key option, shouldn't trigger[?12l[?25h[?25l
:[?12l[?25h$put r
[?25l
    140 [?12l[?25h[?25l
:[?12l[?25h/^dummy text/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for setting the '[,'] marks when joining lines.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^\t\t/
[?25l[?12l[?25h[?25lattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h/^This line/;'}-join
[?25lThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='First test: Start/End '.string(a)
[?25lFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?12l[?25h[?25l:[?12l[?25h$put ='Second test: Start/End '.string(b)
[?25lSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?12l[?25h[?25l:[?12l[?25h/^\t\t/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l11[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l22[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l:[?12l[?25hvsplit
[?25l|
 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 [+]                 [?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  normal g;

[?25l:  [?12l[?25h:  normal ggVGcpass
[?25l21 fewer lines
:  

:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  normal ggVGcfail

[?25l:  

:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  %w! test.out

[?25l"test.out" [New File] 1 line, 5 characters written

:  [?12l[?25h:endtry
[?25lpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                           pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :[count]close! and :[count]hide     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hclose!
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 7 lines, 39 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l"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 = [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/if_tcl.o if_tcl.c
44 lines, 815 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                       test_close_count.in                                                              [?12l[?25h[?25l:[?12l[?25h.hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?12l[?25h[?25l12 9
15 12 9
15 12[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 15 lines, 106 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[?12l[?25h[?25l:[?12l[?25h$ hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$-1 close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h.+close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[+][?12l[?25h[?25l15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 19 lines, 143 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:.+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l25 24 23 21 124 23 21 124 23 2124 21[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 23 lines, 183 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l" Test for expression comparators.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let oldisident=&isident

[?25l:  [?12l[?25h:  set isident+=#

[?25l:  [?12l[?25h:  if 1 is#1

[?25l:    [?12l[?25h:    $put ='ok'

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    $put ='ng'

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  let &isident=oldisident

[?25l:  [?12l[?25h:endtry
[?25l" 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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^marker/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for erasing backword[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h

[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25lド[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h/^test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:rreg, 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, aa:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for various eval features.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:$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:[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun AppendRegContents(reg)
[?25l
:  [?12l[?25h  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:  [?12l[?25h:endfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l
:  [?12l[?25h  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:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hcommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?12l[?25h[?25l:[?12l[?25hfun SetReg(...)
[?25l
:  [?12l[?25h    call call('setreg', a:000)

[?25l:  [?12l[?25h    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l:  [?12l[?25h    call AppendRegContents(a:1)

[?25l:  [?12l[?25h    if a:1 isnot# '='

[?25l:    [?12l[?25h        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun ErrExe(str)
[?25l
:  [?12l[?25h    call append('$', 'Executing '.a:str)

[?25l:  [?12l[?25h    try

[?25l:    [?12l[?25h        execute a:str

[?25l:    [?12l[?25h    catch

[?25l:    [?12l[?25h        $put =v:exception

[?25l:    [?12l[?25h    endtry

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h$put ='{{{1 let tests'

[?25l:  [?12l[?25hlet @" = 'abc'

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\n"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\<C-m>"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @= = '"abc"'

[?25l:  [?12l[?25hAR =

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Basic setreg tests'

[?25l:  [?12l[?25hcall SetReg('a', 'abcA', 'c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcB', 'v')

[?25l:  [?12l[?25hcall SetReg('c', 'abcC', 'l')

[?25l:  [?12l[?25hcall SetReg('d', 'abcD', 'V')

[?25l:  [?12l[?25hcall SetReg('e', 'abcE', 'b')

[?25l:  [?12l[?25hcall SetReg('f', 'abcF', "\<C-v>")

[?25l:  [?12l[?25hcall SetReg('g', 'abcG', 'b10')

[?25l:  [?12l[?25hcall SetReg('h', 'abcH', "\<C-v>10")

[?25l:  [?12l[?25hcall SetReg('I', 'abcI')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending single lines with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc', 'c')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAl', 'l')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc2','c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc', 'ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb', 'ba')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc2','ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb2','b50a')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('C', 'abcCl', 'l')

[?25l:  [?12l[?25hcall SetReg('C', 'abcCc', 'c')

[?25l:  [?12l[?25hcall SetReg('D', 'abcDb', 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('E', 'abcEb', 'b')

[?25l:  [?12l[?25hcall SetReg('E', 'abcEl', 'l')

[?25l:  [?12l[?25hcall SetReg('F', 'abcFc', 'c')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending NL with setreg()'

[?25l:  [?12l[?25hcall setreg('a', 'abcA2', 'c')

[?25l:  [?12l[?25hcall setreg('b', 'abcB2', 'v')

[?25l:  [?12l[?25hcall setreg('c', 'abcC2', 'l')

[?25l:  [?12l[?25hcall setreg('d', 'abcD2', 'V')

[?25l:  [?12l[?25hcall setreg('e', 'abcE2', 'b')

[?25l:  [?12l[?25hcall setreg('f', 'abcF2', "\<C-v>")

[?25l:  [?12l[?25hcall setreg('g', 'abcG2', 'b10')

[?25l:  [?12l[?25hcall setreg('h', 'abcH2', "\<C-v>10")

[?25l:  [?12l[?25hcall setreg('I', 'abcI2')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', "\n")

[?25l:  [?12l[?25hcall SetReg('B', "\n", 'c')

[?25l:  [?12l[?25hcall SetReg('C', "\n")

[?25l:  [?12l[?25hcall SetReg('D', "\n", 'l')

[?25l:  [?12l[?25hcall SetReg('E', "\n")

[?25l:  [?12l[?25hcall SetReg('F', "\n", 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA3'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3'], 'l')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC3'], 'b')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD3'])

[?25l:  [?12l[?25hcall SetReg('e', [1, 2, 'abc', 3])

[?25l:  [?12l[?25hcall SetReg('f', [1, 2, 3])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ['abcA3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3l'], 'la')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3b'], 'lb')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD32'])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', ['abcA32'])

[?25l:  [?12l[?25hcall SetReg('B', ['abcB3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3l'], 'l')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD3b'], 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with NL with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l:  [?12l[?25hcall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l:  [?12l[?25hcall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with NLs with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l:  [?12l[?25hcall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l:  [?12l[?25hcall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Search and expressions'

[?25l:  [?12l[?25hcall SetReg('/', ['abc/'])

[?25l:  [?12l[?25hcall SetReg('/', ["abc/\n"])

[?25l:  [?12l[?25hcall SetReg('=', ['"abc/"'])

[?25l:  [?12l[?25hcall SetReg('=', ["\"abc/\n\""])

[?25l:  [?12l[?25h$put ='{{{1 System clipboard'

[?25l:  [?12l[?25hif has('clipboard')

[?25l:    [?12l[?25h" Save and restore system clipboard.

[?25l:    [?12l[?25h" If no connection to X-Server is possible, test should succeed.

[?25l:    [?12l[?25hlet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l:    [?12l[?25hlet _clipopt = &cb

[?25l:    [?12l[?25hlet &cb='unnamed'

[?25l:    [?12l[?25h5y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25htabdo :windo :echo "hi"

[?25l:    [?12l[?25h6y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25hlet &cb=_clipopt

[?25l:    [?12l[?25hcall call('setreg', _clipreg)

[?25l:    [?12l[?25helse

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l:    [?12l[?25hendif

[?25l:  [?12l[?25h$put ='{{{1 Errors'

[?25l:  [?12l[?25hcall ErrExe('call setreg()')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, 3, 4)')

[?25l:  [?12l[?25hcall ErrExe('call setreg([], 2)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, {})')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, [])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("/", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("=", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l:  [?12l[?25hendfun
[?25l:$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:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test()
[?25lhi*: 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction SetReg
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction AppendRegContents
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction ErrExe
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hdelcommand AR
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name not starting with capital
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! g:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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 moore linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or moore 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()
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name includes a colon
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! b:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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()[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name folowed by #
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! test2() "#

[?25l:  [?12l[?25h:echo "test2"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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() "#[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name starting with/without "g:", buffer-local funcref.
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! g:Foo(n)
[?25l
:  [?12l[?25h:  $put ='called Foo(' . a:n . ')'

[?25l:  [?12l[?25h:endfunction
[?25lExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?12l[?25h[?25l
:[?12l[?25hlet b:my_func = function('Foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcall b:my_func(1)
[?25l
called Foo(1)[?12l[?25h[?25l
:[?12l[?25hecho g:Foo(2)
[?25l0
called Foo(2)[?12l[?25h[?25l
:[?12l[?25hecho Foo(3)
[?25l0
called Foo(3)[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" script-local function used in Funcref must exist.
[?25l[?12l[?25h[?25l:[?12l[?25hso test_eval_func.vim
[?25ls:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Using $ instead of '$' must give an error
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h: call append($, 'foobar')

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='{{{1 getcurpos/setpos'
[?25l
{{{1 getcurpos/setpos[?12l[?25h[?25l
/[?12l[?25h^012345678
[?25lsearch 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[?12l[?25h012345[?25l:[?12l[?25hlet sp = getcurpos()
[?25l[?12l[?25h
[?25l:[?12l[?25hcall setpos('.', sp)
[?25l[?12l[?25h[?25l:[?12l[?25h$put
[?25lExecuting 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" substring and variable name
[?25l[?12l[?25h[?25l:[?12l[?25hlet str = 'abcdef'
[?25l[?12l[?25h[?25l:[?12l[?25hlet n = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[n:]
[?25l
def[?12l[?25h[?25l
:[?12l[?25h$put =str[:n]
[?25l
abcd[?12l[?25h[?25l
:[?12l[?25h$put =str[n:n]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet n
[?25l[?12l[?25h[?25l:[?12l[?25hlet nn = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[nn:]
[?25ldef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:nn]
[?25labcd[?12l[?25h[?25l:[?12l[?25h$put =str[nn:nn]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet nn
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:nn = 4
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:]
[?25lef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:b:nn]
[?25labcde[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:b:nn]
[?25l
e[?12l[?25h[?25l
:[?12l[?25hunlet b:nn
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written

[?1l>[?12l[?25h[?1049l# 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.
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
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'fixeol'vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
2 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" try editing files with 'fixeol' disabled
[?25l[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l
stays eol[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestEol
[?25l"XXTestEol" [New File] 2 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25he! XXNoEol
[?25l"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?12l[?25h[?25l
stays without[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestNoEol
[?25l"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fixeol
[?25l: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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXEol
[?25l"XXEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXNoEol
[?25l"XXNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestEol
[?25l"XXTestEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestNoEol
[?25l"XXTestNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l0[?12l[?25h[?25l:[?12l[?25h$r XXEol
[?25l"XXEol" 2 lines, 13 characterswith eolEND[?12l[?25h[?25l:[?12l[?25h$r XXNoEol
[?25l"XXNoEol" 1 line, 15 characterswithout eolEND[?12l[?25h[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXTestEol
[?25l"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?12l[?25h[?25l:[?12l[?25h$r XXTestNoEol
[?25l"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 84 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?12l[?25h[?25l:set ff& cpo+=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/netbeans.o netbeans.c
[?12l[?25h[?25l/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
[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xtopdir directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GetCwdInfo(win, tab)
[?25l
:  [?12l[?25h: let tab_changed = 0

[?25l:  [?12l[?25h: let mod = ":t"

[?25l:  [?12l[?25h: if a:tab > 0 && a:tab != tabpagenr()

[?25l:    [?12l[?25h:   let tab_changed = 1

[?25l:    [?12l[?25h:   exec "tabnext " . a:tab

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l:  [?12l[?25h: if tab_changed

[?25l:    [?12l[?25h:   tabprevious

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: if a:win == 0 && a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir()

[?25l:    [?12l[?25h: elseif a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win)

[?25l:    [?12l[?25h: else

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win, a:tab)

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: return bufname . ' ' . dirname . ' ' . lflag

[?25l:  [?12l[?25h:endfunction
[?25l: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
[?12l[?25h[?25l

:[?12l[?25h" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xtopdir')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xtopdir
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir1')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir2')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir3')
[?25l[?12l[?25h[?25l:[?12l[?25hnew a
[?25l"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?12l[?25h[?25l:[?12l[?25hnew b
[?25l"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?12l[?25h[?25l:[?12l[?25hnew c
[?25l"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lc                                                                                a                                                                               [?12l[?25h[?25l:[?12l[?25hlcd Xdir1
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                              b                                                                               ab                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                                               b                                                                                [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lcb                                                                               b                                                              a                                                              /<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25htabnew x
[?25l"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hnew y
[?25l"y" [New File]2 y  Xy                                                                                x                                                                                [?12l[?25h[?25l:[?12l[?25hnew z
[?25l"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lz                                                                                x                                                                               x  X[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25ly                                                                               x                                                                                y  X[?12l[?25h[?25l:[?12l[?25hlcd Xdir2
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lzb /                Xz                                                                               yb                                                                               x                                                              [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hlet tp_nr = tabpagenr()
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l 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            [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(3, tp_nr))
[?25l 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            [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(2, tp_nr))
[?25l 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            [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(1, tp_nr))
[?25l 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            [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall writefile(r, test_out, "a")
[?25l[?12l[?25h[?25l:[?12l[?25hq
[?25l 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for repeating insert and replace.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/Second
[?25l[?12l[?25h[?25looooecond line
ooo[?12l[?25h
Las[?25l:[?12l[?25h/^First/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:<[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'listchars' display with 'list' and :list[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:lines = []
[?25l[?12l[?25h[?25l:[?12l[?25hfunction GetScreenCharsForLine(lnum)
[?25l
:  [?12l[?25h:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l:  [?12l[?25h:endfunction
[?25l:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\\<CR>"[?12l[?25h[?25l
:[?12l[?25hnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l:endfunction[?12l[?25h[?25l
:[?12l[?25hset listchars+=tab:>-,space:.,trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset list
[?25l$.<expr>.GG.":call..\\<CR>"$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:$[?12l[?25h[?25l
:[?12l[?25hnormal! jzt
[?25l>-------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<<<<><<$[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset listchars-=trail:<
[?25l.....
.......>..[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hput =g:lines
[?25l10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?12l[?25h[?25l:[?12l[?25h'[,']w! test.out
[?25l"test.out" [New File] 10 lines, 124 characters written[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?12l[?25h[?25l
$[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset listchars+=trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist
[?25l   >>  [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:[?12l[?25h[?25l
:[?12l[?25hredir! >> test.out
[?25l[?12l[?25h[?25l:[?12l[?25h+1,$list
[?25l..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?12l[?25h[?25l
:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option (non-utf8)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25labcd{ef[?12l[?25h[?25l
:[?12l[?25h10new|:vsp|:vert resize 20
[?25l       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                                 [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,4)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: set linebreak"
[?25l[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: set linebreak + set list"
[?25l[?12l[?25h[?25l:[?12l[?25hset linebreak list listchars=
[?25l^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l^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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25labcdef|^Iabcdef hijklmn^I[?12l[?25h[?25l:[?12l[?25hset nolist linebreak ts=8
[?25l    abcdef[?12l[?25h[?25l:[?12l[?25hlet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25l      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l1|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hlet line="_S_\t bla"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l_S_      bla|+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25labbbb[?12l[?25h[?25l:[?12l[?25hsyn match ConcealVar contained /_/ conceal
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match All /.*/ contains=ConcealVar
[?25lSabb[?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: this not"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25labbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE: this not    [?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE:             
+aaaaaaaaaaaaa      [?12l[?25h[?25l:[?12l[?25h1/^REMOVE:
[?25l[?12l[?25h[?25l[?12l[?25h[?25lR[?12l[?25h[?25lEMOVE: 
REMOVE:[?12l[?25h[?25lthis not        
aaaaaaaaaaaaa
~                   [?12l[?25h[?25l:[?12l[?25h$put
[?25l~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?12l[?25h[?25llong line:          [?12l[?25h[?25l foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?12l[?25h+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25lTARGET at
+end[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx at[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak sbr=
[?25lfoobar 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)[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l1111-1111-1111-11-  
1111-1111-1111      [?12l[?25h[?25l[?12l[?25h[?25l111[?12l[?25h[?25l2222[?12l[?25h[?25l2222[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: using redo after block visual mode"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                [?12l[?25h[?25l1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?12l[?25h[?25l[?12l[?25h[?25la
a[?12l[?25h[?25l3 lines changedA
A
A[?12l[?25h[?25lA
AaA[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 10: using normal commands after block-visual"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?12l[?25h[?25l:[?12l[?25hset linebreak
[?25l[?12l[?25h[?25lAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?12l[?25h[?25l[?12l[?25h[?25l[?12l[?25h[?25lpqrs
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?12l[?25h[?25l:[?12l[?25hset linebreak wrap
[?25l[?12l[?25h[?25lA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?12l[?25h[?25l[?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l[?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?12l[?25h[?25l0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25laaaaaaaaaaaaaaaaaaaa|~[?12l[?25h[?25l:[?12l[?25hset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l$[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hlet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25la_|
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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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-$[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" 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
[New File] 62 lines, 2030 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for search('multi-byte char', 'bce')[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hsource small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hsource mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h/^Test bce:/+1
[?25l[?12l[?25h[?25l:[?12l[?25h$put =search('A', 'bce', line('.'))
[?25l15[?12l[?25h[?25l:[?12l[?25h1;/^Results:/,$wq! test.out
[?25l"test.out" [New File] 5 lines, 27 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for Unicode manipulationsvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:" 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
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Visual block Insert adjusts for multi-byte char
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                    [?12l[?25h[?25l:[?12l[?25hcall setline(1, ["aaa", "あああ", "bbb"])
[?25laaa
あああbbb[+][?12l[?25h[?25l:[?12l[?25hexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25lxaa
xあああ
bxbb[?12l[?25h[?25l:[?12l[?25hlet r = getline(1, '$')
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l:" 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
 [?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
axaa
xあああ
bxbb3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for built-in function strchars()
[?25l[?12l[?25h[?25l:[?12l[?25hfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l
:  [?12l[?25h:^I$put=strchars(str)

[?25l:  [?12l[?25h:^I$put=strchars(str, 0)

[?25l:  [?12l[?25h:^I$put=strchars(str, 1)

[?25l:  [?12l[?25h:endfor
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for customlist completion
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete1(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あ', 'い']

[?25l:  [?12l[?25h:endfunction
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete2(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l:  [?12l[?25h:endfunction
[?25l:/^start:/,$wq! test.out
ENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete3(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l:  [?12l[?25h:endfunction
[?25lENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 _[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for wordcount() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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:
[?12l[?25h[?25l
:[?12l[?25hset selection=inclusive fileformat=unix fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                               [?12l[?25h[?25l:[?12l[?25hfu DoRecordWin(...)
[?25l
:  [?12l[?25h:^Iwincmd k

[?25l:  [?12l[?25h:       if exists("a:1")

[?25l:    [?12l[?25h:           call cursor(a:1)

[?25l:    [?12l[?25h:       endif

[?25l:  [?12l[?25h:       let result=[]

[?25l:  [?12l[?25h:       call add(result, g:test)

[?25l:  [?12l[?25h:       call add(result, getline(1, '$'))

[?25l:  [?12l[?25h:       call add(result, wordcount())

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:       return result

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu PutInWindow(args)
[?25l
:  [?12l[?25h:       wincmd k

[?25l:  [?12l[?25h:       %d _

[?25l:  [?12l[?25h:       call append(1, a:args)

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu Log()
[?25l
:  [?12l[?25h:   $put ='----'

[?25l:  [?12l[?25h:   $put =remove(g:log,0)

[?25l:  [?12l[?25h:   $put =string(g:log)

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu! STL()
[?25l
:  [?12l[?25h:    if mode() =~? 'V'

[?25l:    [?12l[?25h:       let g:visual_stat=wordcount()

[?25l:    [?12l[?25h:    endif

[?25l:  [?12l[?25h:    return string(wordcount())

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: empty window"
[?25l[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin()
[?25l[No Name]                                                                        test_wordcount.in                                                               [?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 00, 'cursor_bytes': 0}][+][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: some words, cursor at start"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25lone two three[+][?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([1,1,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_worrds': 0, 'bytes': 15, 'cursor_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 3: some words, cursor at end"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 15}][?12l[?25h[?25l


:[?12l[?25hset ve=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 5: several lines with words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25lone two threeone two three--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([4,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
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}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 6: one line with BOM set"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25l[No Name] [+]                                                                   test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset bomb
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2 lines, 18 characters writtenXtesta         [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hgcc -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
let log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 18, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25hwincmd k
[?25lXtest                                                                           test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset nobomb
[?25l[+][?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtest" 2 lines, 15 characters written    [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 7: one line with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh'])
[?25lÄne M¤ne Müh[+]--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_worrds': 3, 'bytes': 17, 'cursor_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 8: several lines with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25lund raus bist dü!--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'wwords': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 9: visual mode, complete buffer"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}[?12l[?25h[?25lÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 10: visual mode (empty)"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l[?12l[?25h[?25lursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 11: visual mode, single line"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h2
[?25l2,1,3}[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual_2}[?12l[?25h[?25lÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}[?12l[?25h[?25l
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3}[?12l[?25hsor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]s                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^RESULT test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for autocommands:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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] 48 lines, 2298 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" drop out when there is no gzip program
[?25l[?12l[?25h[?25l:[?12l[?25hif !executable("gzip")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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/[?12l[?25h[?25l:[?12l[?25hlet $GZIP = ""
[?25l[?12l[?25h[?25l:[?12l[?25hau FileChangedShell * echo "caught FileChangedShell"
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePre    *.gz   '[,']!gzip
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePost   *.gz   undo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?12l[?25h[?25l11 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[?12l[?25h[?25l:[?12l[?25hau FileReadPost    *.gz   '[,']!gzip -d
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$r Xtestfile.gz                " Read and decompress the testfile
[?25l"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?12l[?25h[?25lstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?12l[?25h[?25l
:[?12l[?25h?startstart?,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 29 lines, 788 characters written[?12l[?25h[?25l:[?12l[?25hau BufNewFile      *.c    read Xtest.c
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25lsearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25he! foo.c                       " Will load Xtest.c
[?25l"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hau! FileAppendPre
[?25l/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile.gz                " Edit compressed file
[?25l:!gzip -d 'Xtestfile.gz'

[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?12l[?25h[?25lcaught FileChangedShell

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hset shelltemp                  " need temp files here
[?25lstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out                    " Edit the output file
[?25l"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[?12l[?25h[?25l:[?12l[?25h23,$!cat
[?25l[?12l[?25h[?25l218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h23,$s/\r$//                 " remove CR for when sed adds them
[?25lE486: Pattern not found: \r$
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25lstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?12l[?25h[?25l
:[?12l[?25hau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz             " Read compressed file
[?25l[?12l[?25h[?25l"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw                           " write it, after filtering
[?25l"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau!             " remove all autocommands
[?25lE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he               " Edit test.out again
[?25l"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?12l[?25h[?25l:[?12l[?25hset nobin ff&   " use the default fileformat for writing
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 61 lines, 1599 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for reading and writing files with conversion for Win32.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make this a dummy test for non-Win32 systems
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("win32") | e! test.ok | wq! test.out | endif
[?25l"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Lua interface and luaeval() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso lua.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?12l[?25h[?25l:[?12l[?25hlua h = vim.dict(); h.list = l
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect()
[?25l[?12l[?25h[?25l/[?12l[?25h^1
[?25l[?12l[?25h[?25l:[?12l[?25h" change buffer contents
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf = vim.buffer()
[?25l[?12l[?25h[?25l:[?12l[?25hlua curline = vim.eval"line('.')"
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf[curline] = "1 changed line 1"
[?25lchanged line 1
[?12l[?25h[?25l:[?12l[?25h" scalar test
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_string = luaeval('"string"')
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_1000 = luaeval('1000')
[?25l[?12l[?25h[?25l:[?12l[?25hif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l
:  [?12l[?25h:let scalar_res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let scalar_res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?12l[?25h[?25l


:[?12l[?25hcall append(search("^1"), "scalar test " . scalar_res)
[?25lscalar test OK
2 line 2[?12l[?25h[?25l:[?12l[?25h" dictionary containing a list
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp = luaeval("h").list[1]
[?25l[?12l[?25h[?25l:[?12l[?25h/^2/put =tmp
[?25l
dictionary with list OK[?12l[?25h[?25l
:[?12l[?25h" circular list (at the same time test lists containing lists)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l
[?25l[?12l[?25h[?25l:[?12l[?25hlet l2 = luaeval("h").list
[?25l[?12l[?25h[?25l:[?12l[?25hif l2[2] == l2
[?25l
:  [?12l[?25h:let res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l: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}")[?12l[?25h[?25l
:[?12l[?25hcall setline(search("^3"), "circular test " . res)
[?25l
circular test OK[?12l[?25h[?25l
:[?12l[?25hlet l = []
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.eval("l")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert("agcc -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
bc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = l[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = l[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = l[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(l)
[?25l
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?12l[?25h[?25l
:[?12l[?25hlet d = {}
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = vim.eval("d")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[4] = d[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[5] = d[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[6] = d[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[7] = d[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(d)
[?25l
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?12l[?25h[?25l
:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 7L, 206C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python') | e! test.ok | wq! test.out | endif
[?25l"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/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/message.o message.c
[New File] 1701 lines, 48985 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h:py3 import vim

[?25l:  [?12l[?25h:py3 cb = vim.current.buffer

[?25l:  [?12l[?25h:let l = []

[?25l:  [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:  [?12l[?25h:py3 f=vim.bindeval('function("strlen")')

[?25l:  [?12l[?25h:" Extending List directly with different types

[?25l:  [?12l[?25h:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-4])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:13]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List assignment

[?25l:  [?12l[?25h:py3 l[0]=0

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:py3 l[-2]=f

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Extending Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:fun d.f()

[?25l:    [?12l[?25h:  return 1

[?25l:    [?12l[?25h:endfun

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hd=vim.bindeval('d')

[?25l:    [?12l[?25hd['1']='asd'

[?25l:    [?12l[?25hd.update()  # Must not do anything, including throwing errors

[?25l:    [?12l[?25hd.update(b=[1, 2, f])

[?25l:    [?12l[?25hd.update((('-1', {'a': 1}),))

[?25l:    [?12l[?25hd.update({'0': -1})

[?25l:    [?12l[?25hdk = d.keys()

[?25l:    [?12l[?25hdv = d.values()

[?25l:    [?12l[?25hdi = d.items()

[?25l:    [?12l[?25hdk.sort(key=repr)

[?25l:    [?12l[?25hdv.sort(key=repr)

[?25l:    [?12l[?25hdi.sort(key=repr)

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =py3eval('d[''f''](self={})')

[?25l:    [?12l[?25h:$put =py3eval('repr(dk)')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:for [key, Val] in sort(items(d))

[?25l:      [?12l[?25h:  $put =string(key) . ' : ' . string(Val)

[?25l:      [?12l[?25h:  unlet key Val

[?25l:      [?12l[?25h:endfor

[?25l:    [?12l[?25h:py3 del dk

[?25l:    [?12l[?25h:py3 del di

[?25l:    [?12l[?25h:py3 del dv

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items with del

[?25l:    [?12l[?25h:py3 del l[2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:try

[?25l:      [?12l[?25h:   py3 del l[:3]

[?25l:      [?12l[?25h:   py3 del l[1:]

[?25l:      [?12l[?25h:catch

[?25l:      [?12l[?25h:   $put =v:exception

[?25l:      [?12l[?25h:endtry

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:py3 del d['-1']

[?25l:    [?12l[?25h:py3 del d['f']

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''b'')'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''1''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(''0'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(''1'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:$put =string(d)

[?25l:    [?12l[?25h:$put =py3eval('repr(d.popitem())')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.get(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[2:1]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:3]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:5]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:6]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[-1:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-3:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-4:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-5:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-6:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[::2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[3:0:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Slice assignment to a list

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['a']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[1:2]=['b']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:4]=['c']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[4:4]=['d']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-1:2]=['e']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-10:2]=['f']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:-10]=['g']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = []

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['h']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:6:2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:-2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Locked variables

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:lockvar! l

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hdef emsg(ei):

[?25l:    [?12l[?25h    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l:    [?12l[?25h

[?25l:    [?12l[?25htry:

[?25l:    [?12l[?25h    l[2]='i'

[?25l:    [?12l[?25hexcept vim.error:

[?25l:    [?12l[?25h    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:unlockvar! l

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Function calls

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25himport sys

[?25l:    [?12l[?25himport re

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hdef ee(expr, g=globals(), l=locals()):

[?25l:    [?12l[?25h    cb = vim.current.buffer

[?25l:    [?12l[?25h    try:

[?25l:    [?12l[?25h        try:

[?25l:    [?12l[?25h            exec(expr, g, l)

[?25l:    [?12l[?25h        except Exception as e:

[?25l:    [?12l[?25h            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:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l:    [?12l[?25h                m = py33_type_error_pattern.search(str(e))

[?25l:    [?12l[?25h                if m:

[?25l:    [?12l[?25h                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l:    [?12l[?25h                else:

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l:    [?12l[?25h            else:

[?25l:    [?12l[?25h                msg = repr((e.__class__, e))

[?25l:    [?12l[?25h                # Some Python versions say can't, others cannot.

[?25l:    [?12l[?25h                if msg.find('can\'t') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('can\'t', 'cannot')

[?25l:    [?12l[?25h                # Some Python versions use single quote, some double quote

[?25l:    [?12l[?25h                if msg.find('"cannot ') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l:    [?12l[?25h                if msg.find(' attributes"') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l:    [?12l[?25h                cb.append(expr + ':' + msg)

[?25l:    [?12l[?25h        else:

[?25l:    [?12l[?25h            cb.append(expr + ':NOT FAILED')

[?25l:    [?12l[?25h    except Exception as e:

[?25l:    [?12l[?25h        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:fun New(...)

[?25l:      [?12l[?25h:   return ['NewStart']+a:000+['NewEnd']

[?25l:      [?12l[?25h:endfun

[?25l:      [?12l[?25h:fun DictNew(...) dict

[?25l:[?12l[?25h:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:let l=[function('New'), function('DictNew')]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:py3 l.extend(list(l[0](1, 2, 3)))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l+=[l[0].name]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 ee('l[1](1, 2, 3)')

[?25l:[?12l[?25h:py3 f=l[0]

[?25l:[?12l[?25h:delfunction New

[?25l:[?12l[?25h:py3 ee('f(1, 2, 3)')

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let l=[0.0]

[?25l:[?12l[?25h:   py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:   py3 l.extend([0.0])

[?25l:[?12l[?25h:   $put =string(l)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='[0.0, 0.0]'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:let messages=[]

[?25l:[?12l[?25h:delfunction DictNew

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25hd=vim.bindeval('{}')

[?25l:[?12l[?25hm=vim.bindeval('messages')

[?25l:[?12l[?25hdef em(expr, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l:[?12l[?25h            m.extend([TypeError.__name__])

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            m.extend([e.__class__.__name__])

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d["abc1"]')

[?25l:[?12l[?25hem('d["abc1"]="\\0"')

[?25l:[?12l[?25hem('d["abc1"]=vim')

[?25l:[?12l[?25hem('d[""]=1')

[?25l:[?12l[?25hem('d["a\\0b"]=1')

[?25l:[?12l[?25hem('d[b"a\\0b"]=1')

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d.pop("abc1")')

[?25l:[?12l[?25hem('d.popitem()')

[?25l:[?12l[?25hdel em

[?25l:[?12l[?25hdel m

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =messages

[?25l:[?12l[?25h:unlet messages

[?25l:[?12l[?25h:" locked and scope attributes

[?25l:[?12l[?25h:let d={} | let dl={} | lockvar dl

[?25l:[?12l[?25h:for s in split("d dl v: g:")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! let d.abc2=1

[?25l:[?12l[?25h:silent! let dl.abc3=1

[?25l:[?12l[?25h:py3 d.locked=True

[?25l:[?12l[?25h:py3 dl.locked=False

[?25l:[?12l[?25h:silent! let d.def=1

[?25l:[?12l[?25h:silent! let dl.def=1

[?25l:[?12l[?25h:put ='d:'.string(d)

[?25l:[?12l[?25h:put ='dl:'.string(dl)

[?25l:[?12l[?25h:unlet d dl

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:let l=[] | let ll=[] | lockvar ll

[?25l:[?12l[?25h:for s in split("l ll")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! call extend(l, [0])

[?25l:[?12l[?25h:silent! call extend(ll, [0])

[?25l:[?12l[?25h:py3 l.locked=True

[?25l:[?12l[?25h:py3 ll.locked=False

[?25l:[?12l[?25h:silent! call extend(l, [1])

[?25l:[?12l[?25h:silent! call extend(ll, [1])

[?25l:[?12l[?25h:put ='l:'.string(l)

[?25l:[?12l[?25h:put ='ll:'.string(ll)

[?25l:[?12l[?25h:unlet l ll

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" py3eval()

[?25l:[?12l[?25h:let l=py3eval('[0, 1, 2]')

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l:[?12l[?25h:$put =sort(items(d))

[?25l:[?12l[?25h:let v:errmsg = ''

[?25l:[?12l[?25h:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let f=py3eval('0.0')

[?25l:[?12l[?25h:   $put =string(f)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='0.0'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:" Invalid values:

[?25l:[?12l[?25h:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l:[?12l[?25h:   try

[?25l:[?12l[?25h:      let v=py3eval(e)

[?25l:[?12l[?25h:   catch

[?25l:[?12l[?25h:      let toput=e.":\t".v:exception[:13]

[?25l:[?12l[?25h:      $put =toput

[?25l:[?12l[?25h:   endtry

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" threading

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport threading

[?25l:[?12l[?25himport time

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass T(threading.Thread):

[?25l:[?12l[?25h    def __init__(self):

[?25l:[?12l[?25h        threading.Thread.__init__(self)

[?25l:[?12l[?25h        self.t = 0

[?25l:[?12l[?25h        self.running = True

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def run(self):

[?25l:[?12l[?25h        while self.running:

[?25l:[?12l[?25h            self.t += 1

[?25l:[?12l[?25h            time.sleep(0.1)

[?25l:[?12l[?25h

[?25l:[?12l[?25ht = T()

[?25l:[?12l[?25hdel T

[?25l:[?12l[?25ht.start()

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:sleep 1

[?25l:[?12l[?25h:py3 t.running = False

[?25l:[?12l[?25h:py3 t.join()

[?25l:[?12l[?25h:" Check if the background thread is working.  Count should be 10, but

on a

[?25l:[?12l[?25h:" busy system (AppVeyor) it can be much lower.

[?25l:[?12l[?25h:py3 l[0] = t.t > 4

[?25l:[?12l[?25h:py3 del time

[?25l:[?12l[?25h:py3 del threading

[?25l:[?12l[?25h:py3 del t

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" settrace

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef traceit(frame, event, arg):

[?25l:[?12l[?25h    global l

[?25l:[?12l[?25h    if event == "line":

[?25l:[?12l[?25h        l += [frame.f_lineno]

[?25l:[?12l[?25h    return traceit

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef trace_main():

[?25l:[?12l[?25h    for i in range(5):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:py3 sys.settrace(traceit)

[?25l:[?12l[?25h:py3 trace_main()

[?25l:[?12l[?25h:py3 sys.settrace(None)

[?25l:[?12l[?25h:py3 del traceit

[?25l:[?12l[?25h:py3 del trace_main

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Slice

[?25l:[?12l[?25h:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l:[?12l[?25h:py3 l = ll[:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-4:-2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[0:6]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-10:10]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:-1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[::2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 del l

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Vars

[?25l:[?12l[?25h:let g:foo = 'bac'

[?25l:[?12l[?25h:let w:abc3 = 'def'

[?25l:[?12l[?25h:let b:baz = 'bar'

[?25l:[?12l[?25h:let t:bar = 'jkl'

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  throw "Abc"

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  put =py3eval('vim.vvars[''exception'']')

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:put =py3eval('vim.vars[''foo'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Options

[?25l:[?12l[?25h:" paste:          boolean, global

[?25l:[?12l[?25h:" previewheight   number,  global

[?25l:[?12l[?25h:" operatorfunc:   string,  global

[?25l:[?12l[?25h:" number:         boolean, window-local

[?25l:[?12l[?25h:" numberwidth:    number,  window-local

[?25l:[?12l[?25h:" colorcolumn:    string,  window-local

[?25l:[?12l[?25h:" statusline:     string,  window-local/global

[?25l:[?12l[?25h:" autoindent:     boolean, buffer-local

[?25l:[?12l[?25h:" shiftwidth:     number,  buffer-local

[?25l:[?12l[?25h:" omnifunc:       string,  buffer-local

[?25l:[?12l[?25h:" preserveindent: boolean, buffer-local/global

[?25l:[?12l[?25h:" path:           string,  buffer-local/global

[?25l:[?12l[?25h:let g:bufs=[bufnr('%')]

[?25l:[?12l[?25h:new

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd j

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd l

[?25l:[?12l[?25h:fun RecVars(opt)

[?25l:[?12l[?25h:  let gval =string(eval('&g:'.a:opt))

[?25l:[?12l[?25h:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  put ='  G: '.gval

[?25l:[?12l[?25h:  put ='  W: '.wvals

[?25l:[?12l[?25h:  put ='  B: '.wvals

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef e(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('return ' + repr(e.__class__.__name__))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef ev(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        return eval(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l:[?12l[?25h        return 0

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:fun E(s)

[?25l:[?12l[?25h:   python3 e(vim.eval('a:s'))

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun Ev(s)

[?25l:[?12l[?25h:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l:[?12l[?25h:   if exists('exc')

[?25l:[?12l[?25h:       throw exc

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   return r

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:py3 gopts1=vim.options

[?25l:[?12l[?25h:py3 wopts1=vim.windows[2].options

[?25l:[?12l[?25h:py3 wopts2=vim.windows[0].options

[?25l:[?12l[?25h:py3 wopts3=vim.windows[1].options

[?25l:[?12l[?25h:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l:[?12l[?25h:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l:[?12l[?25h:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l:[?12l[?25h:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l:[?12l[?25h:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l:[?12l[?25h:py3 gset=set(iter(gopts1))

[?25l:[?12l[?25h:py3 wset=set(iter(wopts1))

[?25l:[?12l[?25h:py3 bset=set(iter(bopts1))

[?25l:[?12l[?25h:set path=.,..,,

[?25l:[?12l[?25h:let lst=[]

[?25l:[?12l[?25h:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l:[?12l[?25h:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l:[?12l[?25h:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l:[?12l[?25h:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l:[?12l[?25h:   py3 oname=vim.eval('oname')

[?25l:[?12l[?25h:   py3 oval1=vim.bindeval('oval1')

[?25l:[?12l[?25h:   py3 oval2=vim.bindeval('oval2')

[?25l:[?12l[?25h:   py3 oval3=vim.bindeval('oval3')

[?25l:[?12l[?25h:   if invval is 0 || invval is 1

[?25l:[?12l[?25h:       py3 invval=bool(vim.bindeval('invval'))

[?25l:[?12l[?25h:   else

[?25l:[?12l[?25h:       py3 invval=vim.bindeval('invval')

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   if bool

[?25l:[?12l[?25h:       py3 oval1=bool(oval1)

[?25l:[?12l[?25h:       py3 oval2=bool(oval2)

[?25l:[?12l[?25h:       py3 oval3=bool(oval3)

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   put ='>>> '.oname

[?25l:[?12l[?25h:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l:[?12l[?25h:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l:[?12l[?25h:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l:[?12l[?25h:       try

[?25l:[?12l[?25h:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l:[?12l[?25h:       catch

[?25l:[?12l[?25h:           put ='  p/'.v.'! '.v:exception

[?25l:[?12l[?25h:       endtry

[?25l:[?12l[?25h:       let r=E(v.'['''.oname.''']=invval')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  inv: '.string(invval).'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l:[?12l[?25h:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l:[?12l[?25h:           let r=E(vv.'['''.oname.''']='.val)

[?25l:[?12l[?25h:           if r isnot 0

[?25l:[?12l[?25h:               put ='  '.vv.'! '.r

[?25l:[?12l[?25h:           endif

[?25l:[?12l[?25h:       endfor

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:   for v in ['wopts3', 'bopts3']

[?25l:[?12l[?25h:       let r=E('del '.v.'["'.oname.'"]')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  del '.v.'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:delfunction RecVars

[?25l:[?12l[?25h:delfunction E

[?25l:[?12l[?25h:delfunction Ev

[?25l:[?12l[?25h:py3 del ev

[?25l:[?12l[?25h:py3 del e

[?25l:[?12l[?25h:only

[?25l:[?12l[?25h:for buf in g:bufs[1:]

[?25l:[?12l[?25h:   execute 'bwipeout!' buf

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:py3 del gopts1

[?25l:[?12l[?25h:py3 del wopts1

[?25l:[?12l[?25h:py3 del wopts2

[?25l:[?12l[?25h:py3 del wopts3

[?25l:[?12l[?25h:py3 del bopts1

[?25l:[?12l[?25h:py3 del bopts2

[?25l:[?12l[?25h:py3 del bopts3

[?25l:[?12l[?25h:py3 del oval1

[?25l:[?12l[?25h:py3 del oval2

[?25l:[?12l[?25h:py3 del oval3

[?25l:[?12l[?25h:py3 del oname

[?25l:[?12l[?25h:py3 del invval

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test buffer object

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:put ='First line'

[?25l:[?12l[?25h:put ='Second line'

[?25l:[?12l[?25h:put ='Third line'

[?25l:[?12l[?25h:1 delete _

[?25l:[?12l[?25h:py3 b=vim.current.buffer

[?25l:[?12l[?25h:wincmd w

[?25l:[?12l[?25h:mark a

[?25l:[?12l[?25h:augroup BUFS

[?25l:[?12l[?25h:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:augroup END

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Tests BufferAppend and BufferItem

[?25l:[?12l[?25hcb.append(b[0])

[?25l:[?12l[?25h# Tests BufferSlice and BufferAssSlice

[?25l:[?12l[?25hcb.append('abc5') # Will be overwritten

[?25l:[?12l[?25hcb[-1:] = b[:-2]

[?25l:[?12l[?25h# Test BufferLength and BufferAssSlice

[?25l:[?12l[?25hcb.append('def') # Will not be overwritten

[?25l:[?12l[?25hcb[len(cb):] = b[:]

[?25l:[?12l[?25h# Test BufferAssItem and BufferMark

[?25l:[?12l[?25hcb.append('ghi') # Will be overwritten

[?25l:[?12l[?25hcb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l:[?12l[?25h# Test BufferRepr

[?25l:[?12l[?25hcb.append(repr(cb) + repr(b))

[?25l:[?12l[?25h# Modify foreign buffer

[?25l:[?12l[?25hb.append('foo')

[?25l:[?12l[?25hb[0]='bar'

[?25l:[?12l[?25hb[0:0]=['baz']

[?25l:[?12l[?25hvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l:[?12l[?25h# Test assigning to name property

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hold_name = cb.name

[?25l:[?12l[?25hcb.name = 'foo'

[?25l:[?12l[?25hcb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hb.name = 'bar'

[?25l:[?12l[?25hcb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hcb.name = old_name

[?25l:[?12l[?25hcb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel old_name

[?25l:[?12l[?25h# Test CheckBuffer

[?25l:[?12l[?25hfor _b in vim.buffers:

[?25l:[?12l[?25h    if _b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(_b.number))

[?25l:[?12l[?25hdel _b

[?25l:[?12l[?25hcb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l:[?12l[?25hfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr)

[?25l:[?12l[?25h    except vim.error:

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        # Usually a SEGV here

[?25l:[?12l[?25h        # Should not happen in any case

[?25l:[?12l[?25h        cb.append('No exception for ' + expr)

[?25l:[?12l[?25hvim.command('cd .')

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.buffers object

[?25l:[?12l[?25h:set hidden

[?25l:[?12l[?25h:edit a

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit b

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit c

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Check GCing iterator that was not fully exhausted

[?25l:[?12l[?25hi = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# and also check creating more than one iterator at a time

[?25l:[?12l[?25hi2 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i2:' + str(next(i2)))

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# The following should trigger GC and not cause any problems

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hdel i2

[?25l:[?12l[?25hi3 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i3:' + str(next(i3)))

[?25l:[?12l[?25hdel i3

[?25l:[?12l[?25h

[?25l:[?12l[?25hprevnum = 0

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    # Check buffer order

[?25l:[?12l[?25h    if prevnum >= b.number:

[?25l:[?12l[?25h        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l:[?12l[?25h    # Check indexing: vim.buffers[number].number == number

[?25l:[?12l[?25h    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l:[?12l[?25h    prevnum = b.number

[?25l:[?12l[?25hdel prevnum

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append(str(len(vim.buffers)))

[?25l:[?12l[?25h

[?25l:[?12l[?25hbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Test wiping out buffer with existing iterator

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept vim.error:

[?25l:[?12l[?25h    pass

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h    cb.append('!!!! No vim.error')

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept StopIteration:

[?25l:[?12l[?25h    cb.append('StopIteration')

[?25l:[?12l[?25hdel i4

[?25l:[?12l[?25hdel bnums

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l:[?12l[?25h:tabnew 0

[?25l:[?12l[?25h:tabnew 1

[?25l:[?12l[?25h:vnew a.1

[?25l:[?12l[?25h:tabnew 2

[?25l:[?12l[?25h:vnew a.2

[?25l:[?12l[?25h:vnew b.2

[?25l:[?12l[?25h:vnew c.2

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hcb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l:[?12l[?25hcb.append('Current tab pages:')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef W(w):

[?25l:[?12l[?25h    if '(unknown)' in repr(w):

[?25l:[?12l[?25h        return '<window object (unknown)>'

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef Cursor(w, start=len(cb)):

[?25l:[?12l[?25h    if w.buffer is cb:

[?25l:[?12l[?25h        return repr((start - w.cursor[0], w.cursor[1]))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w.cursor)

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor t in vim.tabpages:

[?25l:[?12l[?25h    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l:[?12l[?25h    cb.append('  Windows:')

[?25l:[?12l[?25h    for w in t.windows:

[?25l:[?12l[?25h        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l:[?12l[?25h        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l:[?12l[?25h        for attr in ('height', 'row', 'width', 'col'):

[?25l:[?12l[?25h            try:

[?25l:[?12l[?25h                aval = getattr(w, attr)

[?25l:[?12l[?25h                if type(aval) is not int:

[?25l:[?12l[?25h                    raise TypeError

[?25l:[?12l[?25h                if aval < 0:

[?25l:[?12l[?25h                    raise ValueError

[?25l:[?12l[?25h            except Exception as e:

[?25l:[?12l[?25h                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l:[?12l[?25h        del aval

[?25l:[?12l[?25h        del attr

[?25l:[?12l[?25h        w.cursor = (len(w.buffer), 0)

[?25l:[?12l[?25hdel W

[?25l:[?12l[?25hdel Cursor

[?25l:[?12l[?25hcb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l:[?12l[?25hif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l:[?12l[?25h    cb.append('!!!!!! Windows differ')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.current

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef H(o):

[?25l:[?12l[?25h    return repr(o)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l:[?12l[?25hcb.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:[?12l[?25hdel H

[?25l:[?12l[?25h# Assigning: fails

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    vim.current.window = vim.tabpages[0].window

[?25l:[?12l[?25hexcept ValueError:

[?25l:[?12l[?25h    cb.append('ValueError at assigning foreign tab window')

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor attr in ('window', 'tabpage', 'buffer'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        setattr(vim.current, attr, None)

[?25l:[?12l[?25h    except TypeError:

[?25l:[?12l[?25h        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Assigning: success

[?25l:[?12l[?25hvim.current.tabpage = vim.tabpages[-2]

[?25l:[?12l[?25hvim.current.buffer = cb

[?25l:[?12l[?25hvim.current.window = vim.windows[0]

[?25l:[?12l[?25hvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window))

[?25l:[?12l[?25hcb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l:[?12l[?25hcb.append('Current line: ' + repr(vim.current.line))

[?25l:[?12l[?25hws = list(vim.windows)

[?25l:[?12l[?25hts = list(vim.tabpages)

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    if b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(b.number))

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hcb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l:[?12l[?25hcb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l:[?12l[?25hdel w

[?25l:[?12l[?25hdel t

[?25l:[?12l[?25hdel ts

[?25l:[?12l[?25hdel ws

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:tabonly!

[?25l:[?12l[?25h:only!

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test types

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor expr, attr in (

[?25l:[?12l[?25h    ('vim.vars',                         'Dictionary'),

[?25l:[?12l[?25h    ('vim.options',                      'Options'),

[?25l:[?12l[?25h    ('vim.bindeval("{}")',               'Dictionary'),

[?25l:[?12l[?25h    ('vim.bindeval("[]")',               'List'),

[?25l:[?12l[?25h    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l:[?12l[?25h    ('vim.current.buffer',               'Buffer'),

[?25l:[?12l[?25h    ('vim.current.range',                'Range'),

[?25l:[?12l[?25h    ('vim.current.window',               'Window'),

[?25l:[?12l[?25h    ('vim.current.tabpage',              'TabPage'),

[?25l:[?12l[?25h):

[?25l:[?12l[?25h    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l:[?12l[?25hdel expr

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test __dir__() method

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor name, o in (

[?25l:[?12l[?25h        ('current',    vim.current),

[?25l:[?12l[?25h        ('buffer',     vim.current.buffer),

[?25l:[?12l[?25h        ('window',     vim.current.window),

[?25l:[?12l[?25h        ('tabpage',    vim.current.tabpage),

[?25l:[?12l[?25h        ('range',      vim.current.range),

[?25l:[?12l[?25h        ('dictionary', vim.bindeval('{}')),

[?25l:[?12l[?25h        ('list',       vim.bindeval('[]')),

[?25l:[?12l[?25h        ('function',   vim.bindeval('function("tr")')),

[?25l:[?12l[?25h        ('output',     sys.stdout),

[?25l:[?12l[?25h    ):

[?25l:[?12l[?25h    cb.append(name + ':' + ','.join(dir(o)))

[?25l:[?12l[?25hdel name

[?25l:[?12l[?25hdel o

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.*.__new__

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary({})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List()'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'')'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l:[?12l[?25h:$put ='auto_rebind'

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.Function

[?25l:[?12l[?25h:function Args(...)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:function SelfArgs(...) dict

[?25l:[?12l[?25h:   return [a:000, self]

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:" The following four lines should not crash

[?25l:[?12l[?25h:let Pt = function('tr', [[]], {'l': []})

[?25l:[?12l[?25h:py3 Pt = vim.bindeval('Pt')

[?25l:[?12l[?25h:unlet Pt

[?25l:[?12l[?25h:py3 del Pt

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef ecall(out_prefix, func, *args, **kwargs):

[?25l:[?12l[?25h    line = out_prefix + ': '

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        ret = func(*args, **kwargs)

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        line += '!exception: ' + emsg(sys.exc_info())

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l:[?12l[?25h    cb.append(line)

[?25l:[?12l[?25ha = vim.Function('Args')

[?25l:[?12l[?25hpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l:[?12l[?25hpa2 = vim.Function('Args', args=[])

[?25l:[?12l[?25hpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l:[?12l[?25hpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l:[?12l[?25hcb.append('a: ' + repr(a))

[?25l:[?12l[?25hcb.append('pa1: ' + repr(pa1))

[?25l:[?12l[?25hcb.append('pa2: ' + repr(pa2))

[?25l:[?12l[?25hcb.append('pa3: ' + repr(pa3))

[?25l:[?12l[?25hcb.append('pa4: ' + repr(pa4))

[?25l:[?12l[?25hsa = vim.Function('SelfArgs')

[?25l:[?12l[?25hpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l:[?12l[?25hpsa2 = vim.Function('SelfArgs', args=[])

[?25l:[?12l[?25hpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l:[?12l[?25hpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l:[?12l[?25hpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l:[?12l[?25hpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l:[?12l[?25hpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l:[?12l[?25hpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l:[?12l[?25hpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l:[?12l[?25hpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l:[?12l[?25hpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l:[?12l[?25hpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l:[?12l[?25hcb.append('sa: ' + repr(sa))

[?25l:[?12l[?25hcb.append('psa1: ' + repr(psa1))

[?25l:[?12l[?25hcb.append('psa2: ' + repr(psa2))

[?25l:[?12l[?25hcb.append('psa3: ' + repr(psa3))

[?25l:[?12l[?25hcb.append('psa4: ' + repr(psa4))

[?25l:[?12l[?25hcb.append('psa5: ' + repr(psa5))

[?25l:[?12l[?25hcb.append('psa6: ' + repr(psa6))

[?25l:[?12l[?25hcb.append('psa7: ' + repr(psa7))

[?25l:[?12l[?25hcb.append('psa8: ' + repr(psa8))

[?25l:[?12l[?25hcb.append('psa9: ' + repr(psa9))

[?25l:[?12l[?25hcb.append('psaA: ' + repr(psaA))

[?25l:[?12l[?25hcb.append('psaB: ' + repr(psaB))

[?25l:[?12l[?25hcb.append('psaC: ' + repr(psaC))

[?25l:[?12l[?25h

[?25l:[?12l[?25hpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l:[?12l[?25hpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l:[?12l[?25hpsar.self['rec'] = psar

[?25l:[?12l[?25hpsar.self['self'] = psar.self

[?25l:[?12l[?25hpsar.self['args'] = psar.args

[?25l:[?12l[?25h

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    cb.append('psar: ' + repr(psar))

[?25l:[?12l[?25hexcept Exception:

[?25l:[?12l[?25h    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put ='s(a): '.string(py3eval('a'))

[?25l:[?12l[?25h:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l:[?12l[?25h:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l:[?12l[?25h:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l:[?12l[?25h:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l:[?12l[?25h:$put ='s(sa): '.string(py3eval('sa'))

[?25l:[?12l[?25h:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l:[?12l[?25h:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l:[?12l[?25h:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l:[?12l[?25h:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l:[?12l[?25h:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l:[?12l[?25h:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l:[?12l[?25h:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l:[?12l[?25h:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l:[?12l[?25h:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l:[?12l[?25h:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l:[?12l[?25h:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l:[?12l[?25h:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l:[?12l[?25h:   let d = {'f': py3eval(v)}

[?25l:[?12l[?25h:   $put ='d.'.v.'(): '.string(d.f())

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a()', a, )

[?25l:[?12l[?25h:py3 ecall('pa1()', pa1, )

[?25l:[?12l[?25h:py3 ecall('pa2()', pa2, )

[?25l:[?12l[?25h:py3 ecall('pa3()', pa3, )

[?25l:[?12l[?25h:py3 ecall('pa4()', pa4, )

[?25l:[?12l[?25h:py3 ecall('sa()', sa, )

[?25l:[?12l[?25h:py3 ecall('psa1()', psa1, )

[?25l:[?12l[?25h:py3 ecall('psa2()', psa2, )

[?25l:[?12l[?25h:py3 ecall('psa3()', psa3, )

[?25l:[?12l[?25h:py3 ecall('psa4()', psa4, )

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, 43)', a, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l:[?12l[?25h:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef s(v):

[?25l:[?12l[?25h    if v is None:

[?25l:[?12l[?25h        return repr(v)

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return str(vim.Function('string')(v), 'utf-8')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.args: ' + s(a.args))

[?25l:[?12l[?25hcb.append('pa1.args: ' + s(pa1.args))

[?25l:[?12l[?25hcb.append('pa2.args: ' + s(pa2.args))

[?25l:[?12l[?25hcb.append('pa3.args: ' + s(pa3.args))

[?25l:[?12l[?25hcb.append('pa4.args: ' + s(pa4.args))

[?25l:[?12l[?25hcb.append('sa.args: ' + s(sa.args))

[?25l:[?12l[?25hcb.append('psa1.args: ' + s(psa1.args))

[?25l:[?12l[?25hcb.append('psa2.args: ' + s(psa2.args))

[?25l:[?12l[?25hcb.append('psa3.args: ' + s(psa3.args))

[?25l:[?12l[?25hcb.append('psa4.args: ' + s(psa4.args))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.self: ' + s(a.self))

[?25l:[?12l[?25hcb.append('pa1.self: ' + s(pa1.self))

[?25l:[?12l[?25hcb.append('pa2.self: ' + s(pa2.self))

[?25l:[?12l[?25hcb.append('pa3.self: ' + s(pa3.self))

[?25l:[?12l[?25hcb.append('pa4.self: ' + s(pa4.self))

[?25l:[?12l[?25hcb.append('sa.self: ' + s(sa.self))

[?25l:[?12l[?25hcb.append('psa1.self: ' + s(psa1.self))

[?25l:[?12l[?25hcb.append('psa2.self: ' + s(psa2.self))

[?25l:[?12l[?25hcb.append('psa3.self: ' + s(psa3.self))

[?25l:[?12l[?25hcb.append('psa4.self: ' + s(psa4.self))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.name: ' + s(a.name))

[?25l:[?12l[?25hcb.append('pa1.name: ' + s(pa1.name))

[?25l:[?12l[?25hcb.append('pa2.name: ' + s(pa2.name))

[?25l:[?12l[?25hcb.append('pa3.name: ' + s(pa3.name))

[?25l:[?12l[?25hcb.append('pa4.name: ' + s(pa4.name))

[?25l:[?12l[?25hcb.append('sa.name: ' + s(sa.name))

[?25l:[?12l[?25hcb.append('psa1.name: ' + s(psa1.name))

[?25l:[?12l[?25hcb.append('psa2.name: ' + s(psa2.name))

[?25l:[?12l[?25hcb.append('psa3.name: ' + s(psa3.name))

[?25l:[?12l[?25hcb.append('psa4.name: ' + s(psa4.name))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l:[?12l[?25hcb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l:[?12l[?25hcb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l:[?12l[?25hcb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l:[?12l[?25hcb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l:[?12l[?25hcb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l:[?12l[?25hcb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l:[?12l[?25hcb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l:[?12l[?25hcb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l:[?12l[?25hcb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l:[?12l[?25hcb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l:[?12l[?25hcb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l:[?12l[?25hcb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l:[?12l[?25hcb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l:[?12l[?25hcb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l:[?12l[?25hcb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l:[?12l[?25hcb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l:[?12l[?25hcb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel s

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel a

[?25l:[?12l[?25hdel pa1

[?25l:[?12l[?25hdel pa2

[?25l:[?12l[?25hdel pa3

[?25l:[?12l[?25hdel pa4

[?25l:[?12l[?25hdel sa

[?25l:[?12l[?25hdel psa1

[?25l:[?12l[?25hdel psa2

[?25l:[?12l[?25hdel psa3

[?25l:[?12l[?25hdel psa4

[?25l:[?12l[?25hdel psa5

[?25l:[?12l[?25hdel psa6

[?25l:[?12l[?25hdel psa7

[?25l:[?12l[?25hdel psa8

[?25l:[?12l[?25hdel psa9

[?25l:[?12l[?25hdel psaA

[?25l:[?12l[?25hdel psaB

[?25l:[?12l[?25hdel psaC

[?25l:[?12l[?25hdel psar

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel ecall

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test stdout/stderr

[?25l:[?12l[?25h:redir => messages

[?25l:[?12l[?25h:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l:[?12l[?25h:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l:[?12l[?25h:py3 sys.stdout.writelines(iter('abcA'))

[?25l:[?12l[?25h:py3 sys.stderr.writelines(iter('abcB'))

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l:[?12l[?25h:" Test subclassing

[?25l:[?12l[?25h:fun Put(...)

[?25l:[?12l[?25h:   $put =string(a:000)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hclass DupDict(vim.Dictionary):

[?25l:[?12l[?25h    def __setitem__(self, key, value):

[?25l:[?12l[?25h        super(DupDict, self).__setitem__(key, value)

[?25l:[?12l[?25h        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l:[?12l[?25hdd = DupDict()

[?25l:[?12l[?25hdd['a'] = 'b'

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupList(vim.List):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        return [super(DupList, self).__getitem__(idx)] * 2

[?25l:[?12l[?25h

[?25l:[?12l[?25hdl = DupList()

[?25l:[?12l[?25hdl2 = DupList(iter('abcC'))

[?25l:[?12l[?25hdl.extend(dl2[0])

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupFun(vim.Function):

[?25l:[?12l[?25h    def __call__(self, arg):

[?25l:[?12l[?25h        return super(DupFun, self).__call__(arg, arg)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdf = DupFun('Put')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =string(sort(keys(py3eval('dd'))))

[?25l:[?12l[?25h:$put =string(py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dl2'))

[?25l:[?12l[?25h:$put =string(py3eval('df(2)'))

[?25l:[?12l[?25h:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l:[?12l[?25h:$put =string(py3eval('df'))

[?25l:[?12l[?25h:delfunction Put

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel DupDict

[?25l:[?12l[?25hdel DupList

[?25l:[?12l[?25hdel DupFun

[?25l:[?12l[?25hdel dd

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel dl2

[?25l:[?12l[?25hdel df

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test chdir

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hfnamemodify = vim.Function('fnamemodify')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hos.chdir('..')

[?25l:[?12l[?25hpath = fnamemodify('.', ':p:h:t')

[?25l:[?12l[?25hif path != b'src':

[?25l:[?12l[?25h  # Running tests from a shadow directory, so move up anot

her level

[?25l:[?12l[?25h  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l:[?12l[?25h  # slicing to remove the leading path and path separator

[?25l:[?12l[?25h  os.chdir('..')

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l:[?12l[?25h  os.chdir(path)

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel path

[?25l:[?12l[?25hos.chdir('testdir')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hdel fnamemodify

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test errors

[?25l:[?12l[?25h:fun F() dict

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun D()

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hd = vim.Dictionary()

[?25l:[?12l[?25hned = vim.Dictionary(foo='bar', baz='abcD')

[?25l:[?12l[?25hdl = vim.Dictionary(a=1)

[?25l:[?12l[?25hdl.locked = True

[?25l:[?12l[?25hl = vim.List()

[?25l:[?12l[?25hll = vim.List('abcE')

[?25l:[?12l[?25hll.locked = True

[?25l:[?12l[?25hnel = vim.List('abcO')

[?25l:[?12l[?25hf = vim.Function('string')

[?25l:[?12l[?25hfd = vim.Function('F')

[?25l:[?12l[?25hfdel = vim.Function('D')

[?25l:[?12l[?25hvim.command('delfunction D')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef subexpr_test(expr, name, subexprs):

[?25l:[?12l[?25h    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l:[?12l[?25h    for subexpr in subexprs:

[?25l:[?12l[?25h        ee(expr % subexpr)

[?25l:[?12l[?25h    cb.append('<<< Finished')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef stringtochars_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, 'StringToChars', (

[?25l:[?12l[?25h        '1',       # Fail type checks

[?25l:[?12l[?25h        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l:[?12l[?25h        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass Mapping(object):

[?25l:[?12l[?25h    def __init__(self, d):

[?25l:[?12l[?25h        self.d = d

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __getitem__(self, key):

[?25l:[?12l[?25h        return self.d[key]

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return self.d.keys()

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def items(self):

[?25l:[?12l[?25h        return self.d.items()

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompyobject_test(expr, recurse=True):

[?25l:[?12l[?25h    # pydict_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % '{%s : 1}')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l:[?12l[?25h    # pymap_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l:[?12l[?25h    # pyseq_to_tv

[?25l:[?12l[?25h    iter_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l:[?12l[?25h        'None',                 # Not conversible

[?25l:[?12l[?25h        '{b"": 1}',             # Empty key not allowe

d
[?25l:[?12l[?25h        '{"": 1}',              # Same, but with unico

de object

[?25l:[?12l[?25h        'FailingMapping()',     #

[?25l:[?12l[?25h        'FailingMappingKey()',  #

[?25l:[?12l[?25h        'FailingNumber()',      #

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompymapping_test(expr):

[?25l:[?12l[?25h    convertfrompyobject_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef iter_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, '*Iter*', (

[?25l:[?12l[?25h        'FailingIter()',

[?25l:[?12l[?25h        'FailingIterNext()',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef number_test(expr, natural=False, unsigned=False):

[?25l:[?12l[?25h    if natural:

[?25l:[?12l[?25h        unsigned = True

[?25l:[?12l[?25h    return subexpr_test(expr, 'NumberToLong', (

[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h        'None',

[?25l:[?12l[?25h    ) + (('-1',) if unsigned else ())

[?25l:[?12l[?25h    + (('0',) if natural else ()))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingTrue(object):

[?25l:[?12l[?25h    def __bool__(self):

[?25l:[?12l[?25h        raise NotImplementedError('bool')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIter(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        raise NotImplementedError('iter')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNext(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        raise NotImplementedError('next')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNextN(object):

[?25l:[?12l[?25h    def __init__(self, n):

[?25l:[?12l[?25h        self.n = n

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        if self.n:

[?25l:[?12l[?25h            self.n -= 1

[?25l:[?12l[?25h            return 1

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            raise NotImplementedError('next N')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMappingKey(object):

[?25l:[?12l[?25h    def __getitem__(self, item):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mappingkey'

)
[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return list("abcH")

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMapping(object):

[?25l:[?12l[?25h    def __getitem__(self):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mapping')

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        raise NotImplementedError('keys')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingList(list):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        if i == 2:

[?25l:[?12l[?25h            raise NotImplementedError('getitem:list')

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            return super(FailingList, self).__getitem_

_(idx)

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass NoArgsCall(object):

[?25l:[?12l[?25h    def __call__(self):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingCall(object):

[?25l:[?12l[?25h    def __call__(self, path):

[?25l:[?12l[?25h        raise NotImplementedError('call')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingNumber(object):

[?25l:[?12l[?25h    def __int__(self):

[?25l:[?12l[?25h        raise NotImplementedError('int')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append("> Output")

[?25l:[?12l[?25hcb.append(">> OutputSetattr")

[?25l:[?12l[?25hee('del sys.stdout.softspace')

[?25l:[?12l[?25hnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hee('assert sys.stdout.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stdout.seekable()==False')

[?25l:[?12l[?25hee('sys.stdout.close()')

[?25l:[?12l[?25hee('sys.stdout.flush()')

[?25l:[?12l[?25hee('assert sys.stderr.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stderr.seekable()==False')

[?25l:[?12l[?25hee('sys.stderr.close()')

[?25l:[?12l[?25hee('sys.stderr.flush()')

[?25l:[?12l[?25hee('sys.stdout.attr = None')

[?25l:[?12l[?25hcb.append(">> OutputWrite")

[?25l:[?12l[?25hee('assert sys.stdout.writable()==True')

[?25l:[?12l[?25hee('assert sys.stdout.readable()==False')

[?25l:[?12l[?25hee('assert sys.stderr.writable()==True')

[?25l:[?12l[?25hee('assert sys.stderr.readable()==False')

[?25l:[?12l[?25hee('assert sys.stdout.closed()==False')

[?25l:[?12l[?25hee('assert sys.stderr.closed()==False')

[?25l:[?12l[?25hee('assert sys.stdout.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stderr.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l:[?12l[?25hee('sys.stdout.write(None)')

[?25l:[?12l[?25hcb.append(">> OutputWriteLines")

[?25l:[?12l[?25hee('sys.stdout.writelines(None)')

[?25l:[?12l[?25hee('sys.stdout.writelines([1])')

[?25l:[?12l[?25hiter_test('sys.stdout.writelines(%s)')

[?25l:[?12l[?25hcb.append("> VimCommand")

[?25l:[?12l[?25hstringtochars_test('vim.command(%s)')

[?25l:[?12l[?25hee('vim.command("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimToPython")

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEval")

[?25l:[?12l[?25hstringtochars_test('vim.eval(%s)')

[?25l:[?12l[?25hee('vim.eval("", FailingTrue())')

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEvalPy")

[?25l:[?12l[?25hstringtochars_test('vim.bindeval(%s)')

[?25l:[?12l[?25hee('vim.eval("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimStrwidth")

[?25l:[?12l[?25hstringtochars_test('vim.strwidth(%s)')

[?25l:[?12l[?25hcb.append("> VimForeachRTP")

[?25l:[?12l[?25hee('vim.foreach_rtp(None)')

[?25l:[?12l[?25hee('vim.foreach_rtp(NoArgsCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(FailingCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(int, 2)')

[?25l:[?12l[?25hcb.append('> import')

[?25l:[?12l[?25hold_rtp = vim.options['rtp']

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l:[?12l[?25hee('import xxx_no_such_module_xxx')

[?25l:[?12l[?25hee('import failing_import')

[?25l:[?12l[?25hee('import failing')

[?25l:[?12l[?25hvim.options['rtp'] = old_rtp

[?25l:[?12l[?25hdel old_rtp

[?25l:[?12l[?25hcb.append("> Options")

[?25l:[?12l[?25hcb.append(">> OptionsItem")

[?25l:[?12l[?25hee('vim.options["abcQ"]')

[?25l:[?12l[?25hee('vim.options[""]')

[?25l:[?12l[?25hstringtochars_test('vim.options[%s]')

[?25l:[?12l[?25hcb.append(">> OptionsContains")

[?25l:[?12l[?25hstringtochars_test('%s in vim.options')

[?25l:[?12l[?25hcb.append("> Dictionary")

[?25l:[?12l[?25hcb.append(">> DictionaryConstructor")

[?25l:[?12l[?25hee('vim.Dictionary("abcI")')

[?25l:[?12l[?25h##! Not checked: py_dict_alloc failure

[?25l:[?12l[?25hcb.append(">> DictionarySetattr")

[?25l:[?12l[?25hee('del d.locked')

[?25l:[?12l[?25hee('d.locked = FailingTrue()')

[?25l:[?12l[?25hee('vim.vvars.locked = False')

[?25l:[?12l[?25hee('d.scope = True')

[?25l:[?12l[?25hee('d.xxx = True')

[?25l:[?12l[?25hcb.append(">> _DictionaryItem")

[?25l:[?12l[?25hee('d.get("a", 2, 3)')

[?25l:[?12l[?25hstringtochars_test('d.get(%s)')

[?25l:[?12l[?25hee('d.pop("a")')

[?25l:[?12l[?25hee('dl.pop("a")')

[?25l:[?12l[?25hcb.append(">> DictionaryContains")

[?25l:[?12l[?25hee('"" in d')

[?25l:[?12l[?25hee('0 in d')

[?25l:[?12l[?25hcb.append(">> DictionaryIterNext")

[?25l:[?12l[?25hee('for i in ned: ned["a"] = 1')

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hcb.append(">> DictionaryAssItem")

[?25l:[?12l[?25hee('dl["b"] = 1')

[?25l:[?12l[?25hstringtochars_test('d[%s] = 1')

[?25l:[?12l[?25hconvertfrompyobject_test('d["a"] = %s')

[?25l:[?12l[?25hcb.append(">> DictionaryUpdate")

[?25l:[?12l[?25hcb.append(">>> kwargs")

[?25l:[?12l[?25hcb.append(">>> iter")

[?25l:[?12l[?25hee('d.update(FailingMapping())')

[?25l:[?12l[?25hee('d.update([FailingIterNext()])')

[?25l:[?12l[?25hee('d.update([FailingIterNextN(1)])')

[?25l:[?12l[?25hiter_test('d.update(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update(%s)')

[?25l:[?12l[?25hstringtochars_test('d.update(((%s, 0),))')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update((("a", %s),))')

[?25l:[?12l[?25hcb.append(">> DictionaryPopItem")

[?25l:[?12l[?25hee('d.popitem(1, 2)')

[?25l:[?12l[?25hcb.append(">> DictionaryHasKey")

[?25l:[?12l[?25hee('d.has_key()')

[?25l:[?12l[?25hcb.append("> List")

[?25l:[?12l[?25hcb.append(">> ListConstructor")

[?25l:[?12l[?25hee('vim.List(1, 2)')

[?25l:[?12l[?25hee('vim.List(a=1)')

[?25l:[?12l[?25hiter_test('vim.List(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('vim.List([%s])')

[?25l:[?12l[?25hcb.append(">> ListItem")

[?25l:[?12l[?25hee('l[1000]')

[?25l:[?12l[?25hcb.append(">> ListAssItem")

[?25l:[?12l[?25hee('ll[1] = 2')

[?25l:[?12l[?25hee('l[1000] = 3')

[?25l:[?12l[?25hcb.append(">> ListAssSlice")

[?25l:[?12l[?25hee('ll[1:100] = "abcJ"')

[?25l:[?12l[?25hiter_test('l[:] = %s')

[?25l:[?12l[?25hee('nel[1:10:2]  = "abcK"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:10:2]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:1:-1]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[:] = FailingIterNextN(2)')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hconvertfrompyobject_test('l[:] = [%s]')

[?25l:[?12l[?25hcb.append(">> ListConcatInPlace")

[?25l:[?12l[?25hiter_test('l.extend(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('l.extend([%s])')

[?25l:[?12l[?25hcb.append(">> ListSetattr")

[?25l:[?12l[?25hee('del l.locked')

[?25l:[?12l[?25hee('l.locked = FailingTrue()')

[?25l:[?12l[?25hee('l.xxx = True')

[?25l:[?12l[?25hcb.append("> Function")

[?25l:[?12l[?25hcb.append(">> FunctionConstructor")

[?25l:[?12l[?25hcb.append(">>> FunctionConstructor")

[?25l:[?12l[?25hee('vim.Function("123")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx#non#existent#function#xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l:[?12l[?25hcb.append(">>> FunctionNew")

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf")')

[?25l:[?12l[?25hee('vim.Function("tr", args=427423)')

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l:[?12l[?25hee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l:[?12l[?25hee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l:[?12l[?25hee('vim.Function("tr", "")')

[?25l:[?12l[?25hcb.append(">> FunctionCall")

[?25l:[?12l[?25hconvertfrompyobject_test('f(%s)')

[?25l:[?12l[?25hconvertfrompymapping_test('fd(self=%s)')

[?25l:[?12l[?25hcb.append("> TabPage")

[?25l:[?12l[?25hcb.append(">> TabPageAttr")

[?25l:[?12l[?25hee('vim.current.tabpage.xxx')

[?25l:[?12l[?25hcb.append("> TabList")

[?25l:[?12l[?25hcb.append(">> TabListItem")

[?25l:[?12l[?25hee('vim.tabpages[1000]')

[?25l:[?12l[?25hcb.append("> Window")

[?25l:[?12l[?25hcb.append(">> WindowAttr")

[?25l:[?12l[?25hee('vim.current.window.xxx')

[?25l:[?12l[?25hcb.append(">> WindowSetattr")

[?25l:[?12l[?25hee('vim.current.window.buffer = 0')

[?25l:[?12l[?25hee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l:[?12l[?25hee('vim.current.window.cursor = True')

[?25l:[?12l[?25hnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l:[?12l[?25hnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l:[?12l[?25hee('vim.current.window.xxxxxx = True')

[?25l:[?12l[?25hcb.append("> WinList")

[?25l:[?12l[?25hcb.append(">> WinListItem")

[?25l:[?12l[?25hee('vim.windows[1000]')

[?25l:[?12l[?25hcb.append("> Buffer")

[?25l:[?12l[?25hcb.append(">> StringToLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = "\\na"')

[?25l:[?12l[?25hee('vim.current.buffer[0] = b"\\na"')

[?25l:[?12l[?25hcb.append(">> SetBufferLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = True')

[?25l:[?12l[?25hcb.append(">> SetBufferLineList (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[:] = True')

[?25l:[?12l[?25hee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l:[?12l[?25hcb.append(">> InsertBufferLines (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer.append(None)')

[?25l:[?12l[?25hee('vim.current.buffer.append(["\\na", "bc"])')

[?25l:[?12l[?25hee('vim.current.buffer.append("\\nbc")')

[?25l:[?12l[?25hcb.append(">> RBItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000]')

[?25l:[?12l[?25hcb.append(">> RBAsItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000] = ""')

[?25l:[?12l[?25hcb.append(">> BufferAttr")

[?25l:[?12l[?25hee('vim.current.buffer.xxx')

[?25l:[?12l[?25hcb.append(">> BufferSetattr")

[?25l:[?12l[?25hee('vim.current.buffer.name = True')

[?25l:[?12l[?25hee('vim.current.buffer.xxx = True')

[?25l:[?12l[?25hcb.append(">> BufferMark")

[?25l:[?12l[?25hee('vim.current.buffer.mark(0)')

[?25l:[?12l[?25hee('vim.current.buffer.mark("abcM")')

[?25l:[?12l[?25hee('vim.current.buffer.mark("!")')

[?25l:[?12l[?25hcb.append(">> BufferRange")

[?25l:[?12l[?25hee('vim.current.buffer.range(1, 2, 3)')

[?25l:[?12l[?25hcb.append("> BufMap")

[?25l:[?12l[?25hcb.append(">> BufMapItem")

[?25l:[?12l[?25hee('vim.buffers[100000000]')

[?25l:[?12l[?25hnumber_test('vim.buffers[%s]', natural=True)

[?25l:[?12l[?25hcb.append("> Current")

[?25l:[?12l[?25hcb.append(">> CurrentGetattr")

[?25l:[?12l[?25hee('vim.current.xxx')

[?25l:[?12l[?25hcb.append(">> CurrentSetattr")

[?25l:[?12l[?25hee('vim.current.line = True')

[?25l:[?12l[?25hee('vim.current.buffer = True')

[?25l:[?12l[?25hee('vim.current.window = True')

[?25l:[?12l[?25hee('vim.current.tabpage = True')

[?25l:[?12l[?25hee('vim.current.xxx = True')

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ned

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdel ll

[?25l:[?12l[?25hdel nel

[?25l:[?12l[?25hdel f

[?25l:[?12l[?25hdel fd

[?25l:[?12l[?25hdel fdel

[?25l:[?12l[?25hdel subexpr_test

[?25l:[?12l[?25hdel stringtochars_test

[?25l:[?12l[?25hdel Mapping

[?25l:[?12l[?25hdel convertfrompyobject_test

[?25l:[?12l[?25hdel convertfrompymapping_test

[?25l:[?12l[?25hdel iter_test

[?25l:[?12l[?25hdel number_test

[?25l:[?12l[?25hdel FailingTrue

[?25l:[?12l[?25hdel FailingIter

[?25l:[?12l[?25hdel FailingIterNext

[?25l:[?12l[?25hdel FailingIterNextN

[?25l:[?12l[?25hdel FailingMapping

[?25l:[?12l[?25hdel FailingMappingKey

[?25l:[?12l[?25hdel FailingList

[?25l:[?12l[?25hdel NoArgsCall

[?25l:[?12l[?25hdel FailingCall

[?25l:[?12l[?25hdel FailingNumber

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction F

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test import

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hsys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l:[?12l[?25hsys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l:[?12l[?25hl = []

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    l.append(os.path.relpath(path))

[?25l:[?12l[?25hvim.foreach_rtp(callback)

[?25l:[?12l[?25hcb.append(repr(l))

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    return os.path.relpath(path)

[?25l:[?12l[?25hcb.append(repr(vim.foreach_rtp(callback)))

[?25l:[?12l[?25hdel callback

[?25l:[?12l[?25hfrom module import dir as d

[?25l:[?12l[?25hfrom modulex import ddir

[?25l:[?12l[?25hcb.append(d + ',' + ddir)

[?25l:[?12l[?25himport before

[?25l:[?12l[?25hcb.append(before.dir)

[?25l:[?12l[?25himport after

[?25l:[?12l[?25hcb.append(after.dir)

[?25l:[?12l[?25himport topmodule as tm

[?25l:[?12l[?25himport topmodule.submodule as tms

[?25l:[?12l[?25himport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l:[?12l[?25hcb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l:[?12l[?25hdel before

[?25l:[?12l[?25hdel after

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ddir

[?25l:[?12l[?25hdel tm

[?25l:[?12l[?25hdel tms

[?25l:[?12l[?25hdel tmsss

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test exceptions

[?25l:[?12l[?25h:fun Exe(e)

[?25l:[?12l[?25h:   execute a:e

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hExe = vim.bindeval('function("Exe")')

[?25l:[?12l[?25hee('vim.command("throw \'abcN\'")')

[?25l:[?12l[?25hee('Exe("throw \'def\'")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l:[?12l[?25hee('vim.eval("xxx_unknown_function_xxx()")')

[?25l:[?12l[?25hee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l:[?12l[?25hdel Exe

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction Exe

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef test_keyboard_interrupt():

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('while 1 | endwhile')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('Caught KeyboardInterrupt')

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('!!!!!!!! No exception')

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('$ put =\'Running :put\'')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('No exception')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:debuggreedy

[?25l:[?12l[?25h:call inputsave()

[?25l:[?12l[?25h:call feedkeys("s\ns\ns\ns\nq\n")

[?25l:[?12l[?25h:redir => output

[?25l:[?12l[?25h:debug silent! py3 test_keyboard_interrupt()

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:0 debuggreedy

[?25l:[?12l[?25h:call inputrestore()

[?25l:[?12l[?25h:silent $put =output

[?25l:[?12l[?25h:unlet output

[?25l:[?12l[?25h:py3 del test_keyboard_interrupt

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Cleanup

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel cb

[?25l:[?12l[?25hdel ee

[?25l:[?12l[?25hdel emsg

[?25l:[?12l[?25hdel sys

[?25l:[?12l[?25hdel os

[?25l:[?12l[?25hdel vim

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:endfun
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfun RunTest()
[?25l
:  [?12l[?25h:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l:  [?12l[?25h:let start = getline(1, '$')

[?25l:  [?12l[?25h:for i in range(checkrefs ? 10 : 1)

[?25l:    [?12l[?25h:   if i != 0

[?25l:      [?12l[?25h:       %d _

[?25l:      [?12l[?25h:       call setline(1, start)

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:   call Test()

[?25l:    [?12l[?25h:   if i == 0

[?25l:      [?12l[?25h:       let result = getline(1, '$')

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:if checkrefs

[?25l:    [?12l[?25h:   %d _

[?25l:    [?12l[?25h:   call setline(1, result)

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h:endfun
[?25l:   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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall RunTest()
[?25l8 more lin
3 more lines[?12l[?25h

[?25l"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):jkll',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vimm:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unnknown 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[?12l[?25h[?25l:[?12l[?25hdelfunction RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'directory' option.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset dir=.,~
[?25l[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest1
[?25l"Xtest1" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25h" do an ls of the current dir to find the swap file (should not be there)
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:  !ls .X*.swp >test.out

[?25l:!ls .X*.swp >test.out[?1l>[?12l[?25h[?1049l
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25helse

[?25l:  [?12l[?25h:  r !ls X*.swp >test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25h!echo first line >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l:  [?12l[?25h:" to make the result the same for all systems.

[?25l:  [?12l[?25h:  r!ls .X*.swp

[?25l:  [?12l[?25h:  s/\.*X/X/

[?25l:  [?12l[?25h:  .w >>test.out
[?25l"test.out" 1L, 11C appended

:  [?12l[?25h:  undo

[?25l1 line less; before #1  1 seconds ago

:  [?12l[?25h:else

[?25l:  [?12l[?25h:  !ls X*.swp >>test.out

[?25l:  [?12l[?25h:endif
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest2
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hset dir=./Xtest2,.,~
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25h!ls X*.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l
ls: cannot access 'X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under under >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest.je
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25lsearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest2/Xtest3" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25hset dir=Xtest.je,~
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest2/Xtest3
[?25l"Xtest2/Xtest3" 4L, 70C[?12l[?25h[?25l:[?12l[?25hswap
[?25lXtest.je/Xtest3.swp[?12l[?25h[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest.je >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" Create a link from test25.dir to the current directory.
[?25l[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ln -s . test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h" Create tags.text, with the current directory name inserted.
[?25lTest 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
[?12l[?25h[?25l
/[?12l[?25htags line
[?25lhis 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:
[?12l[?25h[?25l:[?12l[?25hr !pwd
[?25l[?12l[?25h[?25lSTARTTEST
: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
[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25htest
[?25l
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?12l[?25h[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir/test25.dir@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-athena/testdir/test25.dirr/test25.in      /^#define  SECTION_OFF  3$/[?12l[?25h[?25l

:[?12l[?25h.w! tags.test
[?25l"tags.test" [New File] 1 line, 115 characters written[?12l[?25h[?25l:[?12l[?25h" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?12l[?25h[?25l:[?12l[?25h" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?12l[?25h[?25l:[?12l[?25h" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?12l[?25h[?25l:[?12l[?25hset tags=tags.test
[?25l[?12l[?25h[?25l/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?12l[?25h#[?25lefine  SECTION_OFF  3[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 23 characters written[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir tags.test
[?25l[?1l>[?12l[?25h[?1049l
[No write since last change]

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of the script language.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp nomore viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hso test49.vim
[?25lError 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"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"/tmp/vijTzUc/0" 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
[New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/1[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/2[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/2"' -c 'breakad

dfile 8 /tmp/vijTzUc/1' -S /tmp/vijTzUc/1[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/3[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/4[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/4"' -c 'breakad

dfile 4 /tmp/vijTzUc/3' -S /tmp/vijTzUc/3[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/5[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/6[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/6"' -c 'breakad

dfunc 7 F' -S /tmp/vijTzUc/5[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/7[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/8[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/8"' -c 'breakad

dfunc 3 G' -S /tmp/vijTzUc/7[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/9[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/10[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/10"' -S /tmp/vijTz

Uc/9[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/11[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/12[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/12"' -S /tmp/vijTz

Uc/11[?1l>[?12l[?25h[?1049l
make[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

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/13[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/13" 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
6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/14[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/14"' -S /tmp/vijTz

Uc/13[?1l>[?12l[?25h[?1049l
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o es.mo es.po

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/15[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/15" 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
8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/16[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/16"' -S /tmp/vijTz

Uc/15[?1l>[?12l[?25h[?1049l
1897 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.mo ja.po

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/17[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/17" 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
10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/18[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/18"' -S /tmp/vijTz

Uc/17[?1l>[?12l[?25h[?1049l
1213 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o no.mo no.po

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/19[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/19" 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
7L, 149C appended8L, 171C1882 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
8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/20[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/20"' -S /tmp/vijTz

Uc/19[?1l>[?12l[?25h[?1049l
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.cp1251.mo ru.cp1251.po

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/21[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/21" 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
9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/22[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/22"' -S /tmp/vijTz

Uc/21[?1l>[?12l[?25h[?1049l
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.cp936.mo zh_CN.cp936.po

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/23[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/23" 1633 translated messages, 3 fuzzy translations.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
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
10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/24[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/24"' -S /tmp/vijTz

Uc/23[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/25[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/26[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/26"' -S /tmp/vijTz

Uc/25[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/27[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/28[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/28"' -S /tmp/vijTz

Uc/27[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/29[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/30[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/30"' -S /tmp/vijTz

Uc/29[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/31[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/32[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/32"' -S /tmp/vijTz

Uc/31[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/33[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/34[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/34"' -S /tmp/vijTz

Uc/33[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/36[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/36"' -S /tmp/vijTz

Uc/35[?1l>[?12l[?25h[?1049l
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

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/37[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/38[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/38"' -S /tmp/vijTz

Uc/37[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/39[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/40[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vijTzUc/39[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/41[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/42[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/42"' -S /tmp/vijTz

Uc/41[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/43[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/44[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/44"' -S /tmp/vijTz

Uc/43[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/46[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/46"' -S /tmp/vijTz

Uc/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vijTzUc/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/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/vijTzUc/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/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/vijTzUc/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/50[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vijTzUc/51[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/51"' -S /tmp/vijTzUc/50[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669Ctest49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/52[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/53[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/53"' -S /tmp/vijTz

Uc/52[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/54[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/55[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTzUc/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vijTzUc/54' -c 'breakadd file 31

/tmp/vijTzUc/54' -S /tmp/vijTzUc/54[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/56[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/57[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/57"' -S /tmp/vijTz

Uc/56[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/59[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTz

Uc/59"' -c 'breakadd func 16 C' -S /tmp/vijTzUc/58[?1l>[?12l[?25h[?1049l
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

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/61[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTz

Uc/61"' -c 'breakadd func 16 B' -S /tmp/vijTzUc/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/63[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTzUc/

63"' -c 'breakadd func 16 R' -S /tmp/vijTzUc/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/64" 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
73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/65[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/65"' -c 'breakadd

func 16 F' -S /tmp/vijTzUc/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/66[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/67[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTz

Uc/67"' -c 'breakadd func 16 E' -S /tmp/vijTzUc/66[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/68[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/69[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTzUc/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vijTzUc/68[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/70[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/71[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTz

Uc/71"' -c 'breakadd func 16 T' -S /tmp/vijTzUc/70[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vijTzUc/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/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/vijTzUc/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/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/vijTzUc/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/76[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vijTzUc/77[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/77"' -S /tmp/vijTzUc/76[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/78[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/79[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/79"' -S /tmp/vijTzUc/78[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/80[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/81[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/81"' -S /tmp/vijTzUc/80[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/82[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/83[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/83"' -S /tmp/vijTzUc/82[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" 10L, 217C
"test49.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/crypt.o crypt.c
32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/84[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/85[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vijTzUc/85"' -c 'breakadd file 4 /tmp/vijTzUc

/84' -S /tmp/vijTzUc/84[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/86[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/87[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/87"' -S /tmp/vijTzUc/86[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/88[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/89[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/89"' -S /tmp/vijTzUc/88[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/91[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/92[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/92"' -S /tmp/vijTzUc/91[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/93[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vijTzUc/93" 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
4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/94[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/94"' -S /tmp/vijTzUc/93[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/95[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vijTzUc/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/96[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/96"' -S /tmp/vijTzUc/95[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/97[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vijTzUc/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/98[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/98"' -S /tmp/vijTzUc/97[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/99[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vijTzUc/99" 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
6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/100[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/100"' -S /tmp/vijTzUc/99[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/101[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/102[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/102"' -S /tmp/vijTzUc/101[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/103[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vijTzUc/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/104[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/104"' -S /tmp/vijTzUc/103[?1l>[?12l[?25h[?1049l
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

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/105[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vijTzUc/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/106[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/106"' -S /tmp/vijTzUc/105[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/107[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vijTzUc/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/108[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/108"' -S /tmp/vijTzUc/107[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/109[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vijTzUc/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/110[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/110"' -S /tmp/vijTzUc/109[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/111[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/112[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/112"' -S /tmp/vijTzUc/111[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/113[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vijTzUc/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/114[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/114"' -S /tmp/vijTzUc/113[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/115[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vijTzUc/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/116[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/116"' -S /tmp/vijTzUc/115[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/117[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vijTzUc/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/118[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/118"' -S /tmp/vijTzUc/117[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/119[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vijTzUc/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/120[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/120"' -S /tmp/vijTzUc/119[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/121[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vijTzUc/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/122[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/122"' -S /tmp/vijTzUc/121[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/123[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vijTzUc/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/124[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vijTzUc/124"' -S /tmp/vijTzUc/123[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/126[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/127[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/127"' -S /tmp/vijTzUc/126[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/128[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vijTzUc/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/129[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/129"' -S /tmp/vijTzUc/128[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/130[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vijTzUc/130"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
4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/131[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/131"' -S /tmp/vijTzUc/130[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/132[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vijTzUc/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/133[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/133"' -S /tmp/vijTzUc/132[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/134[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vijTzUc/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/135[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/135"' -S /tmp/vijTzUc/134[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/136[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vijTzUc/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/137[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/137"' -S /tmp/vijTzUc/136[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/138[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vijTzUc/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/139[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/139"' -S /tmp/vijTzUc/138[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/140[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vijTzUc/140"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
4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/141[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/141"' -S /tmp/vijTzUc/140[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/142[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vijTzUc/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/143[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/143"' -S /tmp/vijTzUc/142[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/144[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vijTzUc/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/145[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/145"' -S /tmp/vijTzUc/144[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/146[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vijTzUc/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/147[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/147"' -S /tmp/vijTzUc/146[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/149[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/150[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/150"' -S /tmp/vijTzUc/149[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/151[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vijTzUc/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/152[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/152"' -S /tmp/vijTzUc/151[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/153[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vijTzUc/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/154[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/154"' -S /tmp/vijTzUc/153[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/155[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vijTzUc/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/156[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/156"' -S /tmp/vijTzUc/155[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/157[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vijTzUc/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/158[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/158"' -S /tmp/vijTzUc/157[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/159[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/160[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/160"' -S /tmp/vijTzUc/159[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/161[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vijTzUc/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/162[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/162"' -S /tmp/vijTzUc/161[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/163[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vijTzUc/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/164[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/164"' -S /tmp/vijTzUc/163[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/165[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vijTzUc/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/166[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/166"' -S /tmp/vijTzUc/165[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/167[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vijTzUc/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/168[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/168"' -S /tmp/vijTzUc/167[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/170[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/171[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/171"' -S /tmp/vijTzUc/170[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/172[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vijTzUc/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/173[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/173"' -S /tmp/vijTzUc/172[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/174[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vijTzUc/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/175[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/175"' -S /tmp/vijTzUc/174[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/176[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vijTzUc/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/177[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/177"' -S /tmp/vijTzUc/176[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/178[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vijTzUc/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/179[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/179"' -S /tmp/vijTzUc/178[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/180[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vijTzUc/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/181[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/181"' -S /tmp/vijTzUc/180[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/182[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vijTzUc/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/183[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/183"' -S /tmp/vijTzUc/182[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/184[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vijTzUc/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/185[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/185"' -S /tmp/vijTzUc/184[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/186[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vijTzUc/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/187[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vijTzUc/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vijTzUc/187"' -S /tmp/vijTzUc/186[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vijTzUc/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vijTzUc/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vijTzUc/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vijTzUc/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vijTzUc/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/vijTzUc/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vijTzUc/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vijTzUc/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vijTzUc/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vijTzUc/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vijTzUc/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/194[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/194"' -c 'break

add func 4 T' -S /tmp/vijTzUc/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vijTzUc/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/196[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/196"' -c 'br

eakadd file 115 /tmp/vijTzUc/195' -c 'breakadd file 225 /tmp/vijTzUc/195' -S /tm

p/vijTzUc/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/198[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/198"' -c 'break

add file 7 /tmp/vijTzUc/197' -S /tmp/vijTzUc/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/200[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vijTzUc/

200"' -c 'breakadd file 8 /tmp/vijTzUc/199' -c 'breakadd file 36 /tmp/vijTzUc/19

9' -c 'breakadd file 40 /tmp/vijTzUc/199' -c 'breakadd file 69 /tmp/vijTzUc/199'

-c 'breakadd file 95 /tmp/vijTzUc/199' -c 'breakadd file 97 /tmp/vijTzUc/199' -

S/tmp/vijTzUc/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vijTzUc/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vijTzUc/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" Error detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test49.vim:

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"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vijTzUc/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/203[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/203"' -c 'break

add file 63 /tmp/vijTzUc/202' -S /tmp/vijTzUc/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/204[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/205[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/205"' -c 'break

add func 8 F' -S /tmp/vijTzUc/204[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vijTzUc/206" [New File]
"test49.in" 32L, 705C
"/tmp/vijTzUc/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/208[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/209[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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

/vijTzUc/209"' -c 'breakadd func 2 INT' -S /tmp/vijTzUc/208[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/210[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/211[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/211"' -S /tmp/vijT

zUc/210[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/212[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/213[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/213"' -S /tmp/vijT

zUc/212[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/214[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/215[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/215"' -c 'break

add file 8 /tmp/vijTzUc/214' -S /tmp/vijTzUc/214[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/216[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/217[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/217"' -S /tmp/vijT

zUc/216[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/218[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/219[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/219"' -S /tmp/vijT

zUc/218[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/220[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/221[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/221"' -c 'break

add file 7 /tmp/vijTzUc/220' -S /tmp/vijTzUc/220[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/222[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/223[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/223"' -c 'break

add func 6 I' -S /tmp/vijTzUc/222[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/224[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/225[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/225"' -S /tmp/vijT

zUc/224[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/226[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/227[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/227"' -c 'break

add file 8 /tmp/vijTzUc/226' -S /tmp/vijTzUc/226[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/229[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/229"' -c 'br

eakadd func 1 INT' -S /tmp/vijTzUc/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vijTzUc/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vijTzUc/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vijTzUc/233[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test49.vim:

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/vijTzUc/235" c[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/vijTzUc/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vijTzUc/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)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

"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vijTzUc/0' >/tmp/vijTzUc/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vijTzUc/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vijTzUc/237[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vijTzUc/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vijTzUc/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vijTzUc/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<TJJ2/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9008L, 206669C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue:[?12l[?25h" Go back to this file and append the results from register r.
[?25l#
# 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 \[?12l[?25h[?25l:[?12l[?25hbuf test49.in
[?25l"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:[?12l[?25h
[?25l
83 more lines
*** Test  16: OK (8722)83 more lines[?12l[?25h[?25l:[?12l[?25h/^Results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" make valgrind happy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => funclist
[?25l[?12l[?25h[?25l:[?12l[?25hsilent func
[?25l[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hfor line in split(funclist, "\n")
[?25l
:  [?12l[?25h:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l:  [?12l[?25h:  if name != ''

[?25l:    [?12l[?25h:    exe "delfunc " . name

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?12l[?25h[?25l
:[?12l[?25hfor v in keys(g:)
[?25l
:  [?12l[?25h:  silent! exe "unlet " . v

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in[?12l[?25h[?25l
:[?12l[?25hunlet v
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest whether glob()/globpath() return correct results with certain escaped[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure glob() doesn't use the shell
[?25l[?12l[?25h[?25l:[?12l[?25hset shell=doesnotexist
[?25l[?12l[?25h[?25l:[?12l[?25h" consistent sorting of file names
[?25l[?12l[?25h[?25l:[?12l[?25hset nofileignorecase
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25l[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xxx{
[?25l
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! Xxx\$
[?25l"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25lXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25lXxx$[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim'))
[?25l'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 8 lines, 138 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option in utf-8 mode[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l:set list nolinebreak cc=3[?12l[?25h[?25l
:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?12l[?25h[?25l:[?12l[?25h10new|:vsp|:vert resize 20
[?25l                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                            [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width, lines)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,a:lines)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?12l[?25h[?25l:[?12l[?25hexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l▕———abcdef|▕———␣ˑ¶[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 2: set nolinebreak list"
[?25l[?12l[?25h[?25l:[?12l[?25hset list nolinebreak
[?25lhijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶                
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶          
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\t*mask = nil;\"
[?25l▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~ [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l      
    [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l*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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?12l[?25h[?25l:[?12l[?25hlet 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*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l#define             
+ABCDE      1       [?12l[?25h[?25l:[?12l[?25hvert resize 40
[?25l                    |                    |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] [+][?12l[?25h[?25l:[?12l[?25h$-7
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l#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
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset list linebreak listchars=tab:>- cole=1
[?25l>-->--->->--->>--->--->-->--->--->--->--->-->-[?12l[?25h[?25l:[?12l[?25hsyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25lAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l#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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),7)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l>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>
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?12l[?25h[?25l:[?12l[?25hlet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l[?12l[?25h[?25l:[?12l[?25h$
[?25l@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        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[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25lbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l>;>some text      [?12l[?25h[?25l:[?12l[?25hsyn clear
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match meaning    /;\s*\zs.*/
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match hasword    /^\x\{8}/    contains=word
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match beginword  /\<\x\x/     contained conceal
[?25leeeeee>--[?12l[?25h[?25l:[?12l[?25hsyn match endword    /\x\{6}\>/   contained
[?25l[?12l[?25h[?25l:[?12l[?25hhi meaning   guibg=blue
[?25lsome text[?12l[?25h[?25l:[?12l[?25hhi beginword guibg=green
[?25l[?12l[?25h[?25l:[?12l[?25hhi endword   guibg=red
[?25leeeeee[?12l[?25h[?25l:[?12l[?25hredraw!
[?25leeeeee>--->-;>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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),1)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l                                        
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                + [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: Screenattributes for comment"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 6: Screenattributes for comment    [?12l[?25h[?25l:[?12l[?25hcall append('$', ' /*^I^I and some more */')
[?25l /*>>- and some more */                 [?12l[?25h[?25l:[?12l[?25hexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25leeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?12l[?25h[?25l:[?12l[?25hsyntax on
[?25lbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?12l[?25h[?25l:[?12l[?25hhi SpecialKey term=underline ctermfg=red guifg=red
[?25l▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25lbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt0
[?25l /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['107']
[?12l[?25h[?25l:let attr += ['107']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:[?12l[?25hcall append('$', ['ScreenAttributes for test6:'])
[?25lScreenAttributes for test6:¶            [?12l[?25h[?25l:[?12l[?25hif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l
:  [?12l[?25h:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Not all attributes are different")

[?25l:  [?12l[?25h:endif
[?25l/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak selection=exclusive
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set linebreak with visual block [?12l[?25h[?25llong line:ˑ¶                            [?12l[?25h[?25l¶                                
¶                            
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?12l[?25h[?25l
foobar foobar TARGET¶               [?12l[?25h[?25lÃ' at end¶[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx' at end¶[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=[]
[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l /*▕———▕—————— 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
¶                                       [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25hset list nolinebreak cc=3
[?25l*
Scr
Att
Tesn 
a b
a b[?12l[?25h[?25l:[?12l[?25hsign define foo text=^+
[?25l[?12l[?25h[?25l:[?12l[?25hsign place 1 name=foo line=50 buffer=2
[?25l   /*▕———▕—————— 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  +[?12l[?25h[?25l:[?12l[?25hnorm! 2kztj
[?25l  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?12l[?25h[?25l:[?12l[?25hlet line1=line('.')
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['92']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hlet line2=line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=attr
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['92']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l  ¶ |
+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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),3)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l3 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¶               [?12l[?25h[?25l:[?12l[?25h" expected: attr[2] is different because of colorcolumn
[?25l[?12l[?25h[?25l:[?12l[?25hif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l
:  [?12l[?25h:   call append('$', "Screen attributes are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Screen attributes are the same!")

[?25l:  [?12l[?25h:endif
[?25l  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 57 lines, 1882 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.oout
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lSome tests for buffer-local autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25he xx
[?25l"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !del test.out.*

[?25l:  [?12l[?25h: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !rm -f test.out

[?25l:!rm -f test.out[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25he somefile           " here, autocommand for xx shall write test.out 
[?25l:!echo buffer-local autommand in xx>> test.out

[?12l[?25h[?25l"somefile" [New File]

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h                     " but autocommand shall not apply to buffer named <buffer

>[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?12l[?25h[?25l:[?12l[?25he xx                 " nothing shall be written
[?25l"xx" [New File][?12l[?25h[?25l:[?12l[?25he somefile           " nothing shall be written
[?25l"somefile" [New File][?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
:  [?12l[?25h: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:endif
[?25l:"
:if has("unix")
:let $CDIR = "."
/CDIR[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:let $CDIR = "."

[?25l:  [?12l[?25h/CDIR

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:if has("amiga")

[?25l:    [?12l[?25h:let $TDIR = "/testdir"

[?25l:    [?12l[?25h:else

[?25l:    [?12l[?25h:let $TDIR = "."

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h/TDIR

[?25l:  [?12l[?25h:endif
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?12l[?25h[?25l:[?12l[?25h" file is modified. It can be occurred when executing the following command
[?25l[?12l[?25h[?25l:[?12l[?25h" directly on Windows without fixing the 'fileformat':
[?25l[?12l[?25h[?25l:[?12l[?25h"  > nmake -f Make_dos.mak test17.out
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 135 lines, 2431 characters written[?12l[?25h[?25l
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/./test17a.in" 3 lines, 8

8characters

Press ENTER or type command to continue[?12l[?25h[?25lThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 3 lines, 88 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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"^[:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' without \zs or \ze
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.a")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he! Xdir1/dir2/foo.a
[?25l"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l#include   "bar.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.a
[?25l"Xdir1/dir2/bar.a" [New File][?12l[?25h[?25l#include      "baz.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.a
[?25l"Xdir1/dir2/baz.a" [New File][?12l[?25h[?25l#include"foo.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.a
[?25l"Xbase.a" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l#include    <foo.a>[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.a" [New File] 1 line, 20 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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()'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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][?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.b")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l: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][?12l[?25h[?25l:[?12l[?25hfunction! DotsToSlashes()
[?25l
:  [?12l[?25h:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l:  [?12l[?25h:endfunction
[?25l:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?12l[?25h[?25l:[?12l[?25hlet &includeexpr='DotsToSlashes()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.b
[?25l"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   /bar/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.b
[?25l"Xdir1/dir2/bar.b" [New File][?12l[?25h[?25l%inc      /baz/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.b
[?25l"Xdir1/dir2/baz.b" [New File][?12l[?25h[?25l%inc/foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.b
[?25l"Xbase.b" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    /foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.b" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and no \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.c")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hfunction! StripNewlineChar()
[?25l
:  [?12l[?25h:  if v:fname =~ '\n$'

[?25l:    [?12l[?25h:    return v:fname[:-2]

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  return v:fname

[?25l:  [?12l[?25h:endfunction
[?25l:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='StripNewlineChar()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.c
[?25l"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   bar.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.c
[?25l"Xdir1/dir2/bar.c" [New File][?12l[?25h[?25l%inc      baz.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.c
[?25l"Xdir1/dir2/baz.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/FALSE.c
[?25l"Xdir1/dir2/FALSE.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.c
[?25l"Xbase.c" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    FALSE.c foo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l:[?12l[?25h" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?12l[?25h[?25l:[?12l[?25he test.out
[?25l"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)[?12l[?25h[?25l:[?12l[?25h%s#\\#/#g
[?25lE486: Pattern not found: \\[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 33 lines, 655 characters written[?12l[?25h[?25l:[?12l[?25hq
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for a lot of variations of the 'fileformats' option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" first write three test files, one in each format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=
[?25l[?12l[?25h[?25l:[?12l[?25h/^unix/;/eof/-1w! XXUnix
[?25l"XXUnix" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^dos/;/eof/-1w! XXDos
[?25l"XXDos" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25hset bin noeol
[?25l[?12l[?25h[?25l:[?12l[?25h$w! XXMac
[?25l"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?12l[?25h[?25l
noeol[?12l[?25h[?25l
:[?12l[?25h$w! XXEol
[?25l"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?12l[?25h[?25l:[?12l[?25hset nobin eol
[?25l[?12l[?25h[?25l:[?12l[?25henew!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l3 buffers wiped out[?12l[?25h[?25l:[?12l[?25h" create mixed format files
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !copy XXUnix,XXDos XXUxDs.

[?25l:  [?12l[?25h: !copy XXUnix,XXMac XXUxMac.

[?25l:  [?12l[?25h: !copy XXDos,XXMac  XXDosMac.

[?25l:  [?12l[?25h: !copy XXMac,XXEol  XXMacEol.

[?25l:  [?12l[?25h: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l:  [?12l[?25h:elseif has("win32")

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos XXUxDs

[?25l:  [?12l[?25h: !copy /b XXUnix+XXMac XXUxMac

[?25l:  [?12l[?25h: !copy /b XXDos+XXMac XXDosMac

[?25l:  [?12l[?25h: !copy /b XXMac+XXEol XXMacEol

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !cat XXUnix XXDos >XXUxDs

[?25l:!cat XXUnix XXDos >XXUxDs[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXMac >XXUxMac

[?25l:!cat XXUnix XXMac >XXUxMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXDos XXMac >XXDosMac

[?25l:!cat XXDos XXMac >XXDosMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXMac XXEol >XXMacEol

[?25l:!cat XXMac XXEol >XXMacEol[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l:!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25hendif
[?25l:[?12l[?25h"
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' empty
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" 2 lines, 10 charactersdos^M
dos^M[?12l[?25h[?25l:[?12l[?25hw! XXtt01
[?25l"XXtt01" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt02
[?25l"XXtt02" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=dos
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt11
[?25l"XXtt11" [New File][dos format] 2 lines, 12 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [dos format] 2 lines, 10 charactersdosdos[?12l[?25h[?25l:[?12l[?25hw! XXtt12
[?25l"XXtt12" [New File][dos format] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt13
[?25l"XXtt13" [New File][dos format] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=mac
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt21
[?25l"XXtt21" [New File][mac format] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?12l[?25h[?25l:[?12l[?25hw! XXtt22
[?25l"XXtt22" [New File][mac format] 3 lines, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt23
[?25l"XXtt23" [New File][mac format] 2 lines, 8 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l^Jdos
^Jeof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to one format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt31
[?25l"XXtt31" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt32
[?25l"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt33
[?25l"XXtt33" [New File][mac format] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to two formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt41
[?25l"XXtt41" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt42
[?25l"XXtt42" [New File] 3 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt43
[?25l"XXtt43" [New File][dos format] 3 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt51
[?25l"XXtt51" [New File] 4 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt52
[?25l"XXtt52" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt53
[?25l"XXtt53" [New File][mac format] 4 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt54
[?25l"XXtt54" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt61
[?25l"XXtt61" [New File][dos format] 4 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:dos[?12l[?25h[?25l:[?12l[?25hw! XXtt62
[?25l"XXtt62" [New File][dos format] 4 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt63
[?25l"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25he! XXMacEol
[?25l"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt64
[?25l"XXtt64" [New File][mac format] 4 lines, 26 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXMacEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to three formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt71
[?25l"XXtt71" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,dos,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt72
[?25l"XXtt72" [New File] 2 lines, 24 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,dos,unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt81
[?25l"XXtt81" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lmac,dos,unix:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt82
[?25l"XXtt82" [New File][mac format] 2 lines, 23 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h" try with 'binary' set
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt91
[?25l"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt92
[?25l"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt93
[?25l"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix nobin
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXtt01
[?25l"XXtt01" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt02
[?25l"XXtt02" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt11
[?25l"XXtt11" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt12
[?25l"XXtt12" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt13
[?25l"XXtt13" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt21
[?25l"XXtt21" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt22
[?25l"XXtt22" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt23
[?25l"XXtt23" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt31
[?25l"XXtt31" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt32
[?25l"XXtt32" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt33
[?25l"XXtt33" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt41
[?25l"XXtt41" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt42
[?25l"XXtt42" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt43
[?25l"XXtt43" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt51
[?25l"XXtt51" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt52
[?25l"XXtt52" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt53
[?25l"XXtt53" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt54
[?25l"XXtt54" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt61
[?25l"XXtt61" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt62
[?25l"XXtt62" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt63
[?25l"XXtt63" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt64
[?25l"XXtt64" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt71
[?25l"XXtt71" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt72
[?25l"XXtt72" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt81
[?25l"XXtt81" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt82
[?25l"XXtt82" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt91
[?25l"XXtt91" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt92
[?25l"XXtt92" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt93
[?25l"XXtt93" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results.
[?25l[?12l[?25h[?25l:[?12l[?25h" Make fileformat of test.out the native fileformat.
[?25l[?12l[?25h[?25l:[?12l[?25h" Add a newline at the end.
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25h$r XXtt01
[?25l"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt02
[?25l"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?12l[?25h
[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXtt11
[?25l"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt12
[?25l"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt13
[?25l"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?12l[?25h
[?25l
2[?12l[?25h[?25l:[?12l[?25h$r XXtt21
[?25l"XXtt21" 3 lines, 15 charactersunixunix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt22
[?25l"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt23
[?25l"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?12l[?25h[?25l
3[?12l[?25h[?25l
:[?12l[?25h$r XXtt31
[?25l"XXtt31" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt32
[?25l"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt33
[?25l"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
4[?12l[?25h[?25l
:[?12l[?25h$r XXtt41
[?25l"XXtt41" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt42
[?25l"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt43
[?25l"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
5[?12l[?25h[?25l
:[?12l[?25h$r XXtt51
[?25l"XXtt51" 5 lines, 24 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt52
[?25l"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt53
[?25l"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt54
[?25l"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
6[?12l[?25h[?25l
:[?12l[?25h$r XXtt61
[?25l"XXtt61" 5 lines, 26 characters
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt62
[?25l"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt63
[?25l"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt64
[?25l"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?12l[?25h[?25l
7[?12l[?25h[?25l
:[?12l[?25h$r XXtt71
[?25l"XXtt71" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt72
[?25l"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
8[?12l[?25h[?25l
:[?12l[?25h$r XXtt81
[?25l"XXtt81" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt82
[?25l"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?12l[?25h[?25l
9[?12l[?25h[?25l
:[?12l[?25h$r XXtt91
[?25l"XXtt91" 5 lines, 32 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt92
[?25l"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt93
[?25l"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
10[?12l[?25h[?25l
:[?12l[?25h$r XXUnix
[?25l"XXUnix" 2 lines, 10 characters
unix[?12l[?25h[?25l
:[?12l[?25hset nobinary ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 130 lines, 786 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for insert expansion[?12l[?25h[?25l/^STARTTEST
[?12l[?25h[?25l
:so small.vim[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l"Xtestfile" [New] 3L, 57C written[?12l[?25h[?25l:[?12l[?25hse cot=
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile"
run1 run2[+][?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h[?25l3[?12l[?25h
[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 115-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)
-- INSERTe --^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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3

run1 run2[?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h
[?25l:[?12l[?25hse cpt=.,w,i
[?25l[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)^ U-- Searching...
Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 57INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 57Addinge Whole line completion (^L^N^P) -- Searching...
Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=kXtestfile
[?25l[?12l[?25h[?25l:[?12l[?25hw Xtest11.one
[?25l"Xtest11.one" [New] 9L, 104C writtenXtest11.one+   [?12l[?25h[?25l:[?12l[?25hw Xtest11.two
[?25l"Xtest11.two" [New] 9L, 104C written[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?12l[?25h [?25l-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?12l[?25h[?25l-- INSERT --Xtest11
[?12l[?25h[?25l-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25h" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?12l[?25h[?25l:[?12l[?25h" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 4.INSERTa -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 445.
Make_all.mak
run1 run2d[?12l[?25h [?25l-- INSERT --[?12l[?25h[?25l
run1 run2~                                                                               [?12l[?25h
[?25l:[?12l[?25hse cpt=w
[?25l[?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=u nohid
[?25l[?12l[?25h[?25l

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only matchENDTEST
unless[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Definition completion (^D^N^P)^ U-- Searching...
Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching...
Scanning tags.pincluded file: Xtestfile
-- Keyword completion (^N^P) The only matchtest11file      36Gepeto/Tag/ asd
asd[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h
ru[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New] 15L, 175C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l:"
:" 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?12l[?25h[?25l:[?12l[?25hset maxmem=512 spell
[?25lvim

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[?12l[?25h[?25lasdTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25lChange "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): [?12l[?25h[?25l:[?12l[?25h"
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.latin1.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 151 lines, 3412 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.latin1.add
[?25lasdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?12l[?25h[?25l/[?12l[?25h^test2:
[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.latin1.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.latin1.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.latin1.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.latin1.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" NOSLITSUGS
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('8', '8')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Numbgcc -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
ers
[?25lNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?12l[?25h[?25l:[?12l[?25hcall TestOne('9', '9')
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 289 lines, 3844 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?12l[?25h[?25l:[?12l[?25h" text is in latin1, the test text is utf-8.
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l:[?12l[?25hset enc=utf-8
[?25lTests 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[?12l[?25h[?25l:[?12l[?25hset fenc=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.utf-8.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 153 lines, 3426 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.utf-8.add
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?12l[?25h[?25l/[?12l[?25h^test2:
[?25ltomato 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 !![?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.utf-8.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.utf-8.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.utf-8.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.utf-8.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25laddstart
/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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 270 lines, 3685 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for undo file.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile': first a simple one-line change.
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset ul=100 undofile nomore
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --this is one line[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hs/one/ONE/
[?25lONE
[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 change; before #2  0 seconds agoone
[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', change in original file fails check
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 1L, 17CONE
[?12l[?25h[?25l:[?12l[?25hs/line/Line/
[?25lL
[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 1L, 17C written[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" TODO: this beeps
[?25l[?12l[?25h[?5h[?5l[?25lAlready at oldest change[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 17C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --one
twothreefourfivesixseveneightnineten[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 4L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 more line; before #7  0 seconds agoeight[?12l[?25h[?25l1 more line; before #6  0 seconds agoseven[?12l[?25h[?25l1 more line; before #5  0 seconds agosix[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 7L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that reading the undofiles when setting undofile works
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile ul=0
[?25l[?12l[?25h[?25l-- INSERT --six
u[?12l[?25hs[?25l[?12l[?25h[?25l1 line less; before #8  0 seconds ago
~                                                                               [?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile ul=100
[?25l[?12l[?25h[?25l1 more line; before #7  0 seconds agoeight[?12l[?25h[?25l1 more line; before #6  0 seconds agoseven[?12l[?25h[?25l1 more line; before #5  0 seconds agosix[?12l[?25h[?25l1 more line; before #4  0 seconds agofive[?12l[?25h[?25l1 more line; before #3  0 seconds agofour[?12l[?25h[?25l1 more line; before #2  0 seconds agothree[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 10L, 49C appended[?12l[?25h[?25l:[?12l[?25h" And now with encryption, cryptmethod=zip
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile cm=zip
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l-- INSERT --monday
tuesdaywednesdaythursdayfriday[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25lmonday
friday
~                                                                               [?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [crypted] 2L, 14C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l1 more line; before #11  1 seconds agothursday[?12l[?25h[?25l1 more line; before #10  1 seconds agowednesday[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 4L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25ljan
feb
bar apr[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #15  1 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #14  2 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #13  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish2 ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lEnter encryption key: [?12l[?25h*******

[?25lEnter same key again: [?12l[?25h*******

[?25ljan
feb[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish2] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?12l[?25h*******

[?25l"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #19  1 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #18  1 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #17  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Rename the undo file so that it gets cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: call rename("_un_Xtestfile", "Xtestundo")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: call rename(".Xtestfile.un~", "Xtestundo")

[?25l:  [?12l[?25h:endif
[?25ljan
feb
mar
apr[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01223456789abcdefghijklmnoparstuvwxyz0123456789"
: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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lInserts 10000 lines with text to fill the swap file with two levels of pointer[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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 linnecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appendd(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet linecount = 10000
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789[?12l[?25h[?25l:[?12l[?25hpreserve
[?25lFile preserved[?12l[?25h[?25l:[?12l[?25h" get the name of the swap file
[?25l[?12l[?25h[?25l:[?12l[?25hredir => swapname
[?25l[?12l[?25h[?25l:[?12l[?25hswapname
[?25l.Xtest.swp[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hlet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899a[?12l[?25h[?25l
:[?12l[?25h" make a copy of the swap file in Xswap
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hexe 'sp ' . swapname
[?25l".Xtest.swp"[noeol] 611L, 1224704Cb0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@^__^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@bm-wb-03^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-athena/teestdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      799a
999899a
999999a
1000099a~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw! Xswap
[?25l"Xswap" [New][noeol] 611L, 1224704C written[?12l[?25h[?25l:[?12l[?25hecho swapname
[?25l.Xtest.sw[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       b0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@^__^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@bm-wb-03^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-athena/teestdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe! Xtest
[?25l[?12l[?25h[?25l:[?12l[?25hcall rename('Xswap', swapname)
[?25l[?12l[?25h[?25l:[?12l[?25hrecover Xtest
[?25lUsing 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[?12l[?25h[?25l:[?12l[?25hcall delete(swapname)
[?25l1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       199a
299a
399a
4 99a
5 99a
Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hcall append(0, 'recovery start')
[?25lrecovery start[+][?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name] [+]                                                                    Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hlet linedollar = line('$')
[?25l[?12l[?25h[?25l:[?12l[?25hif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hq!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'recovery end')
[?25lrecovery end[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New] 3L, 29C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for tag search with !_TAG_FILE_ENCODING.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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[?12l[?25h[?25l:[?12l[?25hif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l"Xtags1.txt" [New File] 2 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l"Xtags2.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l"Xtags3.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l"Xtags1" [New File] 2 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hcall setline('.', 'Results of test83')
[?25lResults of test83
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case1:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l[No Name]                                                                       Results of test83test83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=Xtags1
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abcdefghijklmnopqrs
[?25l"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case2:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags2
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag /.BC
[?25l"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case3:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags3
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abc50
[?25l"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 4 lines, 48 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l- Some tests for setting 'number' and 'relativenumber'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden nocp nu rnu viminfo+=nviminfo
[?25l 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 donee     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  [?12l[?25h[?25l:[?12l[?25hredir @a | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! xx
[?25l"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir @b | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! #
[?25l"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 donee     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[?12l[?25h[?25l:[?12l[?25h$put ='results:'
[?25l
1
 20
 19
 18
 17ee 
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?12l[?25h[?25l
:[?12l[?25h$put a
[?25l3 more lines21
 20ee 
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?12l[?25h[?25l:[?12l[?25h$put b
[?25l3 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @c | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @d | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setlocal must NOT reset the other global value'
[?25l
 79 :setlocal must NOT reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put c
[?25l 80 
 81   number[?12l[?25h[?25l
:[?12l[?25h$put d
[?25l 82 
 83   relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l: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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @e | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @f | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setglobal MUST reset the other global value'
[?25l
:setglobal MUST reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put e
[?25lnumber[?12l[?25h[?25l
:[?12l[?25h$put f
[?25lrelativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?12l[?25h[?25l:[?12l[?25hredir @g | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:$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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset nu
[?25l88    [?12l[?25h[?25l:[?12l[?25hredir @h | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':set MUST reset the other global value'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put g
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?12l[?25h[?25l
:[?12l[?25h$put h
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena[?12l[?25h[?25l:[?12l[?25h" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?12l[?25h[?25l:[?12l[?25h" get above src/
[?25l[?12l[?25h[?25l:[?12l[?25hif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l/<<PKGBUILDDIR>>[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?12l[?25h[?25l
:[?12l[?25h$put ='Testing findfile'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?12l[?25h[?25l
:[?12l[?25hset ssl
[?25l[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','src/test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-athena[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =findfile('test19.in','testdir')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-athena/testdir[?12l[?25h[?25l:[?12l[?25h/^results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?12l[?25h[?25lExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest86.in

test1.oktest86.ok

test1.outtest86.out

test103.intest87.in

test103.oktest87.ok

test103.outtest87.out

test104.intest88.in

test104.oktest88.ok

test104.outtest88.out

test107.intest89.in

test107.oktest89.ok

test107.outtest89.out

test108.intest9.in

test108.oktest9.ok

test108.outtest9.out

test11.intest90.in

test11.oktest90.ok

test11.outtest90.out

test12.intest91.in

test12.oktest91.ok

test12.outtest91.out

test14.intest94.in

test14.oktest94.ok

test14.outtest94.out

test15.intest95.in

test15.oktest95.ok

test15.outtest95.out

test17.intest97.in

test17.oktest97.ok

test17.outtest97.out

test17a.intest98.in

test19.intest98.ok

test19.oktest98.out

test19.outtest99.in

test20.intest99.ok

test20.oktest99.out

test20.outtest_alot.vim

test22.intest_alot_latin.vim

test22.oktest_alot_utf8.vim

test22.outtest_arglist.res

test23.intest_arglist.vim

test23.oktest_assert.res

test23.outtest_assert.vim

test24.intest_assign.vim

test24.oktest_autochdir.res

test24.outtest_autochdir.vim

test25.intest_autocmd.vim

test25.oktest_autocmd_option.in

test25.outtest_autocmd_option.ok

test26.intest_autocmd_option.out

test26.oktest_autoformat_join.in

test26.outtest_autoformat_join.ok

test28.intest_autoformat_join.out

test28.oktest_backspace_opt.res

test28.outtest_backspace_opt.vim

test29.intest_breakindent.res

test29.oktest_breakindent.vim

test29.outtest_bufwintabinfo.res

test3.intest_bufwintabinfo.vim

test3.oktest_cdo.res

test3.outtest_cdo.vim

test30.intest_changelist.in

test30.oktest_changelist.ok

test30.outtest_changelist.out

test31.intest_channel.py

test31.oktest_channel.res

test31.outtest_channel.vim

test32.intest_channel_pipe.py

test32.oktest_charsearch.res

test32.outtest_charsearch.vim

test33.intest_close_count.in

test33.oktest_close_count.ok

test33.outtest_close_count.out

test34.intest_cmdline.vim

test34.oktest_command_count.vim

test34.outtest_comparators.in

test36.intest_comparators.ok

test36.oktest_comparators.out

test36.outtest_crypt.vim

test37.intest_cscope.vim

test37.oktest_cursor_func.vim

test37.outtest_delete.vim

test38.intest_diffmode.vim

test38.oktest_digraph.vim

test38.outtest_display.vim

test39.intest_erasebackword.in

test39.oktest_erasebackword.ok

test39.outtest_erasebackword.out

test4.intest_eval.in

test4.oktest_eval.ok

test4.outtest_eval.out

test40.intest_eval_func.vim

test40.oktest_ex_undo.vim

test40.outtest_execute_func.vim

test41.intest_expand.vim

test41.oktest_expand_dllpath.vim

test41.outtest_expr.vim

test42.intest_expr_utf8.vim

test42.oktest_farsi.vim

test42.outtest_feedkeys.vim

test43.intest_file_perm.vim

test43.oktest_fileformat.vim

test43.outtest_filter_cmd.vim

test44.intest_filter_map.vim

test44.oktest_fixeol.in

test44.outtest_fixeol.ok

test45.intest_fixeol.out

test45.oktest_float_func.vim

test45.outtest_fnameescape.vim

test48.intest_fnamemodify.vim

test48.oktest_fold.vim

test48.outtest_functions.vim

test49.intest_getcwd.in

test49.oktest_getcwd.ok

test49.outtest_getcwd.out

test49.vimtest_gf.vim

test5.intest_glob2regpat.vim

test5.oktest_gn.vim

test5.outtest_goto.vim

test50.intest_gui.vim

test50.oktest_hardcopy.vim

test51.intest_help_tagjump.vim

test51.oktest_hide.vim

test51.outtest_history.vim

test52.intest_hlsearch.vim

test52.oktest_increment.vim

test52.outtest_increment_dbcs.vim

test53.intest_insertcount.in

test53.oktest_insertcount.ok

test53.outtest_insertcount.out

test54.intest_job_fails.vim

test54.oktest_join.vim

test54.outtest_json.vim

test55.intest_jumps.vim

test55.oktest_lambda.vim

test55.outtest_langmap.vim

test56.intest_largefile.vim

test56.oktest_lispwords.vim

test56.outtest_listchars.in

test57.intest_listchars.ok

test57.oktest_listchars.out

test57.outtest_listlbr.in

test58.intest_listlbr.ok

test58.oktest_listlbr.out

test58.outtest_listlbr_utf8.in

test59.intest_listlbr_utf8.ok

test59.oktest_listlbr_utf8.out

test59.outtest_man.vim

test60.intest_mapping.vim

test60.oktest_marks.vim

test60.outtest_match.vim

test60.vimtest_matchadd_conceal.vim

test64.intest_matchadd_conceal_utf8.vim

test64.oktest_menu.vim

test64.outtest_messages.vim

test65.intest_mksession.vim

test65.oktest_mksession_utf8.vim

test65.outtest_modeline.vim

test66.intest_nested_function.vim

test66.oktest_netbeans.py

test66.outtest_netbeans.vim

test67.intest_normal.vim

test67.oktest_options.vim

test67.outtest_packadd.vim

test68.intest_partial.vim

test68.oktest_perl.vim

test68.outtest_popup.vim

test69.intest_profile.vim

test69.oktest_quickfix.vim

test69.outtest_regexp_latin.vim

test7.intest_regexp_utf8.vim

test7.oktest_reltime.vim

test7.outtest_ruby.vim

test70.intest_search.vim

test70.oktest_search_mbyte.in

test70.outtest_search_mbyte.ok

test72.intest_search_mbyte.out

test72.oktest_searchpos.vim

test72.outtest_set.vim

test73.intest_signs.vim

test73.oktest_smartindent.vim

test73.outtest_sort.vim

test75.intest_source.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_taglist.vim

test8.oktest_textobjects.vim

test8.outtest_timers.vim

test80.intest_true_false.vim

test80.oktest_undo.vim

test80.outtest_unlet.vim

test82.intest_usercommands.vim

test82.oktest_utf8.in

test82.outtest_utf8.ok

test83-tags2test_utf8.out

test83-tags3test_viminfo.vim

test83.intest_viml.vim

test83.oktest_visual.vim

test83.outtest_window_cmd.vim

test84.intest_window_id.vim

test84.oktest_wordcount.in

test84.outtest_wordcount.ok

test85.intest_wordcount.out

test85.oktest_writefile.vim

test85.out

: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
Xtestfile1 file1...Xtestfile1Xtestfile2 2:te 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, 98Cgcc -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


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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_display.vim" 39 lines, 849 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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]                                                                  [?12l[?25h[?25l/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?12l[?25h[?25l
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_matchadd_conceal.vim" 289 lines, 9276 characters[?1l>[?12l[?25h[?1049lExecuting 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
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vHCd1zk/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vFUNjz8/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?12l[?25h[?25l:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?12l[?25h[?1l>[?1049lone
[?1049h[?1h=[?25l:.!sed -e 's/^/|    /'
[?12l[?25h[?25l:.!
:!echo one
[?1l>[?12l[?25h[?1049l
[No write since last change]
one

Press ENTER or type command to continue[?1049h[?1h=[?25l:.!!
[?12l[?25h
[?25lExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?12l[?25h[?25l7 lines filtered:.,$!./Xsed_format.sh
[?12l[?25h[?25l7 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/vbaEnHm/11removed from /tmp/vbaEnHm/11goood' added to /tmp/vbaEnHm/11removed from /tmp/vbaEnHm/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'[?1l>[?12l[?25h[?1049l
[No write since last change]
stdin not open for reading!

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25lExecuting 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]                                                                  [?12l[?25h[?25l[?12l[?25h[?25l:^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
[?1l>[?12l[?25h[?1049l
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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]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
[New] 0L, 0C written

Executed 7 tests
"messages"359L, 9597C369L, 9825C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lAlready only one window[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lExecuting 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[?1l>[?12l[?25h[?1049lloclistfoo:1:loclistfoo
[?1049h[?1h=
[?25lAlready 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '  66 their', '  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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l1: /<<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

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_compatible_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25lError detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=
[?25lExecuting Test_file_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l3 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l2 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l4 files to edit
[?1049h[?1h=
[?25lExecuting Test_help_arg()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 1 line, 10 characters[?12;25h[?12l[?25h"Xtestout" [New File] 1 line, 10 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=
[?25lExecuting Test_startup_script()[?1000h

Executing Test_startuptime()[?1l>[?12l[?25h[?1049l[?1000l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1000h[?1049h[?1h=[?25l"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?1000l
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 2 lines, 24 characters[?12;25h[?12l[?25h"Xtestout" [New File] 2 lines, 24 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=[?25l"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?12l[?25h[?25l1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?12l[?25h

[?25lExecuting 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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  2019/06/23 11:56:27

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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viml.vim" 1315 lines, 31693 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/vMJzgJw/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vMJzgJw/0" 13L, 248C written
"test_viml.vim" 1315L, 31693C
   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/vMJzgJw/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vMJzgJw/1" 14L, 281C written
"test_viml.vim" 1315L, 31693C
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/vMJzgJw/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vMJzgJw/2" 17L, 445C written
"test_viml.vim" 1315L, 31693C
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
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/ex_eval.o ex_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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_utf8.vim" 11 lines, 440 characters[?1l>[?12l[?25h[?1049lExecuting Test_classes_re1()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


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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot.vim" 49 lines, 1258 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_OptionSet_modeline()

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" 49L, 1258C

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 Fwordfile1

cmd1

  2 Fwordfile2

cmd2

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_modeline.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             tBufReadPre              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      
Octobere        
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      
Octobere        
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      
Octobere        
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()[?12l[?25h[?25lExecuting Test_cursorhold_insert_ctrl_x()[?12l[?25h[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_empty_doau()

No matching autocommands

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" 49L, 1258C

Executing Test_func_sandbox()

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_glob2regpat_invalid()

Executing Test_glob2regpat_valid()

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] 8784L, 372352Cline 7690 of 8784 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1324 of 8784 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

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()[?12l[?25h

[?25l1[?12l[?25h
[?25l2[?12l[?25h
[?25l3[?12l[?25h
[?25l4[?12l[?25h
[?25l5[?12l[?25h
[?25l6[?12l[?25h
[?25l7[?12l[?25h
[?25l8[?12l[?25h
[?25lExecuting 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_modeline_fails_always()
"Xmodeline_fails_backupdir" 2L, 41C

"Xmodeline_fails_cdpath" 2L, 38C

"Xmodeline_fails_charconvert" 2L, 43C

"Xmodeline_fails_completefunc" 2L, 44C

"Xmodeline_fails_cscopeprg" 2L, 41C

"Xmodeline_fails_diffexpr" 2L, 40C

"Xmodeline_fails_directory" 2L, 41C

"Xmodeline_fails_equalprg" 2L, 40C

"Xmodeline_fails_errorfile" 2L, 41C

"Xmodeline_fails_exrc" 2L, 36C

"Xmodeline_fails_formatprg" 2L, 41C

"Xmodeline_fails_fsync" 2L, 37C

"Xmodeline_fails_grepprg" 2L, 39C

"Xmodeline_fails_helpfile" 2L, 40C

"Xmodeline_fails_keywordprg" 2L, 42C

"Xmodeline_fails_langmap" 2L, 39C

"Xmodeline_fails_makeef" 2L, 38C

"Xmodeline_fails_makeprg" 2L, 39C

"Xmodeline_fails_mkspellmem" 2L, 42C

"Xmodeline_fails_modelineexpr" 2L, 32C

"Xmodeline_fails_omnifunc" 2L, 40C

"Xmodeline_fails_operatorfunc" 2L, 44C

"Xmodeline_fails_printdevice" 2L, 43C

"Xmodeline_fails_patchexpr" 2L, 41C

"Xmodeline_fails_printexpr" 2L, 41C

"Xmodeline_fails_runtimepath" 2L, 43C

"Xmodeline_fails_secure" 2L, 38C

"Xmodeline_fails_shell" 2L, 37C

"Xmodeline_fails_shellcmdflag" 2L, 44C

"Xmodeline_fails_shellpipe" 2L, 41C

"Xmodeline_fails_shellquote" 2L, 42C

"Xmodeline_fails_shellredir" 2L, 42C

"Xmodeline_fails_shellxquote" 2L, 43C

"Xmodeline_fails_spellfile" 2L, 41C

"Xmodeline_fails_spellsuggest" 2L, 44C

"Xmodeline_fails_titleold" 2L, 40C

"Xmodeline_fails_viewdir" 2L, 39C

"Xmodeline_fails_viminfo" 2L, 39C

"Xmodeline_fails_undodir" 2L, 39C

"Xmodeline_fails_t_AB" 2L, 36C

"Xmodeline_fails_t_ce" 2L, 36C

"Xmodeline_fails_t_sr" 2L, 36C

"Xmodeline_fails_t_8b" 2L, 36C

Executing Test_modeline_fails_modelineexpr()
"Xmodeline_fails_balloonexpr" 2L, 43C

"Xmodeline_fails_foldexpr" 2L, 40C

"Xmodeline_fails_foldtext" 2L, 40C

"Xmodeline_fails_formatexpr" 2L, 42C

"Xmodeline_fails_iconstring" 2L, 42C

"Xmodeline_fails_includeexpr" 2L, 43C

"Xmodeline_fails_indentexpr" 2L, 42C

"Xmodeline_fails_rulerformat" 2L, 43C

"Xmodeline_fails_statusline" 2L, 42C

"Xmodeline_fails_tabline" 2L, 39C

"Xmodeline_fails_titlestring" 2L, 43C

Executing Test_modeline_filetype()
"Xmodeline_filetype" 2L, 24C

Executing Test_modeline_filetype_fails()
"Xmodeline_fails_filetype" 2L, 31C

Executing Test_modeline_invalid()
"Xmodeline" 2L, 13C

Executing Test_modeline_keymap()
"Xmodeline_keymap" 2L, 32C

Executing Test_modeline_keymap_fails()
"Xmodeline_fails_keymap" 2L, 35C

Executing Test_modeline_syntax()
"Xmodeline_syntax" 2L, 25C

Executing Test_modeline_syntax_fails()
"Xmodeline_fails_syntax" 2L, 32C

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 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
[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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_repeat_many()[?12l[?25h

[?25lExecuting Test_repeat_three()[?12l[?25h

[?25lExecuting Test_retain_partial()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_stop_in_callback()[?12l[?25h

[?25lExecuting 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[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_dir_delete()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting 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()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=
[?25l"colored" [New File]

Executing Test_trunc()

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()[?12l[?25h[?25ltilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 256 tests"messages" 584L, 15447C

"messages" 845L, 23978C written

[?1l>[?12l[?25h[?1049l

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_OptionSet_modeline()
    Skipped
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_empty_doau()
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_sandbox()
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_glob2regpat_invalid()
Executing Test_glob2regpat_valid()
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_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_modeline_fails_always()
Executing Test_modeline_fails_modelineexpr()
Executing Test_modeline_filetype()
Executing Test_modeline_filetype_fails()
Executing Test_modeline_invalid()
Executing Test_modeline_keymap()
Executing Test_modeline_keymap_fails()
Executing Test_modeline_syntax()
Executing Test_modeline_syntax_fails()
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_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 256 tests
SKIPPED Test_OptionSet_modeline(): test_override() missing

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   -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 -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
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
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   -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_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     
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
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
make[1]: warning: -jN forced in submake: disabling jobserver mode.
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/hardcopy.o hardcopy.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
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.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 de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.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 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   -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
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/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 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.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   -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
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   -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 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
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 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
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 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/normal.o normal.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/ops.o ops.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
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   -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
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
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
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   -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
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
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 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     
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
link.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox'
# Ensure ERM is set to a sane value for testing
[ yes != "yes" ] || flock debian env TERM=xterm /usr/bin/make -j1 -C src/vim-nox test
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" If columns or lines are too small, create wrongtermsize.
[?25l[?12l[?25h[?25l:[?12l[?25h" (Some tests will fail. When columns and/or lines are small)
[?25l[?12l[?25h[?25l:[?12l[?25hif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l/* vim: set cin ts=4 sw=4 : */[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo modeline
[?25l[?12l[?25h[?25l:[?12l[?25hedit                " read modeline
[?25l"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?12l[?25h[?25l/[?12l[?25hstart of AUTO
[?25l[?12l[?25h[?25l/[?12l[?25hend of AUTO
[?25l956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?12l[?25h[?25l/^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
 */[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset tw=0 wm=60 columns=80 noai fo=croq
[?25l}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
 */[?12l[?25h[?25l/[?12l[?25hserious/e
[?25l[?12l[?25h[?25l


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

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

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

/[?12l[?25htesting2
[?25lif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?12l[?25h [?25l
/^STARTTEST
}

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

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


[?25l8 lines to indent...
9indented [?12l[?25h
   [?25l/^STARTTEST
n();
}

STARTTEST[?12l[?25h[?25l
:set cino={s,e-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,e-s
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
7 lines to indent...
8indented     {[?12l[?25h[?25l
if ( k() )[?12l[?25h[?25l
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

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

STARTTEST[?12l[?25h[?25l
:set cino= com=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino= com=
[?25l[?12l[?25h[?25l/[?12l[?25hcomment
[?25la()
{
label1:/* hmm */// comment[?12l[?25h[?25l
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set comments& comments^=s:/*,m:**,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/simple
=5j[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset comments& comments^=s:/*,m:**,ex:*/
[?25l[?12l[?25h[?25l/[?12l[?25hsimple
[?25l/*
  * A simple comment[?12l[?25h[?25l
5 lines to indent...
6indented * A simple comment[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
/*
** A different comment
*/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[?25l
69 lines to indent...
50
7indented [?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
/^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};[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l:[?12l[?25hset cino+=l1
[?25l[?12l[?25h[?25l
[?12l[?25h

[?25l22 lines to indent...
23indented [?12l[?25h
[?25l/^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";
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l
[?12l[?25h

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

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

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

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


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


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


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


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


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


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

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


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

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

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

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

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

STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l16 lines to indent...
17indented [?12l[?25h[?25l/^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',[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1,+2
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?12l[?25h[?25l/^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[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin cino&
[?25l[?12l[?25h[?25l/[?12l[?25hstart of define
[?25l[?12l[?25h[?25l/[?12l[?25hend of define
[?25l11 lines to indent...
12indented     BBB\
    CCC[?12l[?25h[?25l/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l226 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 */[?12l[?25h[?25l:[?12l[?25h1;/start of AUTO/,$wq! test.out
[?25l"test.out" [New] 2096L, 20188C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 sset
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes current buffer on BufEnter event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter Xxx brew
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25lstartstart
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25h.,/end of/w! Xxx   " write test file Xxx
[?25l"Xxx" [New] 7L, 124C written[?12l[?25h[?25l:[?12l[?25hset ai modeline modelines=3
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xxx             " split to Xxx, autocmd will do :brew
[?25l"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 ssetGo# 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[?12l[?25h[?25l: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[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --        this should be auto-indented[+][+][?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l:[?12l[?25h                   " Append text with autoindent to this file
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufEnter Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hbuf Xxx            " go to Xxx, no autocmd anymore
[?25l"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~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxxt          [?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --this should be in column 1[+][?12l[?25h[?25l:[?12l[?25hwq " append text without autoindent to Xxx
[?25l"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 ssetGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25hr Xxx             " include Xxx in the current file
[?25l"Xxx" 8L, 151C
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25hset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l:au! BufEnter Xxx[?12l[?25h[?25lvim: 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
[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --
# def[?12l[?25h[?25lINSERTt --defo[?12l[?25hd[?25l[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --[?12l[?25h[?25l
-- INSERTt --def:[?12l[?25hd[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l:[?12l[?25h?startstart?,$w! test.out
[?25l"test.out" [New] 20L, 330C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that deletes the current buffer on BufLeave event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave Xxx bwipe
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx               " write test file Xxx
[?25l"Xxx" [New File] 7 lines, 124 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx                         " split to Xxx
[?25l"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                                                                        [?12l[?25h[?25l:[?12l[?25hbwipe                          " delete buffer Xxx, now we're back here
[?25lTest 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[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?12l[?25h[?25l
?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l
this is some more text[?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25h                               " Append some text to this file
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out           " Write current file contents
[?25l"test.out" [New File] 8 lines, 147 characters written[?12l[?25h[?25l:[?12l[?25hbwipe test.out                 " delete alternate buffer
[?25l[?12l[?25h[?25l:[?12l[?25hau bufleave test5.in bwipe
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!                         " delete current buffer, get an empty one
[?25lError 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lthis is another test line[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 26 characters appended[?12l[?25h[?25l:[?12l[?25h                               " append an extra line to the output file
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes the buffer list, when doing ":ball".[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1   " write test file Xxx1
[?25l"Xxx1" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx1
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2    " write test file Xxx2
[?25l"Xxx2" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx2
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3    " write test file Xxx3
[?25l"Xxx3" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx3
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 bwipe
[?25l[?12l[?25h[?25l4[?12l[?25h[?25l:[?12l[?25hball                 " open window for all args, close Xxx2
[?25l"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

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

Press ENTER or type command to continue[?12l[?25h[?25l: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                                                                            [?12l[?25h
test7.in [+]                                                                     Xxx1                                                                            [?25l:[?12l[?25hw >>test.out        " Append contents of second window (Xxx1)
[?25l"test.out" 4 lines, 77 characters appended[?12l[?25htest7.in [+]                                                                    Xxx1                                                                             [?25l:[?12l[?25h/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25lsearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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('$')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

E203: Autocommands deleted or unloaded buffer to be written

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

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

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

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! BufWritePre
[?25lstart of Xxx1test
end of Xxx[?12l[?25h[?25l:[?12l[?25hfunc CloseAll()
[?25l
:  [?12l[?25h  let i = 0

[?25l:  [?12l[?25h  while i <= bufnr('$')

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

[?25l:      [?12l[?25h      exe  i . "bunload"

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let i += 1

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfunc WriteToOut()
[?25l
:  [?12l[?25h  edit! test.out

[?25l:  [?12l[?25h  $put ='VimLeave done'

[?25l:  [?12l[?25h  write

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               [?12l[?25h[?25l:[?12l[?25hset viminfo='100,nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufUnload * call CloseAll()
[?25l[?12l[?25h[?25l:[?12l[?25hau VimLeave * call WriteToOut()
[?25l[?12l[?25h[?25l:[?12l[?25he small.vim
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp mbyte.vim
[?25l"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?12l[?25h[?25l:[?12l[?25hq
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Bufleave autocommand that deletes the buffer we are about to edit.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave test9.in bwipe yy
[?25l[?12l[?25h[?25l:[?12l[?25he yy
[?25lE143: Autocommands unexpectedly deleted new buffer yy[?12l[?25h[?25l:[?12l[?25h/^start of/,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 2 lines, 42 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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

"
[?25l:  [?12l[?25h:else

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

[?25l:  [?12l[?25h:endif
[?25l:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?12l[?25h[?25l:[?12l[?25hexe "normal " . tt
[?25lABC !a^Og^G8[?12l[?25h[?25l:[?12l[?25hunlet tt
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset vb
[?25l[?12l[?25h[?25l/[?12l[?25h^Piece
[?25l[?12l[?25h[?25l{A[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25ltt m2 {[?12l[?25h[?25l{B[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25lt2;} e2tt m3 {[?12l[?25h[?25l{C[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l{DC[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{EA[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{F[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}G e1[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h
[?25lif (x){t3;}} e3[?12l[?25h[?25l}H e3[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l
}[?12l[?25h[?5h[?5l[?25l}I[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}JH e3[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 8 characters appended[?12l[?25h[?25l}K e2[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l{LF[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^foobar
[?25lfoobar[?12l[?25h[?25l
:[?12l[?25hlet startline = line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('foobar', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25hcall search('^$', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('^$', 'bc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l/[?12l[?25htwo
[?25lsubstitute foo asdf

one two[?12l[?25h[?25l
:[?12l[?25hcall search('.', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hs/foo/bar/
[?25lbar
[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25lsearch()
0
1
1
two
foo[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hkeeppatterns s/asdf/xyz/
[?25lxyz[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25l
^substitute[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l
/[?12l[?25hbar /e
[?25l[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l

:[?12l[?25hkeeppatterns /xyz
[?25l[?12l[?25h[?25l
/bar /exyz[?12l[?25h[?25l:[?12l[?25h/^search()/,$w >>test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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


3 more lines
aaaaaa3 more lines[?12l[?25h[?25l
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?12l[?25h
[?25l:[?12l[?25h?test for :left?,$w! test.out
[?25l"test.out"[New] 111L, 2304C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset smarttab expandtab ts=8 sw=4
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lSTARTTEST
: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
[?12l[?25h[?25l
/[?12l[?25hsome
[?25lstart textsome test text[?12l[?25h[?25l    ome test text[?12l[?25h[?25l
:[?12l[?25hset noexpandtab
[?25l[?12l[?25h[?25l/[?12l[?25hother
[?25ltest textother test text[?12l[?25h[?25l    ther test text[?12l[?25h[?25l
a cde[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs and then backspacing to undo it
[?25l[?12l[?25h
    [?25l[?12l[?25h[?25l
f ghi[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs
[?25l[?12l[?25h
    [?25l     hi[?12l[?25h[?25l
test text[?12l[?25h[?25l
:[?12l[?25h" Test that copyindent works with expandtab set
[?25l[?12l[?25h[?25l:[?12l[?25hset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?12l[?25h[?25l{x[?12l[?25h[?25l
:[?12l[?25hset nosol
[?25l[?12l[?25h[?25l/[?12l[?25hSecond line/
[?25l
Second line beginning with whitespace[?12l[?25h[?25l
  with whitespace[?12l[?25h[?25l
:[?12l[?25h?^start?,$w! test.out
[?25l"test.out" [New File] 10 lines, 121 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Ox^[jAy^[kdd[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25ly
Ox^[jAy^[kdd[?12l[?25h[?25l

2 changes; before #1  0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l1 line less; before #1  0 seconds ago    [?12l[?25h[?25l:[?12l[?25hquit!
[?25l: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[?12l[?25h[?25l[?12l[?25h[?25l
Ox^[jAy^[kdd[?12l[?25h[?25l
/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l/[?12l[?25h456$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25l4
234[?12l[?25h[?25l5
345[?12l[?25h[?25l[?12l[?25h[?25lstart here56
234start here67
345start here78[?12l[?25h[?25l:[?12l[?25h/56$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for file with some lines ending in CTRL-M, some not^M[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for regexp with backslash and other special characters inside [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[\t\]]
[?25l[?12l[?25h[?25ltext test tex[?12l[?25h[?25l/[?12l[?25h[]y]
[?25l[?12l[?25h[?25ltest text[?12l[?25h[?25l/[?12l[?25h[\]]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[y^]
[?25l[?12l[?25h[?25lst text[?12l[?25h[?25l/[?12l[?25h[$y]
[?25l[?12l[?25h[?25lxt test text[?12l[?25h[?25l/[?12l[?25h[\x61]
[?25l[?12l[?25h[?25lext test text  x61[?12l[?25h[?25l/[?12l[?25h[\x60-\x64]
[?25l[?12l[?25h[?25lext test text  x60-x64[?12l[?25h
[?25l/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text  x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text  o143[?12l[?25h[?25l text test text  o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text  o140-o144[?12l[?25h[?25lt text test text  o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text  o41 7[?12l[?25h[?25l text test text  o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text  \%x42[?12l[?25h[?25lest text  \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text  \%o103[?12l[?25h[?25lst text  \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text  [\x00][?12l[?25h[?25ltest text  [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext  [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text  [\x00-\x10][?12l[?25h[?25l
test \xyztext test text  [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text  [\x-z][?12l[?25h[?25l
test text tev\uyst text  [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text  [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//
[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
 [?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
 [?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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")[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h:  if has("ebcdic")

[?25l:    [?12l[?25h:    execute "normal o" . i . "\047"

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    execute "normal o" . i . "\033"

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i % 2

[?25l:    [?12l[?25h:    normal Ax^^[

[?25l:    [?12l[?25h:    if i == 9

[?25l:      [?12l[?25h:      break

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if i == 5

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      let j = 9

[?25l:      [?12l[?25h:      while j > 0

[?25l:[?12l[?25h:        if has("ebcdic")

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x27"

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x1b"

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        let j = j - 1

[?25l:[?12l[?25h:      endwhile

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i == 9

[?25l:    [?12l[?25h:    if has("ebcdic")

[?25l:      [?12l[?25h:      execute "normal Az\047"

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      execute "normal Az\033"

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endwhile
[?25l:  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[?12l[?25h[?25l
:[?12l[?25hunlet i j
[?25l[?12l[?25h[?25l:[?12l[?25h't,$w! test.out
[?25l"test.out" [New File] 10 lines, 159 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for sourcing a file with CTRL-V's at the end of the line[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25l
sd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25hd  [?25lsd^[[?12l[?25h^[  [?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l
:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 cpoptionss+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for joining lines and marks in them[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j
[?25l[?12l[?25h[?25l/[?12l[?25hfirstline/
[?25l[?12l[?25h
[?25l/[?12l[?25h^STARTTEST/-1
[?25l+-1
37 fewer linesSTARTTEST
/^{/+1[?12l[?25h[?25lmore linesasdfasdf.
asdf[?12l[?25h[?25lasdf
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop!
ert[?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?12l[?25h  er[?25lt  e[?12l[?25h
zx cv[?25len[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv[?25l
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions-=j nojoinspaces compatible
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l.  as dfg? hjkl iop! ert[?12l[?25h[?25lt  a[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l
/[?12l[?25hSTARTTEST/-2
[?25l+-2
4 fewer lines[?12l[?25h[?25l/^STARTTEST

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

STARTTEST[?12l[?25h[?25l
:" Test with backspace set to the non-compatible setting
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" Test with backspace set to the non-compatible setting
[?25l[?12l[?25h[?25l/[?12l[?25h^\d\+ this
[?25l[?12l[?25h[?25l:[?12l[?25hset cp bs=2
[?25l[?12l[?25h[?25l[?12l[?25hd    [?25lvim2[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?25ld3[?12l[?25h[?25l:[?12l[?25hiunmap <c-u>
[?25l[?12l[?25h[?25l[?12l[?25h
[?25l:[?12l[?25h" Test with backspace set to the compatible setting
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace= visualbell
[?25l[?12l[?25h[?25lvim5[?12l[?25h[?5h[?5l[?5h[?5l[?25ld vim6[?12l[?25h6    [?25lzwei[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?5h[?5l[?5h[?5l[?25lvim7[?12l[?25h
[?25l:[?12l[?25hset compatible novisualbell
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTj3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code!^M// Make sure backspacing does not remove this comment leader.^[0i^HH^[
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?12l[?25h
[?25l/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?12l[?25h
[?25l:[?12l[?25h.,+8join
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?12l[?25h
[?25l/* 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?[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lShould the next comment leader be left alone?  Yes.


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


:[?12l[?25h.,+2join
[?25l/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?12l[?25h
[?25l/* Here the comment leader should be left intact. */ // And so should this one.[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();[?12l[?25h[?25l
[?12l[?25h[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;[?12l[?25h[?25l
[?12l[?25h[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+5join
[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25lSome code!
// Make sure backspacing does not remove this comment leader.[?12l[?25h
[?25l// Make sure backspacing does not remove this comment leader.
}[?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:?firstline?+1,$w! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l74 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 brackett) 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 liness. This comment should retain its comment leader.># Note that the last character of the ending comment leader (left angle brackett) 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 liness. This comment should retain its comment leader.

Some code!// Make sure backspacing does not remove this comment leader.
}[?12l[?25h[?25l:[?12l[?25h?firstline?+1,$w! test.out
[?25l"test.out" [New File] 97 lines, 3018 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for commands that close windows and/or buffers:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h
[?25l1[?12l[?25h[?25l:[?12l[?25h$w! Xtest1
[?25l"Xtest1" [New File] 1 line, 11 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h$w! Xtest2
[?25l"Xtest2" [New File] 1 line, 11 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h$w! Xtest3
[?25l"Xtest3" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hn! Xtest1 Xtest2
[?25l"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test for working :n when hidden set; write "testtext 2"
[?25l[?12l[?25h[?25l:[?12l[?25hn
[?25l"Xtest2" 1 line, 11 characters2[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25h" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hrew
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hrew
[?25l"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hsp
[?25lXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hn Xtest2 Xtest3
[?25l"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 [?12l[?25h[?25l:[?12l[?25hall
[?25l"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25lXtest1 [+]                                                                      Xtest2 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 2 2" twice
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l1 1[?12l[?25h[?25l:[?12l[?25hq!
[?25ltesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25hunhide
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hhide
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3"
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25ltesttext 3 3[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 1 line, 11 characters1[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3 3"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest3
[?25l"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 1"
[?25l[?12l[?25h[?25l3 3[?12l[?25h[?25l:[?12l[?25hclose!
[?25l1~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest4
[?25l"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?12l[?25h[?25l 4[+][?12l[?25h[?25l:[?12l[?25hall!
[?25l"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[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25ltesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":q!" and hidden buffer.
[?25l[?12l[?25h[?25l:[?12l[?25hbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp Xtest1
[?25l"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[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25lXtest1                                                                           test31.in                                                                       [?12l[?25h[?25l:[?12l[?25hbw!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[?12l[?25h[?25l:[?12l[?25hbot sp Xtest2
[?25l"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hbot sp Xtest3
[?25l"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hwincmd t
[?25lXtest1 [+]                                                                      Xtest3 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hhide
[?25ltesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hq!
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hq!
[?25lE37: No write since last change

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'lisp'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset lisp
[?25l[?12l[?25h[?25l/[?12l[?25h^(defun
[?25l[?12l[?25h[?25l22 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[?12l[?25h[?25l:[?12l[?25h/^(defun/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction Table(title, ...)
[?25l
:  [?12l[?25h:  let ret = a:title

[?25l:  [?12l[?25h:  let idx = 1

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

[?25l:    [?12l[?25h:    exe "let ret = ret . a:" . idx

[?25l:    [?12l[?25h:    let idx = idx + 1

[?25l:    [?12l[?25h:  endwhile

[?25l:  [?12l[?25h:  return ret

[?25l:  [?12l[?25h:endfunction
[?25l: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[?12l[?25h[?25l

:[?12l[?25hfunction Compute(n1, n2, divname)
[?25l
:  [?12l[?25h:  if a:n2 == 0

[?25l:    [?12l[?25h:    return "fail"

[?25l:    [?12l[?25h:  endif

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

[?25l:  [?12l[?25h:  return "ok"

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

:[?12l[?25hfunc Expr1()
[?25l
:  [?12l[?25h:  normal! v

[?25l:  [?12l[?25h:  return "111"

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

:[?12l[?25hfunc Expr2()
[?25l
:  [?12l[?25h:  call search('XX', 'b')

[?25l:  [?12l[?25h:  return "222"

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

:[?12l[?25hfunc ListItem()
[?25l
:  [?12l[?25h:  let g:counter += 1

[?25l:  [?12l[?25h:  return g:counter . '. '

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

:[?12l[?25hfunc ListReset()
[?25l
:  [?12l[?25h:  let g:counter = 0

[?25l:  [?12l[?25h:  return ''

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

:[?12l[?25hfunc FuncWithRef(a)
[?25l
:  [?12l[?25h:  unlet g:FuncRef

[?25l:  [?12l[?25h:  return a:a

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

:[?12l[?25hlet g:FuncRef=function("FuncWithRef")
[?25l[?12l[?25h[?25l:[?12l[?25hlet counter = 0
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> ( ListItem()
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> [ ListReset()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> + Expr1()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> * Expr2()
[?25l[?12l[?25h[?25l:[?12l[?25hlet retval = "nop"
[?25l[?12l[?25h[?25l/[?12l[?25h^here
[?25l[?12l[?25h[?25lher$=[?12l[?25hTable("xxx", 4, "asdf")
[?25l=[?12l[?25hCompute(45, 0, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hCompute(45, 5, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hg:FuncRef(333)

[?25lError detected while processing function Expr1:

line    1:

E523: Not allowed here

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

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

ing

[?25l:  [?12l[?25h:    " rhs of &&.

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

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

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:    $put ='!!! Unexpected exception:'

[?25l:  [?12l[?25h:    $put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l:    $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[?12l[?25h[?25l
:[?12l[?25h$-9,$w! test.out
[?25l"test.out" [New File] 10 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25hdelfunc Table
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Compute
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr1
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr2
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListItem
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListReset
[?25l[?12l[?25h[?25l:[?12l[?25hunlet retval counter
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest character classes in regexp using regexpengine 0, 1, 2.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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







:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l




~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


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


~                                                                               [?12l[?25h[?25l





:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

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

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







:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 --[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt=ver,jump
[?25l[?12l[?25h[?25l:[?12l[?25hset scrolloff=2
[?25l[?12l[?25h[?25l:[?12l[?25hset nowrap
[?25l[?12l[?25h[?25l:[?12l[?25hset noequalalways
[?25l[?12l[?25h[?25l:[?12l[?25hset splitbelow
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST using two windows open to one buffer, one extra empty window
[?25l[?12l[?25h[?25l:[?12l[?25hsplit
[?25l^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                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 8
[?25l:" ***** 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[?12l[?25h[?25l/[?12l[?25h^start of window 1$/
[?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 7
[?25l[?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?12l[?25h[?25l
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h

[?25l. 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[?12l[?25htest37.in                                                                        [No Name]                                                                       [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    


[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?12l[?25htest37.in                                                                        test37.in                                                                       test37.in                                                                       test37.in                                                                        test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       test37.in                                                                        test37.in                                                                        test37.in                                                                       test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    
test37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" ****** tests using two different buffers *****
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25lstart of window 20000000000[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of window 2$/,/^end of window 2$/y
[?25l18 lines yanked[?12l[?25h[?25l:[?12l[?25hnew
[?25ltest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        test37.in                                                                        [No Name]                                                                       [?25l4 more lines[+][?12l[?25h


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


[?25l. 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[?12l[?25h[No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    

[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?12l[?25h[?25l2[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

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

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST syncbind
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest 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[?12l[?25h


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 201010202[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25h[?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25h[?25l

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


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lzt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
^Wj:
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" ***** done with tests *****
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out             " Write contents of this file
[?25l"test.out" [New File] 33 lines, 1329 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25l^[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
[?12l[?25h[?25lTest 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[?12l[?25h[?25l
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l
abcdefghijk      lmn    opq rstuvwxyz[?12l[?25h[?25l:[?12l[?25hset ai
[?25l[?12l[?25h[?25l:[?12l[?25hset bs=2
[?25l[?12l[?25h[?25l 1
 A BCDEFGHIJ    KL        MNOPQR[?12l[?25h[?25l:[?12l[?25hka
[?25l[?12l[?25h[?25labcdefghijk      lmn    opq rstuvwxyz[?12l[?25h
[?25l 1[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25lab      cdefghi jkl[?12l[?25h
[?25lAB......CDEFGHI.J[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25labcdefghijklmnopqrst[?12l[?25h
[?25lAB      IJKLMNO QR[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 13 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l/[?12l[?25h^abcde
[?25lbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?12l[?25h[?25l
:[?12l[?25h" Test shift-right of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25habcd[?25l[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?12l[?25h     ef[?25l[?12l[?25h[?25lg[?12l[?25h[?25lhg[?12l[?25h[?25lih[?12l[?25h[?25lji[?12l[?25h[?25l        ghijklm        ghijklm[?12l[?25h[?25l:[?12l[?25h" Test shift-left of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25h[?25l[?12l[?25h[?25li[?12l[?25h[?25l [?12l[?25h[?25l


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


abcd[?25l[?12l[?25h[?25le[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lbccf[?12l[?25h[?25lcddg[?12l[?25h[?25ld  h[?12l[?25h[?25lqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?12l[?25h
axyz[?25l:[?12l[?25h" Test block-change
[?25l[?12l[?25h

[?25l[?12l[?25h[?25lj[?12l[?25h[?25li[?12l[?25h[?25l     ghijkl[?12l[?25h[?25lef  gkl[?12l[?25h[?25lmnomnomno[?12l[?25h[?25l:[?12l[?25h$-4,$w! test.out
[?25l"test.out" [New File] 5 lines, 108 characters written[?12l[?25h[?25l:[?12l[?25h" Test block-insert using cursor keys for movement
[?25l[?12l[?25h[?25l/[?12l[?25h^aaaa/
[?25lsearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?12l[?25h[?25l:[?12l[?25h/^aa/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?12l[?25h[?25l/[?12l[?25hxaaa$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?12l[?25h[?25l:[?12l[?25h/xaaa$/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the last <C-v>$
[?25l[?12l[?25h[?25l/[?12l[?25h^A23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?12l[?25h[?25l/[?12l[?25h^B23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?12l[?25h[?25l/[?12l[?25h^C23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25lab
456ab7[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all enc=utf-8
[?25laaa  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[?12l[?25h[?25l


:[?12l[?25h/\t\tline
[?25lsearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25lxxx[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 4 lines, 49 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block append when virtualedit=all
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25lx   line1x   line2x   line3[?12l[?25h[?25l:[?12l[?25hset ve= enc=latin1
[?25lx     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[?12l[?25h[?25l
the [?25l
:[?12l[?25h" VU must uppercase a whole line
[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" same, when it's the last line in the buffer
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" Uppercase two lines
[?25l[?12l[?25h[?25l
blah didoh dut[?12l[?25h[?25l
doh dut [?12l[?25h[?25lblah di t[?12l[?25h[?25l
BLAH DIDOH DUT[?12l[?25h[?25l
:[?12l[?25h" Uppercase part of two lines
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l
333the yo[?12l[?25h[?25lut[?12l[?25h[?25lUTUSSEUU END
333THE YOUTU[?12l[?25h[?25l

:[?12l[?25h" visual replace using Enter or NL
[?25l[?12l[?25h
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^M65
98^M65
98^M65[?12l[?25h
98
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^@65
98^@65
98^@65[?12l[?25h[?25l


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


:[?12l[?25h/^the/,$w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for "*Cmd" autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l"Xxx" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestA 0r Xxx|$del
[?25l[?12l[?25h[?25l:[?12l[?25he XtestA^I^I^I" will read text of Xxd instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?12l[?25h[?25l:[?12l[?25hw^I^I^I^I" will append a line to the file
[?25lwrite[?12l[?25h[?25l:[?12l[?25hr XtestA^I^I^I" should not read anything
[?25lE484: Can't open file XtestA[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" now we have:
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileReadCmd XtestB '[r Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWriteCmd XtestC '[,']copy $
[?25l[?12l[?25h[?25ltest401[?12l[?25h[?25l:[?12l[?25h4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l        test401end of Xxx[?12l[?25h[?25l:[?12l[?25hr XtestC^I^I^I" should not read anything
[?25lE484: Can't open file XtestC[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw >>XtestD^I^I^I" will write all lines to test.out
[?25l"test.out" [New File] 9 lines, 91 characters written[?12l[?25h[?25l:[?12l[?25h$r XtestD^I^I^I" should not read anything
[?25lE484: Can't open file XtestD[?12l[?25h[?25l:[?12l[?25h$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestE 0r test.out|$del
[?25l[?12l[?25h[?25l:[?12l[?25hsp XtestE^I^I^I" split window with test.out
[?25l"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?12l[?25h[?25lasdf[+][?12l[?25hXtestE [+]                                                                       XtestA                                                                          [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestE w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hwall^I^I^I^I" will write other window to test.out
[?25l"test.out" 11 lines, 107 characters written   [?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iasdf
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 10^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 11^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file of over 100 Kbyte[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 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[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"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[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file starting with a BOM[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l: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^@[?12l[?25h[?25l:[?12l[?25hset fileencodings=ucs-bom,latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Write the test files
[?25l[?12l[?25h[?25l:[?12l[?25h/^latin-1$/+1w! Xtest0
[?25l"Xtest0" [New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8$/+1w! Xtest1
[?25l"Xtest1" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8-err$/+1w! Xtest2
[?25l"Xtest2" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2$/+1w! Xtest3
[?25l"Xtest3" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2le$/+1w! Xtest4
[?25l"Xtest4" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add a NUL byte after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4                      " Ignore change from setting 'ff'
[?25l"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hset ffs& nobinary              " Allow default test42.in format
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix                    " Format for files to write
[?25l[?12l[?25h[?25l:[?12l[?25h/^ucs-4$/+1w! Xtest5
[?25l"Xtest5" [converted][New File] 1 line, 30 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-4le$/+1w! Xtest6
[?25l"Xtest6" [converted][New File] 1 line, 35 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add three NUL bytes after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6                      " ! for when setting 'ff' is a change
[?25l"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
~   [?25l
^@^@^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest0
[?25l"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir! >test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=latin1

nobomb

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

  bomb

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

nobomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8<80>err
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 17 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest2x
[?25l"Xtest2x" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest3
[?25l"Xtest3" [converted] 1 line, 8 charactersucs-2[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest3x
[?25l"Xtest3x" [converted][New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4
[?25l"Xtest4" [converted] 1 line, 10 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest4x
[?25l"Xtest4x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest5
[?25l"Xtest5" [converted] 1 line, 10 characters4[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest5x
[?25l"Xtest5x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6
[?25l"Xtest6" [converted] 1 line, 12 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest6x
[?25l"Xtest6x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check the files written with BOM
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25h$r Xtest0x
[?25l"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?12l[?25h[?25l
:[?12l[?25h$r Xtest1x
[?25l"Xtest1x" 1 line, 9 characters
<feff>utf-8[?12l[?25h[?25l
:[?12l[?25h$r Xtest2x
[?25l"Xtest2x" 1 line, 17 characters
utf-8<80>err[?12l[?25h[?25l
:[?12l[?25h$r Xtest3x
[?25l"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest4x
[?25l"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest5x
[?25l"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest6x
[?25l"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l
:[?12l[?25hset nobin ff&               " Write the file in default format
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 44 lines, 409 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

1 more line; before #2  0 seconds agobar[?12l[?25h[?25l
9 foo
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 11L, 137C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
: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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l:[?12l[?25h" c
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
:[?12l[?25h" d
[?25l[?12l[?25h[?25l/[?12l[?25h[\u4f7f\u5929]\+
[?25l
:[?12l[?25h" e
[?25l[?12l[?25h[?25l/[?12l[?25h\%U12345678
[?25l
:[?12l[?25h" f
[?25l[?12l[?25h[?25l/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
:[?12l[?25h" g
[?25l[?12l[?25h[?25l/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" j Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?12l[?25h[?25l:[?12l[?25h$put =['dog(a', 'cat(']
[?25ldog(acat([+][?12l[?25h[?25l/[?12l[?25h(/e+
[?25l/(/e+1
[?12l[?25h[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hbd!
[?25l1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?12l[?25h[?25la[?12l[?25h[?25l
cat(
[?12l[?25h[?25l
:[?12l[?25hw!
[?25l"test.out" 25L, 271C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("."))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for folding. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We also need the +syntax feature here.
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("syntax")
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   w! test.out

[?25l:  [?12l[?25h   qa!

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

[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?12l[?25h[?25l:[?12l[?25hcall append("$", getline(foldclosed(".")))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with markers.
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=marker fdl=1 fdc=3
[?25l   :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[?12l[?25h[?25l/[?12l[?25h^5
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", "marker " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l{{ |  6 ff }}}[?12l[?25h[?25l-{|
|
|
|[?12l[?25h[?25l


:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l6 ff }}}
 7 gg
 8 hh[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with indent
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=indent sw=2
[?25l-++---  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[?12l[?25h[?25l/[?12l[?25h^2 b
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l
-  2 bb[?12l[?25h[?25l
|-    3 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", "indent " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test syntax folding
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=syntax fdl=0
[?25l          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[?12l[?25h[?25l:[?12l[?25hsyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hsyn region Fd1 start="ee" end="ff" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd2 start="gg" end="hh" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?12l[?25h[?25l   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?12l[?25h[?25l:[?12l[?25hcall append("$", "folding " . getline("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l
--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[?12l[?25h[?25l commentend- 
|-

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

[?25l:  [?12l[?25h  if l =~ "bb$"

[?25l:    [?12l[?25h    return 2

[?25l:    [?12l[?25h  elseif l =~ "gg$"

[?25l:    [?12l[?25h    return "s1"

[?25l:    [?12l[?25h  elseif l =~ "ii$"

[?25l:    [?12l[?25h    return ">2"

[?25l:    [?12l[?25h  elseif l =~ "kk$"

[?25l:    [?12l[?25h    return "0"

[?25l:    [?12l[?25h  endif

[?25l:  [?12l[?25h  return "="

[?25l:  [?12l[?25hendfun
[?25l   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?12l[?25h[?25l:[?12l[?25hset fdm=expr fde=Flvl()
[?25l++-- 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---------------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l/[?12l[?25hbb$
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hcall append("$", "expr " . foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hhh$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hii$
[?25l-9 ii||a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hkk$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h/^last/+1,$w! test.out
[?25l"test.out" [New File] 18 lines, 96 characters written[?12l[?25h[?25l:[?12l[?25hdelfun Flvl
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l   
   
   
   ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?12l[?25h[?25lTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?12l[?25h[?25l:[?12l[?25hset fdm=indent
[?25l++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l:[?12l[?25h1m1
[?25l[?12l[?25h[?25l:[?12l[?25hm0
[?25l3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?12l[?25h[?25l:[?12l[?25h%w >> test.out
[?25l"test.out" 5 lines, 77 characters appendedtest.out [+]]  [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of 'virtualedit'.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswf
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


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

"r"     
a^Vb^Msdabcv6efi.him0kl[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   When past the end of a line that ends in a single character "b" skips
[?25l[?12l[?25h[?25l:[?12l[?25h"    that word.
[?25l[?12l[?25h
[?25l$7[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'i' works
[?25l[?12l[?25h
'i'   [?25l<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'C' works
[?25l[?12l[?25h
'C'   [?25l$<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'a' works
[?25l[?12l[?25h
'a'   [?25l <-- should be 4 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'A' works
[?25l[?12l[?25h
'A'   [?25l<-- should be 0 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'D' works
[?25l[?12l[?25h
'D'   [?25l<-- 'D' should be intact[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for yank bug reported by Mark Waggoner.
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=block
[?25l[?12l[?25h
[?25l[?12l[?25h[?25laaa[?12l[?25h[?25laaablock of 4 lines yanked[?12l[?25h[?25l3 more linesa
aa [?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" beyond the end of the line
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l/[?12l[?25h^"r"
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h"r"    [?25lx[?12l[?25h[?25lx<-- should be 'x'[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" on a tab
[?25l[?12l[?25h[?25l:[?12l[?25h" Note that for this test, 'ts' must be 8 (the default).
[?25l[?12l[?25h
"r"  [?25lx[?12l[?25h[?25lx  <-- should be '  x  '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test to make sure 'x' can delete control characters
[?25l[?12l[?25h[?25l:[?12l[?25hset display=uhex
[?25l<16>b<0d>sd[?12l[?25h
[?25l<16>b<0d>sd[?12l[?25h[?25lb<0d>sd[?12l[?25h[?25l<0d>sd[?12l[?25h[?25lsd[?12l[?25h[?25ld[?12l[?25h[?25l[?12l[?25h[?25l[This line should contain only the text between the brackets.][?12l[?25h[?25l:[?12l[?25hset display=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?12l[?25h[?25l:[?12l[?25h"   Roy <royl@netropolis.net>.
[?25l[?12l[?25h
[?25l[?12l[?25h   [?25lv[?12l[?25hv   [?25li[?12l[?25hi   [?25lm   <-- should show the name of a noted text editor[?12l[?25h
[?25l[?12l[?25h    [?25l6[?12l[?25h6   [?25l.[?12l[?25h.   [?25l0   <-- and its version number[?12l[?25h[?25l
[?12l[?25h
    [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for yanking and pasting using the small delete register
[?25l[?12l[?25h[?25l/[?12l[?25h^foo
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l, bar[?12l[?25h, [?25l[?12l[?25h[?25lba[?12l[?25h[?25l[?12l[?25h[?25lfoo[?12l[?25h
keyw[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 23 lines, 479 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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=#000ff00 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

EndOfBuffer    xxx links to NonText

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

Directory      xxx term=bold ctermfg=4 guifg=Blue

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 guibg=Yellow

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

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline ctermfg=3 guifg=Brown

CursorLineNr   xxx term=bold ctermfg=3 gui=bold guifg=Brown

Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen

StatusLine     xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse

StatusLineNC   xxx term=reverse cterm=reverse gui=reverse

VertSplit      xxx term=reverse cterm=reverse gui=reverse

Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=LightGrey

VisualNOS      xxx term=bold,underline cterm=bold,underline gui=bold,underline

WarningMsg     xxx term=standout ctermfg=1 guifg=Red

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

Foldedxxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue

guibg=LightGrey

FoldColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=LightBlue

DiffChange     xxx term=bold ctermbg=5 guibg=LightMagenta

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

guibg=LightCyan

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

SignColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue 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=DarkCyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=LightMagenta

PmenuSelxxx ctermfg=0 ctermbg=7 guibg=Grey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=0 guibg=Black

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

gui=underline guibg=LightGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=7 guibg=Grey90

CursorLine     xxx term=underline cterm=underline guibg=Grey90

ColorColumn    xxx term=reverse ctermbg=1 guibg=LightRed

Cursorxxx guifg=bg guibg=fg

lCursorxxx guifg=bg guibg=fg

MatchParen     xxx term=reverse ctermbg=6 guibg=Cyan

Normalxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Search
[?25l
Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow

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

0ff00 guibg=Cyan
[?25lE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 term= cterm=
[?25lE418: Illegal value: cterm=

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group3
[?25l
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear NewGroup
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?12l[?25h[?25l
:[?12l[?25hhi NewGroup
[?25l
NewGroupxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 NONE
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?12l[?25h[?25l
:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hhi Group3
[?25l
Group3xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Crash term='asdf
[?25lE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l:hi NewGroup
:hi Group2
:hi Group3[?12l[?25h[?25l
:[?12l[?25h" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h%s/ctermfg=\d*/ctermfg=2/
[?25l2
[?12l[?25h[?25l:[?12l[?25h%s/ctermbg=\d*/ctermbg=3/
[?25l3
[?12l[?25h[?25l:[?12l[?25h" filter out possibly translated error message
[?25l[?12l[?25h[?25l:[?12l[?25h%s/E475: [^:]*:/E475:/
[?25lterm='asdf[?12l[?25h[?25l:[?12l[?25h" fix the fileformat
[?25l[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hwq!
[?25l"test.out" 20 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for string and html text objects. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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>-[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l[?12l[?25h[?25lfo[?12l[?25h
[?25l[?12l[?25h[?25l'foo'[?12l[?25h[?25l 'bar'[?12l[?25h[?25l
xxxxxxxxxxxx
[?12l[?25h
[?25lblah[?12l[?25h
[?25l"[?12l[?25h
[?25l[?12l[?25h[?25l' rep[?12l[?25h[?25lyyyyy[?12l[?25h[?25l:[?12l[?25hset quoteescape=+*-
[?25l[?12l[?25h[?25l` b`la[?12l[?25h[?25l[?12l[?25h[?25l" sdf"[?12l[?25h[?25l" [?12l[?25h[?25l"[?12l[?25h[?25l asdf" sdf [?12l[?25h[?25lah" sdf "
voo "[?12l[?25h[?25lzzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^<begin
[?25l[?12l[?25h
[?25l</i>asdf</b>-[?12l[?25h[?25l
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?12l[?25h
[?25l</b>-[?12l[?25h[?25l
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?12l[?25h[?25lasdf</b>-[?12l[?25h[?25l
-<b>asdX<i>as<b />df</i>asdf</b>-[?12l[?25h
[?25l
--[?12l[?25h[?25l
-<b>
-[?12l[?25h[?25l<b></b>[?12l[?25h[?25l
</begin>[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l
b[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l
bc[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l
c[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l
a[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, -1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 4) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 3, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 2) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 1, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 2, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 4) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25h/^start:/,/^end:/wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test(...)
[?25l
:  [?12l[?25h:lang C

[?25l:  [?12l[?25h:" Creating List directly with different types

[?25l:  [?12l[?25h:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:$put =string(l[-4])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-5])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List slices

[?25l:  [?12l[?25h:$put =string(l[:])

[?25l:  [?12l[?25h:$put =string(l[1:])

[?25l:  [?12l[?25h:$put =string(l[:-2])

[?25l:  [?12l[?25h:$put =string(l[0:8])

[?25l:  [?12l[?25h:$put =string(l[8:-1])

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" List identity

[?25l:  [?12l[?25h:let ll = l

[?25l:  [?12l[?25h:let lx = copy(l)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Creating Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l:  [?12l[?25h:$put =string(d) . d.1

[?25l:  [?12l[?25h:$put =string(sort(keys(d)))

[?25l:  [?12l[?25h:$put =string (values(d))

[?25l:  [?12l[?25h:for [key, val] in items(d)

[?25l:    [?12l[?25h:  $put =key . ':' . string(val)

[?25l:    [?12l[?25h:  unlet key val

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:call extend  (d, {3:33, 1:99})

[?25l:  [?12l[?25h:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  call extend(d, {3:333,4:444}, "error")

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:call filter(d, 'v:key =~ ''[ac391]''')

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary identity

[?25l:  [?12l[?25h:let dd = d

[?25l:  [?12l[?25h:let dx = copy(d)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items with :unlet

[?25l:  [?12l[?25h:unlet l[2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:let l = range(8)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:unlet l[:3]

[?25l:    [?12l[?25h:unlet l[1:]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:$put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:unlet d.c

[?25l:  [?12l[?25h:unlet d[-1]

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:1]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:3]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:4]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:5]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-1:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-3:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-4:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-5:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-6:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" assignment to a list

[?25l:  [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:let [va, vb] = l[2:3]

[?25l:  [?12l[?25h:$put =va

[?25l:  [?12l[?25h:$put =vb

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l[1:1]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: let d[i] = 3000 - i

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let n = d[1500]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" lookup each items

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h: let i += 1

[?25l:  [?12l[?25h:" delete even items

[?25l:  [?12l[?25h:while i >= 2

[?25l:    [?12l[?25h: let i -= 2

[?25l:    [?12l[?25h: unlet d[i]

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l:  [?12l[?25h:" delete odd items, checking value, one intentionally wrong

[?25l:  [?12l[?25h:let d[33] = 999

[?25l:  [?12l[?25h:let i = 1

[?25l:  [?12l[?25h:while i < 1500

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =i . '=' . d[i]

[?25l:      [?12l[?25h: else

[?25l:      [?12l[?25h:  unlet d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h: let i += 2

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =string(d)  " must be almost empty now

[?25l:  [?12l[?25h:unlet d

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary function

[?25l:  [?12l[?25h:let dict = {}

[?25l:  [?12l[?25h:func dict.func(a) dict

[?25l:    [?12l[?25h:  $put =a:a . len(self.data)

[?25l:    [?12l[?25h:endfunc

[?25l:    [?12l[?25h:let dict.data = [1,2,3]

[?25l:    [?12l[?25h:call dict.func("len: ")

[?25l:    [?12l[?25h:let x = dict.func("again: ")

[?25l:    [?12l[?25h:let Fn = dict.func

[?25l:    [?12l[?25h:call Fn('xxx')

[?25l:    [?12l[?25h:" 

[?25l:    [?12l[?25h:" Function in script-local List or Dict

[?25l:    [?12l[?25h:let g:dict = {}

[?25l:    [?12l[?25h:function g:dict.func() dict

[?25l:      [?12l[?25h:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l:      [?12l[?25h:endfunc

[?25l:      [?12l[?25h:let g:dict.foo = ['-', 2, 3]

[?25l:      [?12l[?25h:call insert(g:dict.foo, function('strlen'))

[?25l:      [?12l[?25h:call g:dict.func()

[?25l:      [?12l[?25h:" 

[?25l:      [?12l[?25h:" Nasty: remove func from Dict that's being called (works)

[?25l:      [?12l[?25h:let d = {1:1}

[?25l:      [?12l[?25h:func d.func(a)

[?25l:[?12l[?25h:  return "a:". a:a

[?25l:[?12l[?25h:endfunc

[?25l:[?12l[?25h:$put =d.func(string(remove(d, 'func')))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l:[?12l[?25h:let d = {1:1, 2:2}

[?25l:[?12l[?25h:let l = [4, d, 6]

[?25l:[?12l[?25h:let d[3] = l

[?25l:[?12l[?25h:let dc = deepcopy(d)

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let dc = deepcopy(d, 1)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:let l2 = [0, l, l, 3]

[?25l:[?12l[?25h:let l[1] = l2

[?25l:[?12l[?25h:let l3 = deepcopy(l2)

[?25l:[?12l[?25h:$put ='same list: ' . (l3[1] is l3[2])

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1][0] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2]['6'][7] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2][6] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Unletting locked variables

[?25l:[?12l[?25h:$put ='Unletting:'

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]['6'][7]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2][6]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1][0]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables and :unlet or list / dict functions

[?25l:[?12l[?25h:$put ='Locks and commands or functions:'

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put =':unlet after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='filter() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call filter(d, 'v:key != "a"')

[?25l:[?12l[?25h:  $put ='did filter()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='map() after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call map(d, 'v:val + 200')

[?25l:[?12l[?25h:  $put ='did map()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  $put =string(extend(d, {'a': 123}))

[?25l:[?12l[?25h:  $put ='did extend()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No remove() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l:[?12l[?25h:    $put ='did remove()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l:[?12l[?25h:    $put ='did extend()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet of variable in locked scope:'

[?25l:[?12l[?25h:let b:testvar = 123

[?25l:[?12l[?25h:lockvar 1 b:

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet b:testvar

[?25l:[?12l[?25h:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:unlockvar 1 b:

[?25l:[?12l[?25h:unlet! b:testvar

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :let += of locked list variable:'

[?25l:[?12l[?25h:let l = ['a', 'b', 3]

[?25l:[?12l[?25h:lockvar 1 l

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let l += ['x']

[?25l:[?12l[?25h:  $put ='did :let +='

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:lockvar! l

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:unlet l[0:1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l[1:2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:let l[0:1] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let l[1:2] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:" :lockvar/islocked() triggering script autoloading

[?25l:[?12l[?25h:set rtp+=./sautest

[?25l:[?12l[?25h:lockvar g:footest#x

[?25l:[?12l[?25h:unlockvar g:footest#x

[?25l:[?12l[?25h:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l:[?12l[?25h:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l:[?12l[?25h:$put ='g:footest#x: '.g:footest#x

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" a:000 function argument

[?25l:[?12l[?25h:" first the tests that should fail

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000 = [1, 2]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[0] = 9

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[0]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2] = [9, 10]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[2]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[3] = {9: 10}

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[3]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:" now the tests that should pass

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2][1] = 9

[?25l:[?12l[?25h:  call extend(a:000[2], [5, 6])

[?25l:[?12l[?25h:  let a:000[3][5] = 8

[?25l:[?12l[?25h:  let a:000[3]['a'] = 12

[?25l:[?12l[?25h:  $put =string(a:000)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught ' . v:exception

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" reverse(), sort(), uniq()

[?25l:[?12l[?25h:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l:[?12l[?25h:$put =string(uniq(copy(l)))

[?25l:[?12l[?25h:$put =string(reverse(l))

[?25l:[?12l[?25h:$put =string(reverse(reverse(l)))

[?25l:[?12l[?25h:$put =string(sort(l))

[?25l:[?12l[?25h:$put =string(reverse(sort(l)))

[?25l:[?12l[?25h:$put =string(sort(reverse(sort(l))))

[?25l:[?12l[?25h:$put =string(uniq(sort(l)))

[?25l:[?12l[?25h:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'n'))

[?25l:[?12l[?25h:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l:[?12l[?25h:$put =string(sort(copy(l), 1))

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'i'))

[?25l:[?12l[?25h:$put =string(sort(copy(l)))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" splitting a string to a List

[?25l:[?12l[?25h:$put =string(split('  aa  bb '))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W', 1))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 0))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 1))

[?25l:[?12l[?25h:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs'))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs', 1))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare recursively linked list and dict

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:let d = {'1': 1, '2': l, '3': 3}

[?25l:[?12l[?25h:let l[1] = d

[?25l:[?12l[?25h:$put =(l == l)

[?25l:[?12l[?25h:$put =(d == d)

[?25l:[?12l[?25h:$put =(l != deepcopy(l))

[?25l:[?12l[?25h:$put =(d != deepcopy(d))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare complex recursively linked list and dict

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:call add(l, l)

[?25l:[?12l[?25h:let dict4 = {"l": l}

[?25l:[?12l[?25h:call add(dict4.l, dict4)

[?25l:[?12l[?25h:let lcopy = deepcopy(l)

[?25l:[?12l[?25h:let dict4copy = deepcopy(dict4)

[?25l:[?12l[?25h:$put =(l == lcopy)

[?25l:[?12l[?25h:$put =(dict4 == dict4copy)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same List to extend()

[?25l:[?12l[?25h:let l = [1, 2, 3, 4, 5]

[?25l:[?12l[?25h:call extend(l, l)

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend()

[?25l:[?12l[?25h:let d = { 'a': {'b': 'B'}}

[?25l:[?12l[?25h:call extend(d, d)

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend() with "error"

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call extend(d, d, "error")

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" test for range assign

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:let l[:] = [1, 2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:endfun
[?25l:$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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 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]
~                                                                               [?12l[?25h[?25l

:[?12l[?25hdelfunc Test
[?25l[?12l[?25h[?25l:[?12l[?25hunlet dict
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for patch 7.3.637
[?25l[?12l[?25h[?25l:[?12l[?25hlet a = 'No error caught'
[?25l[?12l[?25h[?25l:[?12l[?25htry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?12l[?25h[?25l=[?12l[?25ha
[?25lVim(foldopen):E490:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hredir => a
[?25l[?12l[?25h[?25l:[?12l[?25htry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?12l[?25h[?25l
=[?12l[?25ha
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'))|endtry
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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>delfunnc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for script-local function.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,/^end:/-1w! Xtest.vim
[?25l"Xtest.vim" [New] 7L, 251C written[?12l[?25h[?25l:[?12l[?25hsource Xtest.vim
[?25l[?12l[?25h[?25l:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?12l[?25h[?25lTest for script-local function.     vim: set ft=vim :nothing line[?12l[?25h[?25l:[?12l[?25h$-1,$wq! test.out
[?25l"test.out" [New] 2L, 23C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :sort command.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^t01:/+1,/^t02/-1sort
[?25l 123b2
a123
a
ababc[?12l[?25h[?25l:[?12l[?25h/^t02:/+1,/^t03/-1sort n
[?25lb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?12l[?25h[?25l
:[?12l[?25h/^t03:/+1,/^t04/-1sort x
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?12l[?25h[?25l:[?12l[?25h/^t04:/+1,/^t05/-1sort u
[?25lb321b
b322b
c123d
c321d
t04: alpha, unique[?12l[?25h[?25l
:[?12l[?25h/^t05:/+1,/^t06/-1sort!
[?25la123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?12l[?25h[?25l:[?12l[?25h/^t06:/+1,/^t07/-1sort! n        
[?25la
 123b


t06: numeric, reverse
b322b[?12l[?25h[?25l
:[?12l[?25h/^t07:/+1,/^t08/-1sort! u
[?25l123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?12l[?25h[?25l:[?12l[?25h/^t08:/+1,/^t09/-1sort o         
[?25l123b

t08: octal
abc[?12l[?25h[?25l
:[?12l[?25h/^t09:/+1,/^t10/-1sort! x        
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?12l[?25h[?25l:[?12l[?25h/^t10:/+1,/^t11/-1sort/./        
[?25lab
a


t10: alpha, skip first character
a[?12l[?25h[?25l
:[?12l[?25h/^t11:/+1,/^t12/-1sort/../       
[?25l123b
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[?12l[?25h[?25l:[?12l[?25h/^t12:/+1,/^t13/-1sort/../u
[?25lb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?12l[?25h[?25l
:[?12l[?25h/^t13:/+1,/^t14/-1sort/./n
[?25lb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?12l[?25h[?25l:[?12l[?25h/^t14:/+1,/^t15/-1sort/./r
[?25lc321d
b321
b321b
b322b
t14: alpha, sort on first character[?12l[?25h[?25l
:[?12l[?25h/^t15:/+1,/^t16/-1sort/../r
[?25la321
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[?12l[?25h[?25l:[?12l[?25h/^t16:/+1,/^t17/-1sort/./rn
[?25lb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?12l[?25h[?25l
:[?12l[?25h/^t17:/+1,/^t18/-1sort/\d/
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?12l[?25h[?25l:[?12l[?25h/^t18:/+1,/^t19/-1sort/\d/r
[?25la123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t19:/+1,/^t20/-1sort/\d/n
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t20:/+1,/^t21/-1sort/\d/rn
[?25la123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t21:/+1,/^t22/-1sort/\d\d/
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t22:/+1,/^t23/-1sort/\d\d/n
[?25la123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t23:/+1,/^t24/-1sort/\d\d/x
[?25lb321
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[?12l[?25h[?25l:[?12l[?25h/^t24:/+1,/^t25/-1sort/\d\d/r
[?25lc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25lc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t27:/+1,/^t28/-1sort no
[?25lE474: Invalid argument[?12l[?25h[?25l:[?12l[?25h/^t28:/+1,/^t29/-1sort b
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?12l[?25h[?25l:[?12l[?25h/^t29:/+1,/^t30/-1sort b
[?25l0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?12l[?25h[?25l
:[?12l[?25h/^t30:/+1,/^t31/-1sort f
[?25la0b001000
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[?12l[?25h[?25l:[?12l[?25h/^t01:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! RunTest(str, result)
[?25l
:  [?12l[?25h    if exists(a:str) == a:result

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED: Checking for " . a:str

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfunction
[?25lendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?12l[?25h[?25l
:[?12l[?25hfunction! TestExists()
[?25l
:  [?12l[?25h    augroup myagroup

[?25l:  [?12l[?25h^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l:  [?12l[?25h^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l:  [?12l[?25h    augroup END

[?25l:  [?12l[?25h    set rtp+=./sautest

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    let test_cases = []

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " valid autocmd group

[?25l:  [?12l[?25h    let test_cases += [['#myagroup', 1]]

[?25l:  [?12l[?25h    " valid autocmd group with garbage

[?25l:  [?12l[?25h    let test_cases += [['#myagroup+b', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd group or event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup', 0]]

[?25l:  [?12l[?25h    " Non-existing autocmd group and valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event with no matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['###', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group and event or empty event and pattern

[?25l:  [?12l[?25h    let test_cases += [['##', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##FileReadCmd', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##MySpecialCmd', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&textwidth', 1]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&tw', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['&tw-', 0]]

[?25l:  [?12l[?25h    " Global option

[?25l:  [?12l[?25h    let test_cases += [['&g:errorformat', 1]]

[?25l:  [?12l[?25h    " Local option

[?25l:  [?12l[?25h    let test_cases += [['&l:errorformat', 1]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&nojoinspaces', 0]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&nojs', 0]]

[?25l:  [?12l[?25h    " Non-existing option

[?25l:  [?12l[?25h    let test_cases += [['&myxyzoption', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['+incsearch', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['+incsearch!1', 0]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['+is', 1]]

[?25l:  [?12l[?25h    " Existing option that is hidden.

[?25l:  [?12l[?25h    let test_cases += [['+autoprint', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing environment variable

[?25l:  [?12l[?25h    let $EDITOR_NAME = 'Vim Editor'

[?25l:  [?12l[?25h    let test_cases += [['$EDITOR_NAME', 1]]

[?25l:  [?12l[?25h    " Non-existing environment variable

[?25l:  [?12l[?25h    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal function

[?25l:  [?12l[?25h    let test_cases += [['*bufnr', 1]]

[?25l:  [?12l[?25h    " Valid internal function with ()

[?25l:  [?12l[?25h    let test_cases += [['*bufnr()', 1]]

[?25l:  [?12l[?25h    " Non-existing internal function

[?25l:  [?12l[?25h    let test_cases += [['*myxyzfunc', 0]]

[?25l:  [?12l[?25h    " Valid internal function with garbage

[?25l:  [?12l[?25h    let test_cases += [['*bufnr&6', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid user defined function

[?25l:  [?12l[?25h    let test_cases += [['*TestExists', 1]]

[?25l:  [?12l[?25h    " Non-existing user defined function

[?25l:  [?12l[?25h    let test_cases += [['*MyxyzFunc', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function that may be created by FuncUndefined event

[?25l:  [?12l[?25h    let test_cases += [['*UndefFun', 0]]

[?25l:  [?12l[?25h    " Function that may be created by script autoloading

[?25l:  [?12l[?25h    let test_cases += [['*footest#F', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    redir! > test.out

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    for [test_case, result] in test_cases

[?25l:    [?12l[?25h        echo test_case . ": " . result

[?25l:    [?12l[?25h        call RunTest(test_case, result)

[?25l:    [?12l[?25h    endfor

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match)

[?25l:  [?12l[?25h    echo ':edit: 2'

[?25l:  [?12l[?25h    if exists(':edit') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match) with garbage

[?25l:  [?12l[?25h    echo ':edit/a: 0'

[?25l:  [?12l[?25h    if exists(':edit/a') == 0

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (partial match)

[?25l:  [?12l[?25h    echo ':q: 1'

[?25l:  [?12l[?25h    if exists(':q') == 1

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing internal command

[?25l:  [?12l[?25h    echo ':invalidcmd: 0'

[?25l:  [?12l[?25h    if !exists(':invalidcmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (full match)

[?25l:  [?12l[?25h    command! MyCmd :echo 'My command'

[?25l:  [?12l[?25h    echo ':MyCmd: 2'

[?25l:  [?12l[?25h    if exists(':MyCmd') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (partial match)

[?25l:  [?12l[?25h    command! MyOtherCmd :echo 'Another command'

[?25l:  [?12l[?25h    echo ':My: 3'

[?25l:  [?12l[?25h    if exists(':My') == 3

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Command modifier

[?25l:  [?12l[?25h    echo ':rightbelow: 2'

[?25l:  [?12l[?25h    if exists(':rightbelow') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (full match)

[?25l:  [?12l[?25h    delcommand MyCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':MyCmd: 0'

[?25l:  [?12l[?25h    if !exists(':MyCmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (partial match)

[?25l:  [?12l[?25h    delcommand MyOtherCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':My: 0'

[?25l:  [?12l[?25h    if !exists(':My')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var: 1'

[?25l:  [?12l[?25h    if exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable with garbage

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var%n: 0'

[?25l:  [?12l[?25h    if !exists('local_var%n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local variable

[?25l:  [?12l[?25h    unlet local_var

[?25l:  [?12l[?25h    echo 'local_var: 0'

[?25l:  [?12l[?25h    if !exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing autoload variable that may be autoloaded

[?25l:  [?12l[?25h    echo 'footest#x: 0'

[?25l:  [?12l[?25h    if !exists('footest#x')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list

[?25l:  [?12l[?25h    let local_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'local_list: 1'

[?25l:  [?12l[?25h    if exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item

[?25l:  [?12l[?25h    echo 'local_list[1]: 1'

[?25l:  [?12l[?25h    if exists('local_list[1]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item with garbage

[?25l:  [?12l[?25h    echo 'local_list[1]+5: 0'

[?25l:  [?12l[?25h    if !exists('local_list[1]+5')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Invalid local list item

[?25l:  [?12l[?25h    echo 'local_list[2]: 0'

[?25l:  [?12l[?25h    if !exists('local_list[2]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local list

[?25l:  [?12l[?25h    unlet local_list

[?25l:  [?12l[?25h    echo 'local_list: 0'

[?25l:  [?12l[?25h    if !exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local dictionary

[?25l:  [?12l[?25h    let local_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'local_dict: 1'

[?25l:  [?12l[?25h    if exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local dictionary

[?25l:  [?12l[?25h    unlet local_dict

[?25l:  [?12l[?25h    echo 'local_dict: 0'

[?25l:  [?12l[?25h    if !exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing local curly-brace variable

[?25l:  [?12l[?25h    let str = "local"

[?25l:  [?12l[?25h    let curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local curly-brace variable

[?25l:  [?12l[?25h    unlet curly_{str}_var

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable

[?25l:  [?12l[?25h    let g:global_var = 1

[?25l:  [?12l[?25h    echo 'g:global_var: 1'

[?25l:  [?12l[?25h    if exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable with garbage

[?25l:  [?12l[?25h    echo 'g:global_var-n: 1'

[?25l:  [?12l[?25h    if !exists('g:global_var-n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global variable

[?25l:  [?12l[?25h    unlet g:global_var

[?25l:  [?12l[?25h    echo 'g:global_var: 0'

[?25l:  [?12l[?25h    if !exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global list

[?25l:  [?12l[?25h    let g:global_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'g:global_list: 1'

[?25l:  [?12l[?25h    if exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global list

[?25l:  [?12l[?25h    unlet g:global_list

[?25l:  [?12l[?25h    echo 'g:global_list: 0'

[?25l:  [?12l[?25h    if !exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global dictionary

[?25l:  [?12l[?25h    let g:global_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'g:global_dict: 1'

[?25l:  [?12l[?25h    if exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global dictionary

[?25l:  [?12l[?25h    unlet g:global_dict

[?25l:  [?12l[?25h    echo 'g:global_dict: 0'

[?25l:  [?12l[?25h    if !exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global curly-brace variable

[?25l:  [?12l[?25h    let str = "global"

[?25l:  [?12l[?25h    let g:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global curly-brace variable

[?25l:  [?12l[?25h    unlet g:curly_{str}_var

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window variable

[?25l:  [?12l[?25h    echo 'w:window_var: 1'

[?25l:  [?12l[?25h    let w:window_var = 1

[?25l:  [?12l[?25h    if exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window variable

[?25l:  [?12l[?25h    unlet w:window_var

[?25l:  [?12l[?25h    echo 'w:window_var: 0'

[?25l:  [?12l[?25h    if !exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window list

[?25l:  [?12l[?25h    let w:window_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'w:window_list: 1'

[?25l:  [?12l[?25h    if exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window list

[?25l:  [?12l[?25h    unlet w:window_list

[?25l:  [?12l[?25h    echo 'w:window_list: 0'

[?25l:  [?12l[?25h    if !exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window dictionary

[?25l:  [?12l[?25h    let w:window_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'w:window_dict: 1'

[?25l:  [?12l[?25h    if exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window dictionary

[?25l:  [?12l[?25h    unlet w:window_dict

[?25l:  [?12l[?25h    echo 'w:window_dict: 0'

[?25l:  [?12l[?25h    if !exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window curly-brace variable

[?25l:  [?12l[?25h    let str = "window"

[?25l:  [?12l[?25h    let w:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window curly-brace variable

[?25l:  [?12l[?25h    unlet w:curly_{str}_var

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer variable

[?25l:  [?12l[?25h    echo 'b:buffer_var: 1'

[?25l:  [?12l[?25h    let b:buffer_var = 1

[?25l:  [?12l[?25h    if exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer variable

[?25l:  [?12l[?25h    unlet b:buffer_var

[?25l:  [?12l[?25h    echo 'b:buffer_var: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer list

[?25l:  [?12l[?25h    let b:buffer_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'b:buffer_list: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer list

[?25l:  [?12l[?25h    unlet b:buffer_list

[?25l:  [?12l[?25h    echo 'b:buffer_list: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer dictionary

[?25l:  [?12l[?25h    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer dictionary

[?25l:  [?12l[?25h    unlet b:buffer_dict

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer curly-brace variable

[?25l:  [?12l[?25h    let str = "buffer"

[?25l:  [?12l[?25h    let b:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer curly-brace variable

[?25l:  [?12l[?25h    unlet b:curly_{str}_var

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Script-local tests

[?25l:  [?12l[?25h    source test60.vim

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:version: 1'

[?25l:  [?12l[?25h    if exists('v:version')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:non_exists_var: 0'

[?25l:  [?12l[?25h    if !exists('v:non_exists_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function arguments

[?25l:  [?12l[?25h    function TestFuncArg(func_arg, ...)

[?25l:    [?12l[?25h        echo 'a:func_arg: 1'

[?25l:    [?12l[?25h        if exists('a:func_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:non_exists_arg: 0'

[?25l:    [?12l[?25h        if !exists('a:non_exists_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:1: 1'

[?25l:    [?12l[?25h        if exists('a:1')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:2: 0'

[?25l:    [?12l[?25h        if !exists('a:2')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h    endfunction

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    call TestFuncArg("arg1", "arg2")

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    echo ' g:footest#x =' g:footest#x

[?25l:    [?12l[?25h    echo '   footest#F()' footest#F()

[?25l:    [?12l[?25h    echo 'UndefFun()' UndefFun()

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    redir END

[?25l:    [?12l[?25hendfunction
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hcall TestExists()
[?25l#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[?12l[?25h[?25l:[?12l[?25h"
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hdelfunc TestExists
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestFuncArg
[?25l[?12l[?25h[?25l:[?12l[?25hedit! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 206 lines, 1941 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns without multi-byte support.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp engine
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"operator \|
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a*', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x', 'abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search single groups
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'baced'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search multi-modifiers
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" no match here
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a\{0,1}'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" leading star as normal char when \{} follows
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test groups of characters and submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test greedy-ness and lazy-ness
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test Character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test collections and character range []
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-a]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?12l[?25h[?25l:[?12l[?25h" filename regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?12l[?25h[?25l:[?12l[?25h" special chars
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?12l[?25h[?25l:[?12l[?25h" collation elem
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" middle of regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test start/end of line, start/end of file
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "b a \na_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a', " a \na "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test recognition of character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \z features
[?25l[?12l[?25h[?25l:[?12l[?25h" match ends at \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" match starts at \zs
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \@= and \& features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match, no matter the input text
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Combining different tests and features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" \%u and friends
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \%[abc]
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Alternatives, must use first longest match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Look-behind with limit
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" look-behind match in front of a zero-width item
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" complicated look-behind match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \@>
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" TODO: BT engine does not restore submatch after failure
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" "\_" prepended negated collection matches EOL
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Requiring lots of states.
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Skip adding state twice
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""" Test \%V atom
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""""" multi-line tests """"""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" line breaks
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25lOK 0 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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', '']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a line break and ^ and $
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the multi-line tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='multi-line tests'
[?25l
multi-line tests[?12l[?25h[?25l
:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let before = t[2]

[?25l:  [?12l[?25h:  let after = t[3]

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    new

[?25l:    [?12l[?25h:    call setline(1, before)

[?25l:    [?12l[?25h:    exe '%s/' . pat . '/XX/'

[?25l:    [?12l[?25h:    let result = getline(1, '$')

[?25l:    [?12l[?25h:    q!

[?25l:    [?12l[?25h:    if result != after

[?25l:      [?12l[?25h:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?12l[?25h[?25l:[?12l[?25h" matchstr() with \ze in between.
[?25l[?12l[?25h[?25l:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25h.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l5">Ta 5</Title>
<T="7">Ac 7</Title>
[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h.+1,.+2yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
<T="5">Ta 5</Title>
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a look beind crossing a line boundary
[?25l[?12l[?25h[?25l/[?12l[?25h^Behind:
[?25lsearch 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[?12l[?25h[?25l/[?12l[?25h\(<\_[xy]\+\)\@3<=start
[?25l[?12l[?25h[?25l:[?12l[?25h.yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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>
[?12l[?25h[?25l
[?12l[?25h[?25l
xxstart3
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching Visual area
[?25l[?12l[?25h[?25l/[?12l[?25h^Visual:
[?25lsearch 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[?12l[?25h
the[?25l[?12l[?25h[?25lxe the the[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Ve/E/g
[?25l3 substitutions on 1 linexE thE thE
[?12l[?25h
[?25landaxand andaxand 
[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Va/A/g
[?25l6 substitutions on 1 lineAndAxAnd AndAxAnd[?12l[?25h
ooo[?25l[?12l[?25h[?25lxofor foro[?12l[?25h[?25lx
oooxofor foro[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Vo/O/g
[?25l8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?12l[?25h[?25l:[?12l[?25h/^Visual/+1,/^Visual/+4yank
[?25lsearch hit BOTTOM, continuing at TOP
4 lines yanked[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
4 more lines
thexE thE thExethe4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching marks
[?25l[?12l[?25h[?25l/[?12l[?25h^Marks:
[?25lsearch 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[?12l[?25h
asdf[?25l:[?12l[?25h.-4,.+6s/.\%>'s.*\%<'e../here/
[?25lhereasdf[?12l[?25h
asdf
dfsa
dfsadf[?25l:[?12l[?25h.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l
asdfagainasdfOK 0 - bc*[?12l[?25h[?25l:[?12l[?25h/^Marks:/+1,/^Marks:/+3yank
[?25lsearch hit BOTTOM, continuing at TOP
3 lines yanked[?12l[?25h[?25lOK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check patterns matching cursor position.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! Postest()
[?25l
:  [?12l[?25h new

[?25l:  [?12l[?25h 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:  [?12l[?25h call setpos('.', [0, 1, 0, 0])

[?25l:  [?12l[?25h s/\%>3c.//g

[?25l:  [?12l[?25h call setpos('.', [0, 2, 4, 0])

[?25l:  [?12l[?25h s/\%#.*$//g

[?25l:  [?12l[?25h call setpos('.', [0, 3, 0, 0])

[?25l:  [?12l[?25h s/\%<3c./_/g

[?25l:  [?12l[?25h %s/\%4l\%>5c./_/g

[?25l:  [?12l[?25h %s/\%6l\%>25v./_/g

[?25l:  [?12l[?25h %s/\%>6l\%3c./!/g

[?25l:  [?12l[?25h %s/\%>7l\%12c./?/g

[?25l:  [?12l[?25h %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l:  [?12l[?25h $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l:  [?12l[?25h 1,$yank

[?25l:  [?12l[?25h quit!

[?25l:  [?12l[?25hendfunc
[?25lOK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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[?12l[?25h[?25l255\
OK 0 - 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~                                                                               [?12l[?25h[?25l
-0-[?12l[?25h[?25l
:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25loooxOfOr 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 xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?12l[?25h[?25l
-1-[?12l[?25h[?25l
:[?12l[?25hset re=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-2-[?12l[?25h[?25l:[?12l[?25hset re=2
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l-2-
ffo
bob~                                                                               [?12l[?25h[?25l:[?12l[?25h" start and end of buffer
[?25l[?12l[?25h[?25l/[?12l[?25h\%^
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%^..
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25lt END[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:" 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'])[?12l[?25h[?25l/[?12l[?25h..\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l[?12l[?25h[?25lEN[?12l[?25h[?25l[?12l[?25h[?25lE[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check for detecting error
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=2
[?25l[?12l[?25h[?25l:[?12l[?25hfor pat in [' \ze*', ' \zs*']
[?25l
:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    let l = matchlist('x x', pat)

[?25l:    [?12l[?25h:    $put ='E888 NOT detected for ' . pat

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='E888 detected for ' . pat

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor
[?25lffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx xxxxxx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxxxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx   xxxxxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Write the results """""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("float")
[?25l
:  [?12l[?25h:  e! test.ok

[?25l:  [?12l[?25h:  wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%f', 123.456)
[?25l
123.456000[?12l[?25h[?25l
:[?12l[?25h$put =printf('%e', 123.456)
[?25l
1.234560e+02[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 123.456)
[?25l
123.456[?12l[?25h[?25l
:[?12l[?25h" check we don't crash on division by zero
[?25l[?12l[?25h[?25l:[?12l[?25hecho 1.0 / 0.0
[?25linf[?12l[?25h[?25l:[?12l[?25h$put ='+='
[?25l
+=[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 6.543
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
7.777[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 5
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
6.234[?12l[?25h[?25l
:[?12l[?25hlet a = 5
[?25l[?12l[?25h[?25l:[?12l[?25hlet a += 3.333
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(a)
[?25l
8.333[?12l[?25h[?25l
:[?12l[?25h$put ='=='
[?25l
==[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25h$put =v == 1.234
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =v == 1.2341
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='add-subtract'
[?25l
add-subtract[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 + 1.234)
[?25l
5.234[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 1.234 - 8)
[?25l
-6.766[?12l[?25h[?25l
:[?12l[?25h$put ='mult-div'
[?25l
mult-div[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 * 1.234)
[?25l
4.936[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4.0 / 1234)
[?25l
0.003241[?12l[?25h[?25l
:[?12l[?25h$put ='dict'
[?25l
dict[?12l[?25h[?25l
:[?12l[?25h$put =string({'x': 1.234, 'y': -2.0e20})
[?25l
{'x': 1.234, 'y': -2.0e20}[?12l[?25h[?25l
:[?12l[?25h$put ='list'
[?25l
list[?12l[?25h[?25l
:[?12l[?25h$put =string([-123.4, 2.0e-20])
[?25l
[-123.4, 2.0e-20][?12l[?25h[?25l
:[?12l[?25h$put ='abs'
[?25l
abs[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(1456))
[?25l
1456[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(-4))
[?25l
4[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs([1, 2, 3]))
[?25lE745: Using a List as a Number
-1[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(14.56))
[?25l
14.56[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(-54.32))
[?25l
54.32[?12l[?25h[?25l
:[?12l[?25h$put ='ceil'
[?25l
ceil[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(1.456))
[?25l
2.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-4.000))
[?25l
-4.0[?12l[?25h[?25l
:[?12l[?25h$put ='floor'
[?25l
floor[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(1.856))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(-5.456))
[?25l
-6.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(4.0))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='log10'
[?25l
log10[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(1000))
[?25l
3.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(0.01000))
[?25l
-2.0[?12l[?25h[?25l
:[?12l[?25h$put ='pow'
[?25l
pow[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(3, 3.0))
[?25l
27.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(2, 16))
[?25l
65536.0[?12l[?25h[?25l
:[?12l[?25h$put ='round'
[?25l
round[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(0.456))
[?25l
0.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(4.5))
[?25l
5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(-4.50))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put ='sqrt'
[?25l
sqrt[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', sqrt(100))
[?25l
10.0[?12l[?25h[?25l
:[?12l[?25hecho sqrt(-4.01)
[?25lnan[?12l[?25h[?25l:[?12l[?25h$put ='str2float'
[?25l
str2float[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', str2float('1e40'))
[?25l
1.0e40[?12l[?25h[?25l
:[?12l[?25h$put ='trunc'
[?25l
trunc[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(1.456))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(4.000))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='float2nr'
[?25l
float2nr[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(123.456)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(-123.456)
[?25l
-123[?12l[?25h[?25l
:[?12l[?25h$put ='AND'
[?25l
AND[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 127)
[?25l
127[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 16)
[?25l
16[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 128)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='OR'
[?25l
OR[?12l[?25h[?25l
:[?12l[?25h$put =or(16, 7)
[?25l
23[?12l[?25h[?25l
:[?12l[?25h$put =or(8, 7)
[?25l
15[?12l[?25h[?25l
:[?12l[?25h$put =or(0, 123)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put ='XOR'
[?25l
XOR[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 127)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 16)
[?25l
111[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 128)
[?25l
255[?12l[?25h[?25l
:[?12l[?25h$put ='invert'
[?25l
invert[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(127), 65535)
[?25l
65408[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(16), 65535)
[?25l
65519[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(128), 65535)
[?25l
65407[?12l[?25h[?25l
:[?12l[?25h$put =invert(1.0)
[?25lE805: Using a Float as a Number
0[?12l[?25h[?25l
:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^one
[?25l[?12l[?25hon[?25l[?12l[?25h[?25le
one two three
one two three
one two three
one two three[?12l[?25h[?25l
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?12l[?25h[?25lmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?12l[?25h[?25le
one
one
one
on[?12l[?25h[?25l1
on1
on1
on1
on1[?12l[?25h[?25l:[?12l[?25h'<,'>w! test.out
[?25l"test.out" [New File] 5 lines, 70 characters written[?12l[?25h[?25l/[?12l[?25h^abcdefgh
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?12l[?25h[?25la
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc            defghijklmnopqrstuvwxyz[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-5,$w >> test.out
[?25l"test.out"6 lines, 151 characters appended[?12l[?25h[?25l:[?12l[?25h$-4,$s/\s\+//g
[?25l7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
a
a
a[?12l[?25h[?25l
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghij[?12l[?25h
    ab[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                       defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                 defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-4,$w >> test.out
[?25l"test.out"5 lines, 147 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest that groups and patterns are tested correctly when calling exists() for[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet results=[]
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter *.test let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile.test
[?25l"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter <buffer> let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile2.test
[?25l"testfile2.test" [New File][?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l:[?12l[?25hcall append(0, results)
[?25l##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[?12l[?25h[?25l:[?12l[?25h$d
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 190 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset noai tw=2 fo=t
[?25l[?12l[?25h[?25la
b[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l
a  b[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tw
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
[?12l[?25h[?25l
a[?12l[?25ha [?25l
b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a ^A[?12l[?25h[?25l
:[?12l[?25hset tw=3 fo=t
[?25l[?12l[?25h[?25l
^A[?12l[?25h[?25la
^A
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a b[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tcq1 comments=:#
[?25l[?12l[?25h[?25l
#a b[?12l[?25h[?25la b
#a b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  1 a[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=tcn comments=:#
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
# 1 a[?12l[?25h[?25l
#   b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+3
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+3
[?25l{

  x a
  b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=t2a si
[?25l[?12l[?25h[?25l    b[?12l[?25h[?25l b_[?12l[?25h[?25l
c[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# 1 a b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=qn comments=:#
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# x[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=q2 comments=:#
[?25l[?12l[?25h[?25l# x a
[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+2
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+2
[?25l{
   1aa
   2bb[?12l[?25h[?25l
:[?12l[?25hset tw& fo=a
[?25l[?12l[?25h[?25l1aa ^^2bb }STARTTEST[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h[?25l
/mno pqr/[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25hmno pqr/
[?25l/* abc def ghi jkl
 *    mno pqr stu[?12l[?25h[?25l
:[?12l[?25hsetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?12l[?25h[?25l
*    vwx yz[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^#/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^#/
[?25l
# 1 xxxxx[?12l[?25h[?25l
:[?12l[?25hsetl tw=12 fo=tqnc comments=:#
[?25l[?12l[?25h[?25l
#   foobar[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 77 lines, 281 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for multi-byte text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=t
[?25l[?12l[?25h
[?25l
XYZ[?12l[?25h[?25l[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
Z
abc [?12l[?25h[?25l
X[?12l[?25h[?25lY[?12l[?25h[?25lZ[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
X[?12l[?25h[?25l
:[?12l[?25hset tw=1 fo=tm
[?25l[?12l[?25h[?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l
X a
[?12l[?25h[?25l
a[?12l[?25h[?25l
XY
[?12l[?25h[?25l
Y
[?12l[?25h[?25l
X Y
[?12l[?25h[?25l
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h
[?25la[?12l[?25h
[?25la[?12l[?25h
[?25lY
[?12l[?25h
[?25lY 
[?12l[?25h[?25l
aX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abcX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX c
[?12l[?25h[?25lX
c[?12l[?25h[?25l
abXY
[?12l[?25h[?25lX
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25lY
a[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
abc[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
c
ab[?12l[?25h[?25l
X[?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
  a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset noai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=cqm comments=n:X
[?25l[?12l[?25h

[?25lXY[?12l[?25h

[?25lXZ
[?12l[?25h

[?25l
X Z
[?12l[?25h[?25l
XX
[?12l[?25h[?25l
XXa
[?12l[?25h[?25l
XXY
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25l
Xa
[?12l[?25h[?25lXa[?12l[?25h[?25lXY
[?12l[?25h[?25lX[?12l[?25h[?25l
Y
[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25lXZ
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25lX [?12l[?25h[?25lY[?12l[?25h[?25lX Z
[?12l[?25h[?25lX[?12l[?25h[?25l
X
[?12l[?25h[?25lX[?12l[?25h[?25l
Xa
[?12l[?25h[?25lX[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
‘two three ’four[?12l[?25h[?25l
:[?12l[?25hset mps+=^‘:^’
[?25l[?12l[?25h[?25l four[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
/^ra test
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTjVjra
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^ra test
[?25l
ra test[?12l[?25h[?25l
abba
[?12l[?25h[?25lbba 
[?12l[?25h[?25l
a
aab 
[?12l[?25h[?25laaaaaaa [?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set whichwrap+=h
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset whichwrap+=h
[?25l[?12l[?25h[?25l/[?12l[?25h^x
[?25láx[?12l[?25h[?25lx[?12l[?25h
[?25l
:[?12l[?25hset whichwrap-=h
[?25l[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:let a = '.é.' " one char of two bytes
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let b = '.é.' " normal e with composing char
/^byteidx
:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteiddx(a, 4)])
:put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])
/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)])
:let b = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet a = '.é.' " one char of two bytes
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = '.eé.' " normal e with composing char
[?25l[?12l[?25h[?25l/[?12l[?25h^byteidx
[?25l
byteidx[?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25lENDTESTá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5[?12l[?25h[?25l
/[?12l[?25h^byteidxcomp
[?25l
byteidxcomp[?12l[?25h[?25l
:[?12l[?25hput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25lá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5
byteidxcomp[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hlet b = '.eé.'
[?25l[?12l[?25h[?25l:[?12l[?25hput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25lSTARTTEST
: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(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][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^substitute
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?12l[?25h[?25lsubstitute[?12l[?25h[?25l

:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^substitute
[?25l[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25la1a2a3a[?12l[?25h[?25l

/^STARTTEST

STARTTEST[?12l[?25h[?25l:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?12l[?25h[?25l

:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l

/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l104 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[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 166 lines, 730 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 6 lines, 94 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for find completion.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xfind directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xfind')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE345: Can't find file "" in path[?12l[?25h[?25l:[?12l[?25hexec "w! " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out"
<ild/vim-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25hset path=./**
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25h" We shouldn't find any file at this point, test.out must be empty.
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('in')
[?25l[?12l[?25h[?25l:[?12l[?25hcd in
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hcall mkdir('path')
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdirtest73.in                                                   [?12l[?25h[?25l:[?12l[?25he Xfind/file.txt
[?25l"Xfind/file.txt" [New File]Xfind/file.txt[?12l[?25h[?25l-- INSERT --Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/file.txt" [New] 1L, 11C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/file.txt
[?25l"Xfind/in/file.txt" [New File]in/file.txt[?12l[?25h[?25l-- INSERT --Jimmy Hoffa[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/file.txt" [New] 1L, 12C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/stuff.txt
[?25l"Xfind/in/stuff.txt" [New File]stuff.txt[?12l[?25h[?25l-- INSERT --Another Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/stuff.txt" [New] 1L, 19C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/path/file.txt
[?25l"Xfind/in/path/file.txt" [New File]path/file.txt[?12l[?25h[?25l-- INSERT --E.T.[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/path/file.txt" [New] 1L, 5C written    [?12l[?25h[?25l:[?12l[?25hset path=Xfind/**
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Same steps again, using relative and fullpath items that point to the same
[?25l[?12l[?25h[?25l:[?12l[?25h" recursive location.
[?25l[?12l[?25h[?25l:[?12l[?25h" This is to test that there are no duplicates in the completion list.
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path+=Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25h" Test find completion for directory of current buffer, which at this point
[?25l[?12l[?25h[?25l:[?12l[?25h" is Xfind/in/file.txt.
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind st...[?25luff.txt[?12l[?25h
[?25l"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25h" Test find completion for empty path item ",," which is the current directory
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfindin/stuff.txtf       /<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind f...[?25lile.txt[?12l[?25h...[?25l[?12l[?25h
[?25l"file.txt" 1L, 11CHoly Grailfile.txt.     [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25h" Test shortening of
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is above foo/ they should be shortened to (in order
[?25l[?12l[?25h[?25l:[?12l[?25h" of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/file.txt[?12l[?25h[?25l:[?12l[?25hcall mkdir('x')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('y')
[?25l[?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/x[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfindfile.txti                                                          [?12l[?25h[?25l:[?12l[?25h" We should now be in the Xfind directory
[?25l[?12l[?25h[?25l:[?12l[?25he foo/x/bar/voyager.txt
[?25l"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?12l[?25h[?25l-- INSERT --Voyager 1[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/x/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25he foo/y/bar/voyager.txt
[?25l"foo/y/bar/voyager.txt" [New File]y/[?12l[?25h[?25l-- INSERT --Voyager 2[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/y/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h
[?25l"foo/x/bar/voyager.txt" 1L, 10C1x/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h...[?25ly[?12l[?25h
[?25l"foo/y/bar/voyager.txt" 1L, 10C2y/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?12l[?25h[?25l:[?12l[?25h" order of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    ./voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/fooy/bar/voyager.txt.     [?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/ybar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25lx/bar/voyager.txt[?12l[?25h
[?25l<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/Xfind/foo/x/bar/voyager.txt"
<m-tlTJJ2/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[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check the opposite too:
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foox/bar/voyager.txt/                                                              [?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/xbar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/x/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25ly/bar/voyager.txt[?12l[?25h
[?25l<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/Xfind/foo/y/bar/voyager.txt"
<m-tlTJJ2/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[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/in"
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./file.txt[?5h[?5l[?12l[?25h
[?25l"file.txt" 1L, 12CJimmy Hoffafile.txti                                                                       [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Test for relative to current buffer 'path' item
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/"
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfindin/file.txt[?12l[?25h[?25l:[?12l[?25hset path=./path
[?25l[?12l[?25h[?25l:[?12l[?25h" Open the file where Jimmy Hoffa is found
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12C[?12l[?25h[?25l:[?12l[?25h" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25ltxt[?12l[?25h
[?25l"in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that completion works when path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h" Open Jimmy Hoffa file
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?12l[?25h[?25l:[?12l[?25hfind stu...[?25lff.txt[?12l[?25h
[?25l"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25hq
[?25l: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[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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^[:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for maparg().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25h" Test maparg() with a string result
[?25l[?12l[?25h[?25l:[?12l[?25hmap foo<C-V> is<F4>foo
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('foo<C-V>'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hmap <buffer> <nowait> foo bar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc x<char-114>x
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc y<S-char-114>y
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25leof
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[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Outside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x1040> a
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u1040\<Esc>"
[?25la[?12l[?25h[?25l:[?12l[?25h" Inside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x103f> b
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u103f\<Esc>"
[?25lb[?12l[?25h[?25l:[?12l[?25h" Inside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf03f> c
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf03f\<Esc>"
[?25lc[?12l[?25h[?25l:[?12l[?25h" Outside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf040> d
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf040\<Esc>"
[?25ld[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^eof/+1,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25lcksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?12l[?25h[?25l
:[?12l[?25hset fileformat=unix undolevels=-1
[?25l[?12l[?25h[?25lInserts 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.[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l12345678910111213141516171819202122[?12l[?25h[?25l
23[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2000000 lines, 14888896 characters written[?12l[?25h[?25l:[?12l[?25hr !cksum Xtest
[?25l[?12l[?25h[?25l1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?12l[?25h[?25l:[?12l[?25hs/\s/ /g
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat&
[?25l[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 26 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25lA
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l&[?12l[?25h
[?25l:[?12l[?25hs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set nomagic
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25l&&
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\='\'/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\='\\'/
[?25l\\b
[?12l[?25h
[?25l:[?12l[?25hs/C/\='^^M'/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\='\^^M'/
[?25l\d[?12l[?25h
[?25l


:[?12l[?25hs/E/\='\\^^M'/
[?25l\\
efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\='\r'/
[?25l\rf
[?12l[?25h[?25l
gGg[?12l[?25h[?25l
:[?12l[?25hs/G/\='^^@'/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\='\^^@'/
[?25l
\h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\='\\^^@'/
[?25l
\\
i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\='\n'/
[?25l\nj
[?12l[?25h[?25l
kKk[?12l[?25h[?25l
:[?12l[?25hs/K/\="\r"/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\="\n"/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25ld[?12l[?25h
[?25l


:[?12l[?25hs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l\efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l
f[?12l[?25h[?25l
gGg
[?12l[?25h[?25l
:[?12l[?25hs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l
h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l
\i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l
j[?12l[?25h[?25l
kKk
[?12l[?25h[?25l
:[?12l[?25hs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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), subbmatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), subbmatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l
TEST_5:[?12l[?25h[?25l
A123456789
[?12l[?25h[?25l
:[?12l[?25hs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25li\
i987654321[?12l[?25h[?25l
B123456789
[?12l[?25h[?25l
:[?12l[?25hs/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)])/
[?25li
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25lTEST_6:
A
B[?12l[?25h[?25l


:[?12l[?25hset cpo+=/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/a/
[?25la[?12l[?25h
[?25l:[?12l[?25hs/B/%/
[?25la[?12l[?25h[?25l:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25lC
D[?12l[?25h[?25l


:[?12l[?25hs/C/c/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/%/
[?25l%[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST_7/
[?25l
TEST_7:[?12l[?25h[?25l
A^MA
[?12l[?25h[?25l
:[?12l[?25hs/A./\=submatch(0)/
[?25l
A[?12l[?25h[?25l
B^@B
[?12l[?25h[?25l
:[?12l[?25hs/B./\=submatch(0)/
[?25l
B[?12l[?25h[?25l
C^@C
[?12l[?25h[?25l
:[?12l[?25hs/C./\=strtrans(string(submatch(0, 1)))/
[?25l['C^@']C
[?12l[?25h[?25l
D^@[?12l[?25h[?25l
:[?12l[?25hs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l['D^@', 'D']
[?12l[?25h[?25l
E^@[?12l[?25h[?25l
:[?12l[?25hs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l['E^@', '^@', '^@', '^@', '^@E']
[?12l[?25h[?25l/[?12l[?25h^Q$
[?25l
Q[?12l[?25h[?25l
:[?12l[?25hs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25lE486: Pattern not found: Q[^\n]Q[?12l[?25h[?25l:[?12l[?25h" Avoid :s error breaks dotest map on Windows.
[?25l[?12l[?25h[?25l/^STARTTEST
Q

STARTTEST[?12l[?25h[?25l
:function! TitleString()
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hfunction! TitleString()
[?25l
:  [?12l[?25h  let check = 'foo' =~ 'bar'

[?25l:  [?12l[?25h  return ""

[?25l:  [?12l[?25hendfunction
[?25lTEST_7:
A[?12l[?25h[?25l
:[?12l[?25hset titlestring=%{TitleString()}
[?25l[?12l[?25h[?25l:[?12l[?25h/^test_one/s/.*/\="foo\nbar"/
[?25lfoo
bar[?12l[?25h[?25l
:[?12l[?25h/^test_two/s/.*/\="foo\nbar"/c
[?25l
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l
foobar
[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 134 lines, 574 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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', '')[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_1:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('xXx', 'X', \"\r\", '')
[?25l
x^Mx[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l
YyyY[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l
zZZz[?12l[?25h[?25l
/[?12l[?25h^TEST_2
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_2:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25lKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('tTt', 'T', \"\r\", '')
[?25l
t^Mt[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l
XxxX[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l
yYYy[?12l[?25h[?25l
/[?12l[?25h^TEST_3
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_3:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l
b\\b[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l
c^Mc[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l
d\^Md[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l
e\\^Me[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l
f\rf[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l
j\nj[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l
k^Mk[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25ll
l[?12l[?25h[?25l
/[?12l[?25h^TEST_4
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_4:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25lu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25lu
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25lv^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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25lw\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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25lXxxX
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25lyYYyTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25lb\\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[?12l[?25h[?25l
/[?12l[?25h^TEST_5
[?25lsearch 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) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_5:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$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)', '')
[?25lf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?12l[?25h[?25l
:[?12l[?25h$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)])', '')
[?25lj\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']][?12l[?25h[?25l
/[?12l[?25h^TEST_6
[?25lsearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25lTEST_7:[?12l[?25h[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_6:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hset cpo+=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', 'a', '')
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '%', '')
[?25l
%[?12l[?25h[?25l
:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('C', 'C', 'c', '')
[?25l
c[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', '%', '')
[?25l
%[?12l[?25h[?25l
/[?12l[?25h^TEST_7
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_7:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l
A^MA[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25lB
B[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l['B
']B[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l
-abab[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\ze', 'c', 'g')
[?25l
c-cbcbc[?12l[?25h[?25l
/[?12l[?25h^TEST_8
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTyy/^TEST_9:
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_8:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =',,X'
[?25l
,,X[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25lN,,NX
[?12l[?25h[?25l:[?12l[?25h$put =',,Y'
[?25l
,,Y[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,NY
[?12l[?25h[?25l
:[?12l[?25h$put =',,Z'
[?25l
,,Z[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l,NZ
[?12l[?25h[?25l
/[?12l[?25h^TEST_9:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_9:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put ='xxx'
[?25l
xxx[?12l[?25h[?25l
:[?12l[?25hs/x/X/gc
[?25lx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lx[?12l[?25h[?25l
/[?12l[?25h^TEST_10:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_10:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l
1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l
a1a2a3[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l
aa2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l
1aaa[?12l[?25h[?25l
/[?12l[?25h^TEST_11
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25l"test.out" [New File] 131 lines, 617 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("multi_byte")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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%.22X', n)) | endfor[?12l[?25h[?25l


:[?12l[?25hset enc=utf8
[?25l: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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h[?25lTests 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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Ch(a, op, b, expected)
[?25l
:  [?12l[?25h:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l:    [?12l[?25h:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    let b:passed += 1

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Chk(a, b, result)
[?25l
:  [?12l[?25h:  if a:result == 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  elseif a:result > 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 1)

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Check(a, b, result)
[?25l
:  [?12l[?25h:  call Chk(a:a, a:b, a:result)

[?25l:  [?12l[?25h:  call Chk(a:b, a:a, -a:result)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! LT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, -1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! EQ(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 0)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet b:passed=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('', '')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('', 'a')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('abc', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc', 'abC')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('AB', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'aBc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa', 'k')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc\x80', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc\x80', 'AbC\x81')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xc3XYZ', '\xc3xyz')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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~                                                                               [?12l[?25h[?25l:[?12l[?25hcall LT('\xc3', '\xc3\x83')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(0, printf('%d checks passed', b:passed))
[?25l3732 checks passed[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test that g~ap changes one paragraph only.
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?12l[?25h[?25labcddefg[+][?12l[?25h[?25lABCD
[?12l[?25h[?25l:[?12l[?25hlet lns = getline(1,3)
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), lns)
[?25lABCDdefg[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 5 lines, 31 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for curswant not changing when setting an option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start target options$/+1,/^end target options$/-1 yank
[?25l3 lines yanked[?12l[?25h[?25l:[?12l[?25hlet target_option_names = split(@0)
[?25l[?12l[?25h[?25l:[?12l[?25hfunction TestCurswant(option_name)
[?25l
:  [?12l[?25h:  normal! ggf8j

[?25l:  [?12l[?25h:  let curswant_before = winsaveview().curswant

[?25l:  [?12l[?25h:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l:  [?12l[?25h:  let curswant_after = winsaveview().curswant

[?25l:  [?12l[?25h:  return [a:option_name, curswant_before, curswant_after]

[?25l:  [?12l[?25h:endfunction
[?25l:  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[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =['1234567890', '12345']
[?25l123456789012345[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hlet result = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor option_name in target_option_names
[?25l
:  [?12l[?25h:  call add(result, TestCurswant(option_name))

[?25l:  [?12l[?25h:endfor
[?25l1234567890
12345[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =map(copy(result), 'join(v:val, '' '')')
[?25l3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hwrite test.out
[?25l"test.out" [New File] 3 lines, 43 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hqall!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lvim: set ft=vim[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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|[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('conceal')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:normal W
GGk
:normal W[?12l[?25h[?25l:[?12l[?25h" Conceal settings.
[?25l[?12l[?25h[?25l:[?12l[?25hset conceallevel=2
[?25l[?12l[?25h[?25l:[?12l[?25hset concealcursor=nc
[?25l[?12l[?25h[?25l:[?12l[?25hsyntax match test /|/ conceal
[?25lconcealed  concealed  


a       b       c       d[?12l[?25h[?25l:[?12l[?25h" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?12l[?25h[?25l:[?12l[?25h" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?12l[?25h[?25l:[?12l[?25h" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?12l[?25h[?25l:[?12l[?25hlet positions = []
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?12l[?25h[?25l:[?12l[?25h" Start test.
[?25l[?12l[?25h[?25l/[?12l[?25h^start:
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ztj
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:let positions += ['2:1']
[?12l[?25h[?25l:[?12l[?25h" We should end up in the same column when running these commands on the two
[?25l[?12l[?25h[?25l:[?12l[?25h" lines.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['2:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['2:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['3:1']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['3:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['3:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['5:8']
[?12l[?25h[?25l:[?12l[?25h" Same for next test block.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['5:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['5:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['6:8']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['6:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['6:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['8:1']
[?12l[?25h[?25l:[?12l[?25h" And check W with multiple tabs and conceals in a line.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['8:27']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset lbr
[?25l[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset list listchars=tab:>-
[?25l>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?12l[?25h[?25l:[?12l[?25hnormal 0
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25h" Display result.
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', 'end:')
[?25lend:[?12l[?25h[?25l:[?12l[?25hcall append('$', positions)
[?25l2:12:172:203:13:173:205:85:255:286:86:256:288:1[?12l[?25h[?25l:[?12l[?25h/^end/,$wq! test.out
[?25l"test.out" [New File] 29 lines, 135 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78522b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afeee48bb'
: let res='ok'
:else[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: 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") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb00b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('cryptv') || !exists('*sha256')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc3[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for empty string: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25l
test for empty string: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 1 char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for 1 char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 3 chars: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'
:else[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25ltest for 3 chars: ok
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains meta char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25ltest for contains meta char: ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains non-ascii char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for contains non-ascii char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Use strings to test for memory leaks.
[?25l[?12l[?25h[?25l:[?12l[?25h" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:testvar='abcd'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h" Test for getbufvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:var_num = '1234'
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_num = '5678'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num'))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25hunlet b:var_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, '', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25hunlet def_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, '&autoindent'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '&autoindent', 1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Open new window with forced option values
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hlet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25l:$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[?12l[?25h[?25l:[?12l[?25h$put =otherff
[?25l
dos[?12l[?25h[?25l
:[?12l[?25h$put =string(otherbin)
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =otherfenc
[?25l
iso-8859-2[?12l[?25h[?25l
:[?12l[?25hunlet otherff otherbin otherfenc
[?25l[?12l[?25h[?25l:[?12l[?25h" test for getwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet w:var_str = "Dance"
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_str = "Chance"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str'))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25hunlet w:var_str
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, '', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu',  1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25hunlet def_str
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet t:var_list = [1, 2, 3]
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:other = 777
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_list = [4, 5, 6, 7]
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list'))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, ''))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '', def_list))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25htablast
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hunlet t:var_list
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, '', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25hunlet def_list
[?25l[?12l[?25h[?25l:[?12l[?25htabonly
[?25ldos[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabprev
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hsplit
[?25l2N o[No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hsplit
[?25l + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                                                        [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25hvert split
[?25l4  X||||||~~~~~[No Name]                              [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                 [No Name]                               X[?12l[?25h[?25l:[?12l[?25hlet w:var_dict = {'dict': 'tabwin'}
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_dict = {'dict2': 'newval'}
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd b
[?25l[No Name]                               [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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]
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25htabnext
[?25l + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                              [No Name]                                                                         X[?12l[?25h[?25l:[?12l[?25hunlet w:var_dict
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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'}}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25hunlet def_dict
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l
1[?12l[?25h[?25l
:[?12l[?25htabonly
[?25l0[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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()[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Visual mode and operators[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf-8 nocp viminfo+=nviminfo
[?25lkv3lyjv3lpgvcxxx^[
:$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[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" User functions
[?25l[?12l[?25h[?25l:[?12l[?25hfunction MoveToCap()
[?25l
:  [?12l[?25h:  call search('\u', 'W')

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'[?12l[?25h[?25l:[?12l[?25hfunction SelectInCaps()
[?25l
:  [?12l[?25h:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l:  [?12l[?25h:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l:  [?12l[?25h:  call setpos("'<", [0, line1, col1, 0])

[?25l:  [?12l[?25h:  call setpos("'>", [0, line2, col2, 0])

[?25l:  [?12l[?25h:  normal! gv

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual modes followed by operator
[?25l[?12l[?25h[?25l/[?12l[?25h^apple
[?25l[?12l[?25ha[?25l-- VISUAL --[?12l[?25h[?25lp[?12l[?25h[?25lle banana cherry[?12l[?25h[?25l banana cherry[?12l[?25h [?25lbanan-- VISUAL --[?12l[?25h[?25l
a  cherry[?12l[?25h[?25ly[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^line 1
[?25l[?12l[?25h[?25lline 1 line 1 -- VISUAL LINE --[?12l[?25h[?25lINSERT --Nnewline[?12l[?25h[?25l-- INSERT --newline[?12l[?25h[?25l
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?12l[?25h[?25lline 5 line 5line 6 line 6xxxxxxxxxxxxx[?12l[?25h[?25lxxxxxxxxxxxxx
xxxxxxxxxxxxx[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^xxxx
[?25l[?12l[?25h[?25l


-- VISUAL BLOCK --[?12l[?25h[?25lx
[?12l[?25h[?25lx
x[?12l[?25h[?25lINSERT --O  
  [?12l[?25h [?25l


-- INSERT --  
    [?12l[?25h [?25l
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?12l[?25h[?25l
-- INSERT --O----
    ----
xxxx----
xxxx----[?12l[?25h-[?25l-- INSERT ------------------[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap W /\u/s-1<CR>
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Kiwi
[?25lKiwiRaspberryDateWatermelonPeach[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25l/\u/s-1
Kiw[?12l[?25h[?25l
-- INSERT --NoRaspberryDateWatermelonPeach[?12l[?25ho[?25l
-- INSERT --NoberryDateWatermelonPeach[?12l[?25hoberry[?25lDateWat
-- VISUAL --[?12l[?25h[?25lrmelonPeach[?12l[?25h[?25lach[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Jambu
[?25l
JambuRambutanBananaTangerineMango[?12l[?25hJa[?25l
-- VISUAL --[?12l[?25h[?25l:'<,'>call SelectInCaps()
Jamb[?12l[?25h[?25l
-- INSERT ---RambutanBananaTangerineMango[?12l[?25h-[?25l
-- INSERT ---tanBananaTangerineMango[?12l[?25h-[?25ltanBanana
-- VISUAL --[?12l[?25h[?25l
--angerineMango[?12l[?25ha[?25lgo[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Operator-pending mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25honoremap W /\u/<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Pineapple
[?25lPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h[?25l
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---GrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---Z[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Juniper
[?25l
JuniperDurianZ[?12l[?25h[?25l
:call MoveToCap()
Whavcre
[?12l[?25h[?25l:call MoveToCap()
Qhevna[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Lemon
[?25l
LemonNectarineZ[?12l[?25h[?25l
:call SelectInCaps()
[?12l[?25h[?25lLemonLemonNectarineZ
Lemo[?12l[?25hn[?25l:call SelectInCaps()
NewNectarineZ[?12l[?25hwNecta[?25l
:call SelectInCaps()
wZ[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?12l[?25h[?25l/[?12l[?25h^zzzz
[?25lzzzz[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25lE21: Cannot make changes, 'modifiable' is off[?12l[?25h[?25l:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: replace last line'
[?25l
characterwise visual mode: replace last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25hlet @" = 'x'
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h$put ='v:errmsg='.v:errmsg
[?25l
v:errmsg=[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle line'
[?25l
characterwise visual mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle two line'
[?25l
characterwise visual mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise visual mode: delete last line'
[?25l
characterwise visual mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete last two line'
[?25l
characterwise visual mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Select mode maps
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>End> <End>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Down> <Down>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Del> <Del>
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle line'
[?25l
characterwise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle two line'
[?25l
characterwise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise select mode: delete last line'
[?25l
characterwise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- SELECT --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete last two line'
[?25l
characterwise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- SELECT --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle line'
[?25l
linewise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25lbc
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle two line'
[?25l
linewise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25la
b 
[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='linewise select mode: delete last line'
[?25l
linewise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lc 
-- SELECT LINE --[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete last two line'
[?25l
linewise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lb 

-- SELECT LINE --[?12l[?25h[?25lb
c 
[?12l[?25h[?25l~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='v_p: replace last character with line register at middle line'
[?25l
v_p: replace last character with line register at middle line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25laaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25lccc
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25llinewise 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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25lb[?12l[?25h[?25laaa[?12l[?25h[?25l
ccc
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line'
[?25l
v_p: replace last character with line register at last line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25laaa
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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode after operation'
[?25l
gv in exclusive select mode after operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25h$put ='äà '
[?25l
äÃ[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h
[?25l
-- VISUAL --[?12l[?25h[?25läÃ[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode without operation'
[?25l
gv in exclusive select mode without operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h/^start:/+2,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns with multi-byte support, using utf-8.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:
~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l: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:
~                                                                               [?12l[?25h[?25l


:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?12l[?25h[?25l:[?12l[?25h"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l:endif[?12l[?25h[?25l


:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" check that 'ambiwidth' does not change the meaning of \p
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=1 ambiwidth=single
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=1 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi double: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=single
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi double: 0[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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(toopLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We don't want the status line to cause problems:
[?25l[?12l[?25h[?25l:[?12l[?25hset laststatus=0
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:totalLines = &lines * 20
[?25l[?12l[?25h[?25l:[?12l[?25hlet middle = g:totalLines / 2
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd n
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd o
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'LINE ' . i)

[?25l:  [?12l[?25h:endfor
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25haboveleft vert new
[?25l        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'line ' . i)

[?25l:  [?12l[?25h:endfor
[?25lline 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25l2293023123223323423523623723823924024124224324424524624748495051[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lline 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[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25h" Execute the following two command at once to reproduce the problem.
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb | wincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineLeft = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineRight = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25lLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?12l[?25h[?25l:[?12l[?25h%del _
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25lDifference between the top lines (left - right): 0[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 51 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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(toopLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l:" 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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
/[?12l[?25h[\u4f7f\u5929]\+
[?25l
/[?12l[?25h\%U12345678
[?25l
/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for visual mode not being reset causing E315 error.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"ex-way will require the colon operator which resets the visual mode thuus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25henew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:msg="Everything's fine."
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! TriggerTheProblem()
[?25l
:  [?12l[?25h:^I" At this point there is no visual selection because :call reset it.

[?25l:  [?12l[?25h:^I" Let's restore the selection:

[?25l:  [?12l[?25h:^Inormal gv

[?25l:  [?12l[?25h:^I'<,'>del _

[?25l:  [?12l[?25h:^Itry

[?25l:    [?12l[?25h:^I^Iexe "normal \<Esc>"

[?25l:    [?12l[?25h:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l:    [?12l[?25h:^I^Iechom 'Snap! E315 error!'

[?25l:    [?12l[?25h:^I^Ilet g:msg='Snap! E315 error!'

[?25l:    [?12l[?25h:^Iendtry

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25henew
[?25l[?12l[?25h[?25l:[?12l[?25hsetl buftype=nofile
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'Delete this line.')
[?25lDelete this line.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?12l[?25h[?25l:[?12l[?25h"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?12l[?25h[?25l:[?12l[?25h"       preventing the problem:
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h
[?25lDelete this line. 
[?12l[?25h[?25l:'<,'>[?12l[?25hcall TriggerTheProblem()
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h%del _
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), g:msg)
[?25lEverything's fine.[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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 thuus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :let.  vim: set ft=vim ts=8 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset runtimepath+=./sautest
[?25l[?12l[?25h[?25l:[?12l[?25h" Test to not autoload when assigning.  It causes internal error.
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let Test104#numvar = function('tr')

[?25l:  [?12l[?25h:  $put ='OK: ' . string(Test104#numvar)

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  $put ='FAIL: ' . v:exception

[?25l:  [?12l[?25h:endtry
[?25l: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')[?12l[?25h[?25l
:[?12l[?25hlet a = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = 2
[?25l[?12l[?25h[?25l:[?12l[?25hfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    redir => messages

[?25l:    [?12l[?25h:    execute 'let' letargs

[?25la#1

b#2

:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:    $put ='OK:'

[?25l:    [?12l[?25h:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='FAIL: ' . v:exception

[?25l:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor

[?25lb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for adjusting window and contents     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?12l[?25h[?25l:[?12l[?25hcall setline(1, range(1,256))
[?25l1
234567891011[+][?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! GetScreenStr(row)
[?25l
:  [?12l[?25h:   let str = ""

[?25l:  [?12l[?25h:   for c in range(1,3)

[?25l:    [?12l[?25h:       let str .= nr2char(screenchar(a:row, c))

[?25l:    [?12l[?25h:   endfor

[?25l:  [?12l[?25h:   return str

[?25l:  [?12l[?25h:endfunc
[?25l1
2
3
4
5
6[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?12l[?25h[?25l:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l50
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l59
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25h:wincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l::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[?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for backtrace debug commands.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Foo()
[?25l
:  [?12l[?25h:   let var1 = 1

[?25l:  [?12l[?25h:   let var2 = Bar(var1) + 9

[?25l:  [?12l[?25h:   return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bar(var)
[?25l
:  [?12l[?25h:    let var1 = 2 + a:var

[?25l:  [?12l[?25h:    let var2 = Bazz(var1) + 4

[?25l:  [?12l[?25h:    return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bazz(var)
[?25l
:  [?12l[?25h:    let var1 = 3 + a:var

[?25l:  [?12l[?25h:    let var3 = "another var"

[?25l:  [?12l[?25h:    return var1

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?12l[?25h[?25l:[?12l[?25hdebuggreedy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => out
[?25l[?12l[?25h[?25l:[?12l[?25hdebug echo Foo()
[?25lEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?12l[?25hstep

[?25lfunction Foo

line 1: let var1 = 1

>[?12l[?25hstep

[?25lfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "- show backtrace:\n"

[?25l- show backtrace:

>[?12l[?25hbacktrace

[?25l  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "\nshow variables on different levels:\n"

[?25l
show variables on different levels:

>[?12l[?25hecho var1

[?25l6
>[?12l[?25hup

[?25l>[?12l[?25hback

[?25l  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l3
>[?12l[?25hu

[?25l>[?12l[?25hbt

[?25l->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l1
>[?12l[?25hecho "\n- undefined vars:\n"

[?25l
- undefined vars:

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?12l[?25hframe 2

[?25l>[?12l[?25hecho "undefined var3 on former level:"

[?25lundefined var3 on former level:

>[?12l[?25hecho var3

[?25lError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?12l[?25hfr 0

[?25l>[?12l[?25hecho "here var3 is defined with \"another var\":"

[?25lhere var3 is defined with "another var":

>[?12l[?25hecho var3

[?25lanother var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: return var2

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: End of function

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nundefined var2 on former level"

[?25l
undefined var2 on former level

>[?12l[?25hecho var2

[?25lError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?12l[?25hdown

[?25l>[?12l[?25hecho "here var2 is defined with 10:"

[?25lhere var2 is defined with 10:

>[?12l[?25hecho var2

[?25l10

>[?12l[?25hecho "\n- backtrace movements:\n"

[?25l
- backtrace movements:

>[?12l[?25hb

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\nnext command cannot go down, we are on bottom\n"

[?25l
next command cannot go down, we are on bottom

>[?12l[?25hdown

[?25lframe is zero

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nnext command cannot go up, we are on top\n"

[?25l
next command cannot go up, we are on top

>[?12l[?25hup

[?25lframe at highest level: 1

>[?12l[?25hb

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "fil is not frame or finish, it is file"

[?25lfil is not frame or finish, it is file

>[?12l[?25hfil

[?25l"[No Name]" --No lines in buffer--

>[?12l[?25hecho "\n- relative backtrace movement\n"

[?25l
- relative backtrace movement

>[?12l[?25hfr -1

[?25l>[?12l[?25hframe

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hfra +1

[?25l>[?12l[?25hfram

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "\n- go beyond limits does not crash\n"

[?25l
- go beyond limits does not crash

>[?12l[?25hfr 100

[?25lframe at highest level: 1

>[?12l[?25hfra

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hframe -40

[?25lframe is zero

>[?12l[?25hfram

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\n- final result 19:"

[?25l
- final result 19:

>[?12l[?25hcont

[?25l19

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h0debuggreedy
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25h$put =out
[?25l83 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[+][?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 84 lines, 1390 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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! ttest.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']][?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for option autocommand[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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, secoond 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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hfu! AutoCommand(match)
[?25l
:  [?12l[?25h:^Ilet c=g:testcase

[?25l:  [?12l[?25h:       let item=remove(g:options, 0)

[?25l:  [?12l[?25h:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l:  [?12l[?25h:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l:  [?12l[?25h:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l:  [?12l[?25h:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l:  [?12l[?25h:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l:  [?12l[?25h:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l:  [?12l[?25h:endfu
[?25l: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, secoond 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)[?12l[?25h[?25l
:[?12l[?25hau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="1: Setting number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="2: Setting local number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="3: Setting global number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="4: Setting local autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="5: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="6: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ai!
[?25l[?12l[?25h[?25l:[?12l[?25h Should not print anything, use :noa
[?25lE492: Not an editor command: Should not print anything, use :noa[?12l[?25h[?25l:[?12l[?25hnoa :set nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="7: Setting several global list and number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset list nu
[?25l     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 invallid, 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$[?12l[?25h[?25l:[?12l[?25hnoa set nolist nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="8: Setting global acd\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal acd
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="9: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="10: Setting local autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="11: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal invar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="12: Setting option backspace through :let\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hlet &bs="eol,indent,start"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backup', '', '1', 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25h "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hcall setbufvar(1, '&l:bk', 1)
[?25lE355: Unknown option: l:bk[?12l[?25h[?25l:[?12l[?25h "should trigger, use correct option name
[?25l[?12l[?25h[?25l:[?12l[?25hcall setbufvar(1, '&backup', 1)
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hcall setwinvar(0, '&number', 1)
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25h" Write register now, because next test shouldn't output anything.
[?25l[?12l[?25h[?25l:[?12l[?25h$put r
[?25l60 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>, Scoope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scoope: <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>[?12l[?25h[?25l:[?12l[?25hlet @r=''
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=blah
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:testcase
[?25l    138 
    139 15: Setting key option, shouldn't trigger[?12l[?25h[?25l
:[?12l[?25h$put r
[?25l
    140 [?12l[?25h[?25l
:[?12l[?25h/^dummy text/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for setting the '[,'] marks when joining lines.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^\t\t/
[?25l[?12l[?25h[?25lattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h/^This line/;'}-join
[?25lThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='First test: Start/End '.string(a)
[?25lFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?12l[?25h[?25l:[?12l[?25h$put ='Second test: Start/End '.string(b)
[?25lSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?12l[?25h[?25l:[?12l[?25h/^\t\t/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l11[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l22[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l:[?12l[?25hvsplit
[?25l|
 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 [+]                 [?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  normal g;

[?25l:  [?12l[?25h:  normal ggVGcpass
[?25l21 fewer lines
:  

:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  normal ggVGcfail

[?25l:  

:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  %w! test.out

[?25l"test.out" [New File] 1 line, 5 characters written

:  [?12l[?25h:endtry
[?25lpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                           pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :[count]close! and :[count]hide     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hclose!
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 7 lines, 39 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l"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 = [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                       test_close_count.in                                                              [?12l[?25h[?25l:[?12l[?25h.hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?12l[?25h[?25l12 9
15 12 9
15 12[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 15 lines, 106 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[?12l[?25h[?25l:[?12l[?25h$ hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$-1 close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h.+close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[+][?12l[?25h[?25l15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 19 lines, 143 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:.+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l25 24 23 21 124 23 21 124 23 2124 21[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 23 lines, 183 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l" Test for expression comparators.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let oldisident=&isident

[?25l:  [?12l[?25h:  set isident+=#

[?25l:  [?12l[?25h:  if 1 is#1

[?25l:    [?12l[?25h:    $put ='ok'

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    $put ='ng'

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  let &isident=oldisident

[?25l:  [?12l[?25h:endtry
[?25l" 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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^marker/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for erasing backword[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h

[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25lド[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h/^test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:rreg, 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, aa:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for various eval features.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:$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:[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun AppendRegContents(reg)
[?25l
:  [?12l[?25h  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:  [?12l[?25h:endfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l
:  [?12l[?25h  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:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hcommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?12l[?25h[?25l:[?12l[?25hfun SetReg(...)
[?25l
:  [?12l[?25h    call call('setreg', a:000)

[?25l:  [?12l[?25h    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l:  [?12l[?25h    call AppendRegContents(a:1)

[?25l:  [?12l[?25h    if a:1 isnot# '='

[?25l:    [?12l[?25h        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun ErrExe(str)
[?25l
:  [?12l[?25h    call append('$', 'Executing '.a:str)

[?25l:  [?12l[?25h    try

[?25l:    [?12l[?25h        execute a:str

[?25l:    [?12l[?25h    catch

[?25l:    [?12l[?25h        $put =v:exception

[?25l:    [?12l[?25h    endtry

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h$put ='{{{1 let tests'

[?25l:  [?12l[?25hlet @" = 'abc'

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\n"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\<C-m>"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @= = '"abc"'

[?25l:  [?12l[?25hAR =

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Basic setreg tests'

[?25l:  [?12l[?25hcall SetReg('a', 'abcA', 'c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcB', 'v')

[?25l:  [?12l[?25hcall SetReg('c', 'abcC', 'l')

[?25l:  [?12l[?25hcall SetReg('d', 'abcD', 'V')

[?25l:  [?12l[?25hcall SetReg('e', 'abcE', 'b')

[?25l:  [?12l[?25hcall SetReg('f', 'abcF', "\<C-v>")

[?25l:  [?12l[?25hcall SetReg('g', 'abcG', 'b10')

[?25l:  [?12l[?25hcall SetReg('h', 'abcH', "\<C-v>10")

[?25l:  [?12l[?25hcall SetReg('I', 'abcI')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending single lines with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc', 'c')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAl', 'l')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc2','c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc', 'ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb', 'ba')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc2','ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb2','b50a')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('C', 'abcCl', 'l')

[?25l:  [?12l[?25hcall SetReg('C', 'abcCc', 'c')

[?25l:  [?12l[?25hcall SetReg('D', 'abcDb', 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('E', 'abcEb', 'b')

[?25l:  [?12l[?25hcall SetReg('E', 'abcEl', 'l')

[?25l:  [?12l[?25hcall SetReg('F', 'abcFc', 'c')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending NL with setreg()'

[?25l:  [?12l[?25hcall setreg('a', 'abcA2', 'c')

[?25l:  [?12l[?25hcall setreg('b', 'abcB2', 'v')

[?25l:  [?12l[?25hcall setreg('c', 'abcC2', 'l')

[?25l:  [?12l[?25hcall setreg('d', 'abcD2', 'V')

[?25l:  [?12l[?25hcall setreg('e', 'abcE2', 'b')

[?25l:  [?12l[?25hcall setreg('f', 'abcF2', "\<C-v>")

[?25l:  [?12l[?25hcall setreg('g', 'abcG2', 'b10')

[?25l:  [?12l[?25hcall setreg('h', 'abcH2', "\<C-v>10")

[?25l:  [?12l[?25hcall setreg('I', 'abcI2')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', "\n")

[?25l:  [?12l[?25hcall SetReg('B', "\n", 'c')

[?25l:  [?12l[?25hcall SetReg('C', "\n")

[?25l:  [?12l[?25hcall SetReg('D', "\n", 'l')

[?25l:  [?12l[?25hcall SetReg('E', "\n")

[?25l:  [?12l[?25hcall SetReg('F', "\n", 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA3'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3'], 'l')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC3'], 'b')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD3'])

[?25l:  [?12l[?25hcall SetReg('e', [1, 2, 'abc', 3])

[?25l:  [?12l[?25hcall SetReg('f', [1, 2, 3])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ['abcA3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3l'], 'la')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3b'], 'lb')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD32'])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', ['abcA32'])

[?25l:  [?12l[?25hcall SetReg('B', ['abcB3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3l'], 'l')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD3b'], 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with NL with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l:  [?12l[?25hcall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l:  [?12l[?25hcall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with NLs with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l:  [?12l[?25hcall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l:  [?12l[?25hcall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Search and expressions'

[?25l:  [?12l[?25hcall SetReg('/', ['abc/'])

[?25l:  [?12l[?25hcall SetReg('/', ["abc/\n"])

[?25l:  [?12l[?25hcall SetReg('=', ['"abc/"'])

[?25l:  [?12l[?25hcall SetReg('=', ["\"abc/\n\""])

[?25l:  [?12l[?25h$put ='{{{1 System clipboard'

[?25l:  [?12l[?25hif has('clipboard')

[?25l:    [?12l[?25h" Save and restore system clipboard.

[?25l:    [?12l[?25h" If no connection to X-Server is possible, test should succeed.

[?25l:    [?12l[?25hlet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l:    [?12l[?25hlet _clipopt = &cb

[?25l:    [?12l[?25hlet &cb='unnamed'

[?25l:    [?12l[?25h5y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25htabdo :windo :echo "hi"

[?25l:    [?12l[?25h6y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25hlet &cb=_clipopt

[?25l:    [?12l[?25hcall call('setreg', _clipreg)

[?25l:    [?12l[?25helse

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l:    [?12l[?25hendif

[?25l:  [?12l[?25h$put ='{{{1 Errors'

[?25l:  [?12l[?25hcall ErrExe('call setreg()')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, 3, 4)')

[?25l:  [?12l[?25hcall ErrExe('call setreg([], 2)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, {})')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, [])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("/", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("=", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l:  [?12l[?25hendfun
[?25l:$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:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test()
[?25lhi*: 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction SetReg
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction AppendRegContents
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction ErrExe
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hdelcommand AR
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name not starting with capital
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! g:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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 moore linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or moore 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()
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name includes a colon
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! b:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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()[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name folowed by #
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! test2() "#

[?25l:  [?12l[?25h:echo "test2"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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() "#[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name starting with/without "g:", buffer-local funcref.
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! g:Foo(n)
[?25l
:  [?12l[?25h:  $put ='called Foo(' . a:n . ')'

[?25l:  [?12l[?25h:endfunction
[?25lExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?12l[?25h[?25l
:[?12l[?25hlet b:my_func = function('Foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcall b:my_func(1)
[?25l
called Foo(1)[?12l[?25h[?25l
:[?12l[?25hecho g:Foo(2)
[?25l0
called Foo(2)[?12l[?25h[?25l
:[?12l[?25hecho Foo(3)
[?25l0
called Foo(3)[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" script-local function used in Funcref must exist.
[?25l[?12l[?25h[?25l:[?12l[?25hso test_eval_func.vim
[?25ls:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Using $ instead of '$' must give an error
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h: call append($, 'foobar')

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='{{{1 getcurpos/setpos'
[?25l
{{{1 getcurpos/setpos[?12l[?25h[?25l
/[?12l[?25h^012345678
[?25lsearch 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[?12l[?25h012345[?25l:[?12l[?25hlet sp = getcurpos()
[?25l[?12l[?25h
[?25l:[?12l[?25hcall setpos('.', sp)
[?25l[?12l[?25h[?25l:[?12l[?25h$put
[?25lExecuting 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" substring and variable name
[?25l[?12l[?25h[?25l:[?12l[?25hlet str = 'abcdef'
[?25l[?12l[?25h[?25l:[?12l[?25hlet n = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[n:]
[?25l
def[?12l[?25h[?25l
:[?12l[?25h$put =str[:n]
[?25l
abcd[?12l[?25h[?25l
:[?12l[?25h$put =str[n:n]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet n
[?25l[?12l[?25h[?25l:[?12l[?25hlet nn = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[nn:]
[?25ldef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:nn]
[?25labcd[?12l[?25h[?25l:[?12l[?25h$put =str[nn:nn]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet nn
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:nn = 4
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:]
[?25lef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:b:nn]
[?25labcde[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:b:nn]
[?25l
e[?12l[?25h[?25l
:[?12l[?25hunlet b:nn
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'fixeol'vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
2 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" try editing files with 'fixeol' disabled
[?25l[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l
stays eol[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestEol
[?25l"XXTestEol" [New File] 2 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25he! XXNoEol
[?25l"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?12l[?25h[?25l
stays without[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestNoEol
[?25l"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fixeol
[?25l: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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXEol
[?25l"XXEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXNoEol
[?25l"XXNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestEol
[?25l"XXTestEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestNoEol
[?25l"XXTestNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l0[?12l[?25h[?25l:[?12l[?25h$r XXEol
[?25l"XXEol" 2 lines, 13 characterswith eolEND[?12l[?25h[?25l:[?12l[?25h$r XXNoEol
[?25l"XXNoEol" 1 line, 15 characterswithout eolEND[?12l[?25h[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXTestEol
[?25l"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?12l[?25h[?25l:[?12l[?25h$r XXTestNoEol
[?25l"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 84 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xtopdir directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GetCwdInfo(win, tab)
[?25l
:  [?12l[?25h: let tab_changed = 0

[?25l:  [?12l[?25h: let mod = ":t"

[?25l:  [?12l[?25h: if a:tab > 0 && a:tab != tabpagenr()

[?25l:    [?12l[?25h:   let tab_changed = 1

[?25l:    [?12l[?25h:   exec "tabnext " . a:tab

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l:  [?12l[?25h: if tab_changed

[?25l:    [?12l[?25h:   tabprevious

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: if a:win == 0 && a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir()

[?25l:    [?12l[?25h: elseif a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win)

[?25l:    [?12l[?25h: else

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win, a:tab)

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: return bufname . ' ' . dirname . ' ' . lflag

[?25l:  [?12l[?25h:endfunction
[?25l: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
[?12l[?25h[?25l

:[?12l[?25h" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xtopdir')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xtopdir
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir1')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir2')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir3')
[?25l[?12l[?25h[?25l:[?12l[?25hnew a
[?25l"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25hnew b
[?25l"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25hnew c
[?25l"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lc                                                                                a                                                                               [?12l[?25h[?25l:[?12l[?25hlcd Xdir1
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                           b                                                                               ab                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                                               b                                                                                [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lcb                                                                               b                                                           a                                                           /<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25htabnew x
[?25l"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hnew y
[?25l"y" [New File]2 y  Xy                                                                                x                                                                                [?12l[?25h[?25l:[?12l[?25hnew z
[?25l"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lz                                                                                x                                                                               x  X[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25ly                                                                               x                                                                                y  X[?12l[?25h[?25l:[?12l[?25hlcd Xdir2
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lzb /                Xz                                                                               yb                                                                               x                                                           [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hlet tp_nr = tabpagenr()
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l 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               [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(3, tp_nr))
[?25l 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               [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(2, tp_nr))
[?25l 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               [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(1, tp_nr))
[?25l 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               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall writefile(r, test_out, "a")
[?25l[?12l[?25h[?25l:[?12l[?25hq
[?25l 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for repeating insert and replace.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/Second
[?25l[?12l[?25h[?25looooecond line
ooo[?12l[?25h
Las[?25l:[?12l[?25h/^First/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:<[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'listchars' display with 'list' and :list[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:lines = []
[?25l[?12l[?25h[?25l:[?12l[?25hfunction GetScreenCharsForLine(lnum)
[?25l
:  [?12l[?25h:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l:  [?12l[?25h:endfunction
[?25l:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\\<CR>"[?12l[?25h[?25l
:[?12l[?25hnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l:endfunction[?12l[?25h[?25l
:[?12l[?25hset listchars+=tab:>-,space:.,trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset list
[?25l$.<expr>.GG.":call..\\<CR>"$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:$[?12l[?25h[?25l
:[?12l[?25hnormal! jzt
[?25l>-------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<<<<><<$[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset listchars-=trail:<
[?25l.....
.......>..[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hput =g:lines
[?25l10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?12l[?25h[?25l:[?12l[?25h'[,']w! test.out
[?25l"test.out" [New File] 10 lines, 124 characters written[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?12l[?25h[?25l
$[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset listchars+=trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist
[?25l   >>  [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:[?12l[?25h[?25l
:[?12l[?25hredir! >> test.out
[?25l[?12l[?25h[?25l:[?12l[?25h+1,$list
[?25l..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?12l[?25h[?25l
:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option (non-utf8)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25labcd{ef[?12l[?25h[?25l
:[?12l[?25h10new|:vsp|:vert resize 20
[?25l       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                                 [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,4)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: set linebreak"
[?25l[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: set linebreak + set list"
[?25l[?12l[?25h[?25l:[?12l[?25hset linebreak list listchars=
[?25l^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l^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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25labcdef|^Iabcdef hijklmn^I[?12l[?25h[?25l:[?12l[?25hset nolist linebreak ts=8
[?25l    abcdef[?12l[?25h[?25l:[?12l[?25hlet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25l      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l1|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hlet line="_S_\t bla"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l_S_      bla|+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25labbbb[?12l[?25h[?25l:[?12l[?25hsyn match ConcealVar contained /_/ conceal
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match All /.*/ contains=ConcealVar
[?25lSabb[?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: this not"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25labbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE: this not    [?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE:             
+aaaaaaaaaaaaa      [?12l[?25h[?25l:[?12l[?25h1/^REMOVE:
[?25l[?12l[?25h[?25l[?12l[?25h[?25lR[?12l[?25h[?25lEMOVE: 
REMOVE:[?12l[?25h[?25lthis not        
aaaaaaaaaaaaa
~                   [?12l[?25h[?25l:[?12l[?25h$put
[?25l~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?12l[?25h[?25llong line:          [?12l[?25h[?25l foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?12l[?25h+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25lTARGET at
+end[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx at[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak sbr=
[?25lfoobar 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)[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l1111-1111-1111-11-  
1111-1111-1111      [?12l[?25h[?25l[?12l[?25h[?25l111[?12l[?25h[?25l2222[?12l[?25h[?25l2222[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: using redo after block visual mode"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                [?12l[?25h[?25l1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?12l[?25h[?25l[?12l[?25h[?25la
a[?12l[?25h[?25l3 lines changedA
A
A[?12l[?25h[?25lA
AaA[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 10: using normal commands after block-visual"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?12l[?25h[?25l:[?12l[?25hset linebreak
[?25l[?12l[?25h[?25lAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?12l[?25h[?25l[?12l[?25h[?25l[?12l[?25h[?25lpqrs
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?12l[?25h[?25l:[?12l[?25hset linebreak wrap
[?25l[?12l[?25h[?25lA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?12l[?25h[?25l[?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l[?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?12l[?25h[?25l0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25laaaaaaaaaaaaaaaaaaaa|~[?12l[?25h[?25l:[?12l[?25hset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l$[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hlet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25la_|
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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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-$[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 62 lines, 2030 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for search('multi-byte char', 'bce')[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hsource small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hsource mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h/^Test bce:/+1
[?25l[?12l[?25h[?25l:[?12l[?25h$put =search('A', 'bce', line('.'))
[?25l15[?12l[?25h[?25l:[?12l[?25h1;/^Results:/,$wq! test.out
[?25l"test.out" [New File] 5 lines, 27 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for Unicode manipulationsvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:" 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
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Visual block Insert adjusts for multi-byte char
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                    [?12l[?25h[?25l:[?12l[?25hcall setline(1, ["aaa", "あああ", "bbb"])
[?25laaa
あああbbb[+][?12l[?25h[?25l:[?12l[?25hexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25lxaa
xあああ
bxbb[?12l[?25h[?25l:[?12l[?25hlet r = getline(1, '$')
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l:" 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
 [?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
axaa
xあああ
bxbb3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for built-in function strchars()
[?25l[?12l[?25h[?25l:[?12l[?25hfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l
:  [?12l[?25h:^I$put=strchars(str)

[?25l:  [?12l[?25h:^I$put=strchars(str, 0)

[?25l:  [?12l[?25h:^I$put=strchars(str, 1)

[?25l:  [?12l[?25h:endfor
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for customlist completion
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete1(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あ', 'い']

[?25l:  [?12l[?25h:endfunction
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete2(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l:  [?12l[?25h:endfunction
[?25l:/^start:/,$wq! test.out
ENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete3(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l:  [?12l[?25h:endfunction
[?25lENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 _[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for wordcount() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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:
[?12l[?25h[?25l
:[?12l[?25hset selection=inclusive fileformat=unix fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                               [?12l[?25h[?25l:[?12l[?25hfu DoRecordWin(...)
[?25l
:  [?12l[?25h:^Iwincmd k

[?25l:  [?12l[?25h:       if exists("a:1")

[?25l:    [?12l[?25h:           call cursor(a:1)

[?25l:    [?12l[?25h:       endif

[?25l:  [?12l[?25h:       let result=[]

[?25l:  [?12l[?25h:       call add(result, g:test)

[?25l:  [?12l[?25h:       call add(result, getline(1, '$'))

[?25l:  [?12l[?25h:       call add(result, wordcount())

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:       return result

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu PutInWindow(args)
[?25l
:  [?12l[?25h:       wincmd k

[?25l:  [?12l[?25h:       %d _

[?25l:  [?12l[?25h:       call append(1, a:args)

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu Log()
[?25l
:  [?12l[?25h:   $put ='----'

[?25l:  [?12l[?25h:   $put =remove(g:log,0)

[?25l:  [?12l[?25h:   $put =string(g:log)

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu! STL()
[?25l
:  [?12l[?25h:    if mode() =~? 'V'

[?25l:    [?12l[?25h:       let g:visual_stat=wordcount()

[?25l:    [?12l[?25h:    endif

[?25l:  [?12l[?25h:    return string(wordcount())

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: empty window"
[?25l[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin()
[?25l[No Name]                                                                        test_wordcount.in                                                               [?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 00, 'cursor_bytes': 0}][+][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: some words, cursor at start"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25lone two three[+][?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([1,1,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_worrds': 0, 'bytes': 15, 'cursor_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 3: some words, cursor at end"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 15}][?12l[?25h[?25l


:[?12l[?25hset ve=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 5: several lines with words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25lone two threeone two three--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([4,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
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}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 6: one line with BOM set"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25l[No Name] [+]                                                                   test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset bomb
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2 lines, 18 characters writtenXtesta         [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 18, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25hwincmd k
[?25lXtest                                                                           test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset nobomb
[?25l[+][?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtest" 2 lines, 15 characters written    [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 7: one line with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh'])
[?25lÄne M¤ne Müh[+]--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_worrds': 3, 'bytes': 17, 'cursor_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 8: several lines with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25lund raus bist dü!--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'wwords': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 9: visual mode, complete buffer"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}[?12l[?25h[?25lÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 10: visual mode (empty)"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l[?12l[?25h[?25lursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 11: visual mode, single line"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h2
[?25l2,1,3}[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual_2}[?12l[?25h[?25lÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}[?12l[?25h[?25l
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3}[?12l[?25hsor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]s                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^RESULT test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for autocommands:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" drop out when there is no gzip program
[?25l[?12l[?25h[?25l:[?12l[?25hif !executable("gzip")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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/[?12l[?25h[?25l:[?12l[?25hlet $GZIP = ""
[?25l[?12l[?25h[?25l:[?12l[?25hau FileChangedShell * echo "caught FileChangedShell"
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePre    *.gz   '[,']!gzip
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePost   *.gz   undo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?12l[?25h[?25l11 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[?12l[?25h[?25l:[?12l[?25hau FileReadPost    *.gz   '[,']!gzip -d
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$r Xtestfile.gz                " Read and decompress the testfile
[?25l"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?12l[?25h[?25lstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?12l[?25h[?25l
:[?12l[?25h?startstart?,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 29 lines, 788 characters written[?12l[?25h[?25l:[?12l[?25hau BufNewFile      *.c    read Xtest.c
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25lsearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25he! foo.c                       " Will load Xtest.c
[?25l"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hau! FileAppendPre
[?25l/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile.gz                " Edit compressed file
[?25l:!gzip -d 'Xtestfile.gz'

[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?12l[?25h[?25lcaught FileChangedShell

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hset shelltemp                  " need temp files here
[?25lstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out                    " Edit the output file
[?25l"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[?12l[?25h[?25l:[?12l[?25h23,$!cat
[?25l[?12l[?25h[?25l218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h23,$s/\r$//                 " remove CR for when sed adds them
[?25lE486: Pattern not found: \r$
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25lstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?12l[?25h[?25l
:[?12l[?25hau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz             " Read compressed file
[?25l[?12l[?25h[?25l"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw                           " write it, after filtering
[?25l"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau!             " remove all autocommands
[?25lE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he               " Edit test.out again
[?25l"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?12l[?25h[?25l:[?12l[?25hset nobin ff&   " use the default fileformat for writing
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 61 lines, 1599 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for reading and writing files with conversion for Win32.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make this a dummy test for non-Win32 systems
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("win32") | e! test.ok | wq! test.out | endif
[?25l"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Lua interface and luaeval() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso lua.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?12l[?25h[?25l:[?12l[?25hlua h = vim.dict(); h.list = l
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect()
[?25l[?12l[?25h[?25l/[?12l[?25h^1
[?25l[?12l[?25h[?25l:[?12l[?25h" change buffer contents
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf = vim.buffer()
[?25l[?12l[?25h[?25l:[?12l[?25hlua curline = vim.eval"line('.')"
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf[curline] = "1 changed line 1"
[?25lchanged line 1
[?12l[?25h[?25l:[?12l[?25h" scalar test
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_string = luaeval('"string"')
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_1000 = luaeval('1000')
[?25l[?12l[?25h[?25l:[?12l[?25hif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l
:  [?12l[?25h:let scalar_res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let scalar_res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?12l[?25h[?25l


:[?12l[?25hcall append(search("^1"), "scalar test " . scalar_res)
[?25lscalar test OK
2 line 2[?12l[?25h[?25l:[?12l[?25h" dictionary containing a list
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp = luaeval("h").list[1]
[?25l[?12l[?25h[?25l:[?12l[?25h/^2/put =tmp
[?25l
dictionary with list OK[?12l[?25h[?25l
:[?12l[?25h" circular list (at the same time test lists containing lists)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l
[?25l[?12l[?25h[?25l:[?12l[?25hlet l2 = luaeval("h").list
[?25l[?12l[?25h[?25l:[?12l[?25hif l2[2] == l2
[?25l
:  [?12l[?25h:let res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l: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}")[?12l[?25h[?25l
:[?12l[?25hcall setline(search("^3"), "circular test " . res)
[?25l
circular test OK[?12l[?25h[?25l
:[?12l[?25hlet l = []
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.eval("l")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = l[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = l[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = l[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(l)
[?25l
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?12l[?25h[?25l
:[?12l[?25hlet d = {}
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = vim.eval("d")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[4] = d[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[5] = d[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[6] = d[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[7] = d[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(d)
[?25l
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?12l[?25h[?25l
:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 7L, 206C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python') | e! test.ok | wq! test.out | endif
[?25l"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h:py3 import vim

[?25l:  [?12l[?25h:py3 cb = vim.current.buffer

[?25l:  [?12l[?25h:let l = []

[?25l:  [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:  [?12l[?25h:py3 f=vim.bindeval('function("strlen")')

[?25l:  [?12l[?25h:" Extending List directly with different types

[?25l:  [?12l[?25h:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-4])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:13]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List assignment

[?25l:  [?12l[?25h:py3 l[0]=0

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:py3 l[-2]=f

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Extending Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:fun d.f()

[?25l:    [?12l[?25h:  return 1

[?25l:    [?12l[?25h:endfun

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hd=vim.bindeval('d')

[?25l:    [?12l[?25hd['1']='asd'

[?25l:    [?12l[?25hd.update()  # Must not do anything, including throwing errors

[?25l:    [?12l[?25hd.update(b=[1, 2, f])

[?25l:    [?12l[?25hd.update((('-1', {'a': 1}),))

[?25l:    [?12l[?25hd.update({'0': -1})

[?25l:    [?12l[?25hdk = d.keys()

[?25l:    [?12l[?25hdv = d.values()

[?25l:    [?12l[?25hdi = d.items()

[?25l:    [?12l[?25hdk.sort(key=repr)

[?25l:    [?12l[?25hdv.sort(key=repr)

[?25l:    [?12l[?25hdi.sort(key=repr)

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =py3eval('d[''f''](self={})')

[?25l:    [?12l[?25h:$put =py3eval('repr(dk)')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:for [key, Val] in sort(items(d))

[?25l:      [?12l[?25h:  $put =string(key) . ' : ' . string(Val)

[?25l:      [?12l[?25h:  unlet key Val

[?25l:      [?12l[?25h:endfor

[?25l:    [?12l[?25h:py3 del dk

[?25l:    [?12l[?25h:py3 del di

[?25l:    [?12l[?25h:py3 del dv

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items with del

[?25l:    [?12l[?25h:py3 del l[2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:try

[?25l:      [?12l[?25h:   py3 del l[:3]

[?25l:      [?12l[?25h:   py3 del l[1:]

[?25l:      [?12l[?25h:catch

[?25l:      [?12l[?25h:   $put =v:exception

[?25l:      [?12l[?25h:endtry

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:py3 del d['-1']

[?25l:    [?12l[?25h:py3 del d['f']

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''b'')'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''1''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(''0'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(''1'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:$put =string(d)

[?25l:    [?12l[?25h:$put =py3eval('repr(d.popitem())')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.get(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[2:1]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:3]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:5]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:6]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[-1:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-3:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-4:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-5:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-6:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[::2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[3:0:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Slice assignment to a list

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['a']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[1:2]=['b']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:4]=['c']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[4:4]=['d']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-1:2]=['e']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-10:2]=['f']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:-10]=['g']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = []

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['h']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:6:2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:-2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Locked variables

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:lockvar! l

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hdef emsg(ei):

[?25l:    [?12l[?25h    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l:    [?12l[?25h

[?25l:    [?12l[?25htry:

[?25l:    [?12l[?25h    l[2]='i'

[?25l:    [?12l[?25hexcept vim.error:

[?25l:    [?12l[?25h    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:unlockvar! l

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Function calls

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25himport sys

[?25l:    [?12l[?25himport re

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hdef ee(expr, g=globals(), l=locals()):

[?25l:    [?12l[?25h    cb = vim.current.buffer

[?25l:    [?12l[?25h    try:

[?25l:    [?12l[?25h        try:

[?25l:    [?12l[?25h            exec(expr, g, l)

[?25l:    [?12l[?25h        except Exception as e:

[?25l:    [?12l[?25h            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:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l:    [?12l[?25h                m = py33_type_error_pattern.search(str(e))

[?25l:    [?12l[?25h                if m:

[?25l:    [?12l[?25h                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l:    [?12l[?25h                else:

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l:    [?12l[?25h            else:

[?25l:    [?12l[?25h                msg = repr((e.__class__, e))

[?25l:    [?12l[?25h                # Some Python versions say can't, others cannot.

[?25l:    [?12l[?25h                if msg.find('can\'t') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('can\'t', 'cannot')

[?25l:    [?12l[?25h                # Some Python versions use single quote, some double quote

[?25l:    [?12l[?25h                if msg.find('"cannot ') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l:    [?12l[?25h                if msg.find(' attributes"') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l:    [?12l[?25h                cb.append(expr + ':' + msg)

[?25l:    [?12l[?25h        else:

[?25l:    [?12l[?25h            cb.append(expr + ':NOT FAILED')

[?25l:    [?12l[?25h    except Exception as e:

[?25l:    [?12l[?25h        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:fun New(...)

[?25l:      [?12l[?25h:   return ['NewStart']+a:000+['NewEnd']

[?25l:      [?12l[?25h:endfun

[?25l:      [?12l[?25h:fun DictNew(...) dict

[?25l:[?12l[?25h:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:let l=[function('New'), function('DictNew')]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:py3 l.extend(list(l[0](1, 2, 3)))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l+=[l[0].name]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 ee('l[1](1, 2, 3)')

[?25l:[?12l[?25h:py3 f=l[0]

[?25l:[?12l[?25h:delfunction New

[?25l:[?12l[?25h:py3 ee('f(1, 2, 3)')

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let l=[0.0]

[?25l:[?12l[?25h:   py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:   py3 l.extend([0.0])

[?25l:[?12l[?25h:   $put =string(l)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='[0.0, 0.0]'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:let messages=[]

[?25l:[?12l[?25h:delfunction DictNew

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25hd=vim.bindeval('{}')

[?25l:[?12l[?25hm=vim.bindeval('messages')

[?25l:[?12l[?25hdef em(expr, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l:[?12l[?25h            m.extend([TypeError.__name__])

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            m.extend([e.__class__.__name__])

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d["abc1"]')

[?25l:[?12l[?25hem('d["abc1"]="\\0"')

[?25l:[?12l[?25hem('d["abc1"]=vim')

[?25l:[?12l[?25hem('d[""]=1')

[?25l:[?12l[?25hem('d["a\\0b"]=1')

[?25l:[?12l[?25hem('d[b"a\\0b"]=1')

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d.pop("abc1")')

[?25l:[?12l[?25hem('d.popitem()')

[?25l:[?12l[?25hdel em

[?25l:[?12l[?25hdel m

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =messages

[?25l:[?12l[?25h:unlet messages

[?25l:[?12l[?25h:" locked and scope attributes

[?25l:[?12l[?25h:let d={} | let dl={} | lockvar dl

[?25l:[?12l[?25h:for s in split("d dl v: g:")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! let d.abc2=1

[?25l:[?12l[?25h:silent! let dl.abc3=1

[?25l:[?12l[?25h:py3 d.locked=True

[?25l:[?12l[?25h:py3 dl.locked=False

[?25l:[?12l[?25h:silent! let d.def=1

[?25l:[?12l[?25h:silent! let dl.def=1

[?25l:[?12l[?25h:put ='d:'.string(d)

[?25l:[?12l[?25h:put ='dl:'.string(dl)

[?25l:[?12l[?25h:unlet d dl

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:let l=[] | let ll=[] | lockvar ll

[?25l:[?12l[?25h:for s in split("l ll")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! call extend(l, [0])

[?25l:[?12l[?25h:silent! call extend(ll, [0])

[?25l:[?12l[?25h:py3 l.locked=True

[?25l:[?12l[?25h:py3 ll.locked=False

[?25l:[?12l[?25h:silent! call extend(l, [1])

[?25l:[?12l[?25h:silent! call extend(ll, [1])

[?25l:[?12l[?25h:put ='l:'.string(l)

[?25l:[?12l[?25h:put ='ll:'.string(ll)

[?25l:[?12l[?25h:unlet l ll

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" py3eval()

[?25l:[?12l[?25h:let l=py3eval('[0, 1, 2]')

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l:[?12l[?25h:$put =sort(items(d))

[?25l:[?12l[?25h:let v:errmsg = ''

[?25l:[?12l[?25h:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let f=py3eval('0.0')

[?25l:[?12l[?25h:   $put =string(f)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='0.0'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:" Invalid values:

[?25l:[?12l[?25h:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l:[?12l[?25h:   try

[?25l:[?12l[?25h:      let v=py3eval(e)

[?25l:[?12l[?25h:   catch

[?25l:[?12l[?25h:      let toput=e.":\t".v:exception[:13]

[?25l:[?12l[?25h:      $put =toput

[?25l:[?12l[?25h:   endtry

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" threading

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport threading

[?25l:[?12l[?25himport time

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass T(threading.Thread):

[?25l:[?12l[?25h    def __init__(self):

[?25l:[?12l[?25h        threading.Thread.__init__(self)

[?25l:[?12l[?25h        self.t = 0

[?25l:[?12l[?25h        self.running = True

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def run(self):

[?25l:[?12l[?25h        while self.running:

[?25l:[?12l[?25h            self.t += 1

[?25l:[?12l[?25h            time.sleep(0.1)

[?25l:[?12l[?25h

[?25l:[?12l[?25ht = T()

[?25l:[?12l[?25hdel T

[?25l:[?12l[?25ht.start()

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:sleep 1

[?25l:[?12l[?25h:py3 t.running = False

[?25l:[?12l[?25h:py3 t.join()

[?25l:[?12l[?25h:" Check if the background thread is working.  Count should be 10, but

on a

[?25l:[?12l[?25h:" busy system (AppVeyor) it can be much lower.

[?25l:[?12l[?25h:py3 l[0] = t.t > 4

[?25l:[?12l[?25h:py3 del time

[?25l:[?12l[?25h:py3 del threading

[?25l:[?12l[?25h:py3 del t

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" settrace

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef traceit(frame, event, arg):

[?25l:[?12l[?25h    global l

[?25l:[?12l[?25h    if event == "line":

[?25l:[?12l[?25h        l += [frame.f_lineno]

[?25l:[?12l[?25h    return traceit

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef trace_main():

[?25l:[?12l[?25h    for i in range(5):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:py3 sys.settrace(traceit)

[?25l:[?12l[?25h:py3 trace_main()

[?25l:[?12l[?25h:py3 sys.settrace(None)

[?25l:[?12l[?25h:py3 del traceit

[?25l:[?12l[?25h:py3 del trace_main

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Slice

[?25l:[?12l[?25h:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l:[?12l[?25h:py3 l = ll[:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-4:-2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[0:6]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-10:10]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:-1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[::2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 del l

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Vars

[?25l:[?12l[?25h:let g:foo = 'bac'

[?25l:[?12l[?25h:let w:abc3 = 'def'

[?25l:[?12l[?25h:let b:baz = 'bar'

[?25l:[?12l[?25h:let t:bar = 'jkl'

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  throw "Abc"

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  put =py3eval('vim.vvars[''exception'']')

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:put =py3eval('vim.vars[''foo'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Options

[?25l:[?12l[?25h:" paste:          boolean, global

[?25l:[?12l[?25h:" previewheight   number,  global

[?25l:[?12l[?25h:" operatorfunc:   string,  global

[?25l:[?12l[?25h:" number:         boolean, window-local

[?25l:[?12l[?25h:" numberwidth:    number,  window-local

[?25l:[?12l[?25h:" colorcolumn:    string,  window-local

[?25l:[?12l[?25h:" statusline:     string,  window-local/global

[?25l:[?12l[?25h:" autoindent:     boolean, buffer-local

[?25l:[?12l[?25h:" shiftwidth:     number,  buffer-local

[?25l:[?12l[?25h:" omnifunc:       string,  buffer-local

[?25l:[?12l[?25h:" preserveindent: boolean, buffer-local/global

[?25l:[?12l[?25h:" path:           string,  buffer-local/global

[?25l:[?12l[?25h:let g:bufs=[bufnr('%')]

[?25l:[?12l[?25h:new

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd j

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd l

[?25l:[?12l[?25h:fun RecVars(opt)

[?25l:[?12l[?25h:  let gval =string(eval('&g:'.a:opt))

[?25l:[?12l[?25h:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  put ='  G: '.gval

[?25l:[?12l[?25h:  put ='  W: '.wvals

[?25l:[?12l[?25h:  put ='  B: '.wvals

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef e(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('return ' + repr(e.__class__.__name__))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef ev(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        return eval(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l:[?12l[?25h        return 0

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:fun E(s)

[?25l:[?12l[?25h:   python3 e(vim.eval('a:s'))

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun Ev(s)

[?25l:[?12l[?25h:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l:[?12l[?25h:   if exists('exc')

[?25l:[?12l[?25h:       throw exc

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   return r

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:py3 gopts1=vim.options

[?25l:[?12l[?25h:py3 wopts1=vim.windows[2].options

[?25l:[?12l[?25h:py3 wopts2=vim.windows[0].options

[?25l:[?12l[?25h:py3 wopts3=vim.windows[1].options

[?25l:[?12l[?25h:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l:[?12l[?25h:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l:[?12l[?25h:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l:[?12l[?25h:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l:[?12l[?25h:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l:[?12l[?25h:py3 gset=set(iter(gopts1))

[?25l:[?12l[?25h:py3 wset=set(iter(wopts1))

[?25l:[?12l[?25h:py3 bset=set(iter(bopts1))

[?25l:[?12l[?25h:set path=.,..,,

[?25l:[?12l[?25h:let lst=[]

[?25l:[?12l[?25h:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l:[?12l[?25h:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l:[?12l[?25h:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l:[?12l[?25h:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l:[?12l[?25h:   py3 oname=vim.eval('oname')

[?25l:[?12l[?25h:   py3 oval1=vim.bindeval('oval1')

[?25l:[?12l[?25h:   py3 oval2=vim.bindeval('oval2')

[?25l:[?12l[?25h:   py3 oval3=vim.bindeval('oval3')

[?25l:[?12l[?25h:   if invval is 0 || invval is 1

[?25l:[?12l[?25h:       py3 invval=bool(vim.bindeval('invval'))

[?25l:[?12l[?25h:   else

[?25l:[?12l[?25h:       py3 invval=vim.bindeval('invval')

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   if bool

[?25l:[?12l[?25h:       py3 oval1=bool(oval1)

[?25l:[?12l[?25h:       py3 oval2=bool(oval2)

[?25l:[?12l[?25h:       py3 oval3=bool(oval3)

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   put ='>>> '.oname

[?25l:[?12l[?25h:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l:[?12l[?25h:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l:[?12l[?25h:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l:[?12l[?25h:       try

[?25l:[?12l[?25h:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l:[?12l[?25h:       catch

[?25l:[?12l[?25h:           put ='  p/'.v.'! '.v:exception

[?25l:[?12l[?25h:       endtry

[?25l:[?12l[?25h:       let r=E(v.'['''.oname.''']=invval')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  inv: '.string(invval).'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l:[?12l[?25h:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l:[?12l[?25h:           let r=E(vv.'['''.oname.''']='.val)

[?25l:[?12l[?25h:           if r isnot 0

[?25l:[?12l[?25h:               put ='  '.vv.'! '.r

[?25l:[?12l[?25h:           endif

[?25l:[?12l[?25h:       endfor

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:   for v in ['wopts3', 'bopts3']

[?25l:[?12l[?25h:       let r=E('del '.v.'["'.oname.'"]')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  del '.v.'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:delfunction RecVars

[?25l:[?12l[?25h:delfunction E

[?25l:[?12l[?25h:delfunction Ev

[?25l:[?12l[?25h:py3 del ev

[?25l:[?12l[?25h:py3 del e

[?25l:[?12l[?25h:only

[?25l:[?12l[?25h:for buf in g:bufs[1:]

[?25l:[?12l[?25h:   execute 'bwipeout!' buf

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:py3 del gopts1

[?25l:[?12l[?25h:py3 del wopts1

[?25l:[?12l[?25h:py3 del wopts2

[?25l:[?12l[?25h:py3 del wopts3

[?25l:[?12l[?25h:py3 del bopts1

[?25l:[?12l[?25h:py3 del bopts2

[?25l:[?12l[?25h:py3 del bopts3

[?25l:[?12l[?25h:py3 del oval1

[?25l:[?12l[?25h:py3 del oval2

[?25l:[?12l[?25h:py3 del oval3

[?25l:[?12l[?25h:py3 del oname

[?25l:[?12l[?25h:py3 del invval

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test buffer object

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:put ='First line'

[?25l:[?12l[?25h:put ='Second line'

[?25l:[?12l[?25h:put ='Third line'

[?25l:[?12l[?25h:1 delete _

[?25l:[?12l[?25h:py3 b=vim.current.buffer

[?25l:[?12l[?25h:wincmd w

[?25l:[?12l[?25h:mark a

[?25l:[?12l[?25h:augroup BUFS

[?25l:[?12l[?25h:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:augroup END

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Tests BufferAppend and BufferItem

[?25l:[?12l[?25hcb.append(b[0])

[?25l:[?12l[?25h# Tests BufferSlice and BufferAssSlice

[?25l:[?12l[?25hcb.append('abc5') # Will be overwritten

[?25l:[?12l[?25hcb[-1:] = b[:-2]

[?25l:[?12l[?25h# Test BufferLength and BufferAssSlice

[?25l:[?12l[?25hcb.append('def') # Will not be overwritten

[?25l:[?12l[?25hcb[len(cb):] = b[:]

[?25l:[?12l[?25h# Test BufferAssItem and BufferMark

[?25l:[?12l[?25hcb.append('ghi') # Will be overwritten

[?25l:[?12l[?25hcb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l:[?12l[?25h# Test BufferRepr

[?25l:[?12l[?25hcb.append(repr(cb) + repr(b))

[?25l:[?12l[?25h# Modify foreign buffer

[?25l:[?12l[?25hb.append('foo')

[?25l:[?12l[?25hb[0]='bar'

[?25l:[?12l[?25hb[0:0]=['baz']

[?25l:[?12l[?25hvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l:[?12l[?25h# Test assigning to name property

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hold_name = cb.name

[?25l:[?12l[?25hcb.name = 'foo'

[?25l:[?12l[?25hcb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hb.name = 'bar'

[?25l:[?12l[?25hcb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hcb.name = old_name

[?25l:[?12l[?25hcb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel old_name

[?25l:[?12l[?25h# Test CheckBuffer

[?25l:[?12l[?25hfor _b in vim.buffers:

[?25l:[?12l[?25h    if _b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(_b.number))

[?25l:[?12l[?25hdel _b

[?25l:[?12l[?25hcb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l:[?12l[?25hfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr)

[?25l:[?12l[?25h    except vim.error:

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        # Usually a SEGV here

[?25l:[?12l[?25h        # Should not happen in any case

[?25l:[?12l[?25h        cb.append('No exception for ' + expr)

[?25l:[?12l[?25hvim.command('cd .')

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.buffers object

[?25l:[?12l[?25h:set hidden

[?25l:[?12l[?25h:edit a

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit b

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit c

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Check GCing iterator that was not fully exhausted

[?25l:[?12l[?25hi = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# and also check creating more than one iterator at a time

[?25l:[?12l[?25hi2 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i2:' + str(next(i2)))

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# The following should trigger GC and not cause any problems

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hdel i2

[?25l:[?12l[?25hi3 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i3:' + str(next(i3)))

[?25l:[?12l[?25hdel i3

[?25l:[?12l[?25h

[?25l:[?12l[?25hprevnum = 0

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    # Check buffer order

[?25l:[?12l[?25h    if prevnum >= b.number:

[?25l:[?12l[?25h        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l:[?12l[?25h    # Check indexing: vim.buffers[number].number == number

[?25l:[?12l[?25h    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l:[?12l[?25h    prevnum = b.number

[?25l:[?12l[?25hdel prevnum

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append(str(len(vim.buffers)))

[?25l:[?12l[?25h

[?25l:[?12l[?25hbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Test wiping out buffer with existing iterator

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept vim.error:

[?25l:[?12l[?25h    pass

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h    cb.append('!!!! No vim.error')

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept StopIteration:

[?25l:[?12l[?25h    cb.append('StopIteration')

[?25l:[?12l[?25hdel i4

[?25l:[?12l[?25hdel bnums

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l:[?12l[?25h:tabnew 0

[?25l:[?12l[?25h:tabnew 1

[?25l:[?12l[?25h:vnew a.1

[?25l:[?12l[?25h:tabnew 2

[?25l:[?12l[?25h:vnew a.2

[?25l:[?12l[?25h:vnew b.2

[?25l:[?12l[?25h:vnew c.2

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hcb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l:[?12l[?25hcb.append('Current tab pages:')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef W(w):

[?25l:[?12l[?25h    if '(unknown)' in repr(w):

[?25l:[?12l[?25h        return '<window object (unknown)>'

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef Cursor(w, start=len(cb)):

[?25l:[?12l[?25h    if w.buffer is cb:

[?25l:[?12l[?25h        return repr((start - w.cursor[0], w.cursor[1]))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w.cursor)

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor t in vim.tabpages:

[?25l:[?12l[?25h    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l:[?12l[?25h    cb.append('  Windows:')

[?25l:[?12l[?25h    for w in t.windows:

[?25l:[?12l[?25h        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l:[?12l[?25h        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l:[?12l[?25h        for attr in ('height', 'row', 'width', 'col'):

[?25l:[?12l[?25h            try:

[?25l:[?12l[?25h                aval = getattr(w, attr)

[?25l:[?12l[?25h                if type(aval) is not int:

[?25l:[?12l[?25h                    raise TypeError

[?25l:[?12l[?25h                if aval < 0:

[?25l:[?12l[?25h                    raise ValueError

[?25l:[?12l[?25h            except Exception as e:

[?25l:[?12l[?25h                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l:[?12l[?25h        del aval

[?25l:[?12l[?25h        del attr

[?25l:[?12l[?25h        w.cursor = (len(w.buffer), 0)

[?25l:[?12l[?25hdel W

[?25l:[?12l[?25hdel Cursor

[?25l:[?12l[?25hcb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l:[?12l[?25hif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l:[?12l[?25h    cb.append('!!!!!! Windows differ')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.current

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef H(o):

[?25l:[?12l[?25h    return repr(o)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l:[?12l[?25hcb.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:[?12l[?25hdel H

[?25l:[?12l[?25h# Assigning: fails

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    vim.current.window = vim.tabpages[0].window

[?25l:[?12l[?25hexcept ValueError:

[?25l:[?12l[?25h    cb.append('ValueError at assigning foreign tab window')

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor attr in ('window', 'tabpage', 'buffer'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        setattr(vim.current, attr, None)

[?25l:[?12l[?25h    except TypeError:

[?25l:[?12l[?25h        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Assigning: success

[?25l:[?12l[?25hvim.current.tabpage = vim.tabpages[-2]

[?25l:[?12l[?25hvim.current.buffer = cb

[?25l:[?12l[?25hvim.current.window = vim.windows[0]

[?25l:[?12l[?25hvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window))

[?25l:[?12l[?25hcb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l:[?12l[?25hcb.append('Current line: ' + repr(vim.current.line))

[?25l:[?12l[?25hws = list(vim.windows)

[?25l:[?12l[?25hts = list(vim.tabpages)

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    if b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(b.number))

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hcb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l:[?12l[?25hcb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l:[?12l[?25hdel w

[?25l:[?12l[?25hdel t

[?25l:[?12l[?25hdel ts

[?25l:[?12l[?25hdel ws

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:tabonly!

[?25l:[?12l[?25h:only!

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test types

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor expr, attr in (

[?25l:[?12l[?25h    ('vim.vars',                         'Dictionary'),

[?25l:[?12l[?25h    ('vim.options',                      'Options'),

[?25l:[?12l[?25h    ('vim.bindeval("{}")',               'Dictionary'),

[?25l:[?12l[?25h    ('vim.bindeval("[]")',               'List'),

[?25l:[?12l[?25h    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l:[?12l[?25h    ('vim.current.buffer',               'Buffer'),

[?25l:[?12l[?25h    ('vim.current.range',                'Range'),

[?25l:[?12l[?25h    ('vim.current.window',               'Window'),

[?25l:[?12l[?25h    ('vim.current.tabpage',              'TabPage'),

[?25l:[?12l[?25h):

[?25l:[?12l[?25h    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l:[?12l[?25hdel expr

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test __dir__() method

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor name, o in (

[?25l:[?12l[?25h        ('current',    vim.current),

[?25l:[?12l[?25h        ('buffer',     vim.current.buffer),

[?25l:[?12l[?25h        ('window',     vim.current.window),

[?25l:[?12l[?25h        ('tabpage',    vim.current.tabpage),

[?25l:[?12l[?25h        ('range',      vim.current.range),

[?25l:[?12l[?25h        ('dictionary', vim.bindeval('{}')),

[?25l:[?12l[?25h        ('list',       vim.bindeval('[]')),

[?25l:[?12l[?25h        ('function',   vim.bindeval('function("tr")')),

[?25l:[?12l[?25h        ('output',     sys.stdout),

[?25l:[?12l[?25h    ):

[?25l:[?12l[?25h    cb.append(name + ':' + ','.join(dir(o)))

[?25l:[?12l[?25hdel name

[?25l:[?12l[?25hdel o

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.*.__new__

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary({})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List()'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'')'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l:[?12l[?25h:$put ='auto_rebind'

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.Function

[?25l:[?12l[?25h:function Args(...)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:function SelfArgs(...) dict

[?25l:[?12l[?25h:   return [a:000, self]

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:" The following four lines should not crash

[?25l:[?12l[?25h:let Pt = function('tr', [[]], {'l': []})

[?25l:[?12l[?25h:py3 Pt = vim.bindeval('Pt')

[?25l:[?12l[?25h:unlet Pt

[?25l:[?12l[?25h:py3 del Pt

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef ecall(out_prefix, func, *args, **kwargs):

[?25l:[?12l[?25h    line = out_prefix + ': '

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        ret = func(*args, **kwargs)

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        line += '!exception: ' + emsg(sys.exc_info())

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l:[?12l[?25h    cb.append(line)

[?25l:[?12l[?25ha = vim.Function('Args')

[?25l:[?12l[?25hpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l:[?12l[?25hpa2 = vim.Function('Args', args=[])

[?25l:[?12l[?25hpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l:[?12l[?25hpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l:[?12l[?25hcb.append('a: ' + repr(a))

[?25l:[?12l[?25hcb.append('pa1: ' + repr(pa1))

[?25l:[?12l[?25hcb.append('pa2: ' + repr(pa2))

[?25l:[?12l[?25hcb.append('pa3: ' + repr(pa3))

[?25l:[?12l[?25hcb.append('pa4: ' + repr(pa4))

[?25l:[?12l[?25hsa = vim.Function('SelfArgs')

[?25l:[?12l[?25hpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l:[?12l[?25hpsa2 = vim.Function('SelfArgs', args=[])

[?25l:[?12l[?25hpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l:[?12l[?25hpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l:[?12l[?25hpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l:[?12l[?25hpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l:[?12l[?25hpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l:[?12l[?25hpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l:[?12l[?25hpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l:[?12l[?25hpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l:[?12l[?25hpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l:[?12l[?25hpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l:[?12l[?25hcb.append('sa: ' + repr(sa))

[?25l:[?12l[?25hcb.append('psa1: ' + repr(psa1))

[?25l:[?12l[?25hcb.append('psa2: ' + repr(psa2))

[?25l:[?12l[?25hcb.append('psa3: ' + repr(psa3))

[?25l:[?12l[?25hcb.append('psa4: ' + repr(psa4))

[?25l:[?12l[?25hcb.append('psa5: ' + repr(psa5))

[?25l:[?12l[?25hcb.append('psa6: ' + repr(psa6))

[?25l:[?12l[?25hcb.append('psa7: ' + repr(psa7))

[?25l:[?12l[?25hcb.append('psa8: ' + repr(psa8))

[?25l:[?12l[?25hcb.append('psa9: ' + repr(psa9))

[?25l:[?12l[?25hcb.append('psaA: ' + repr(psaA))

[?25l:[?12l[?25hcb.append('psaB: ' + repr(psaB))

[?25l:[?12l[?25hcb.append('psaC: ' + repr(psaC))

[?25l:[?12l[?25h

[?25l:[?12l[?25hpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l:[?12l[?25hpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l:[?12l[?25hpsar.self['rec'] = psar

[?25l:[?12l[?25hpsar.self['self'] = psar.self

[?25l:[?12l[?25hpsar.self['args'] = psar.args

[?25l:[?12l[?25h

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    cb.append('psar: ' + repr(psar))

[?25l:[?12l[?25hexcept Exception:

[?25l:[?12l[?25h    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put ='s(a): '.string(py3eval('a'))

[?25l:[?12l[?25h:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l:[?12l[?25h:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l:[?12l[?25h:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l:[?12l[?25h:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l:[?12l[?25h:$put ='s(sa): '.string(py3eval('sa'))

[?25l:[?12l[?25h:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l:[?12l[?25h:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l:[?12l[?25h:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l:[?12l[?25h:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l:[?12l[?25h:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l:[?12l[?25h:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l:[?12l[?25h:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l:[?12l[?25h:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l:[?12l[?25h:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l:[?12l[?25h:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l:[?12l[?25h:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l:[?12l[?25h:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l:[?12l[?25h:   let d = {'f': py3eval(v)}

[?25l:[?12l[?25h:   $put ='d.'.v.'(): '.string(d.f())

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a()', a, )

[?25l:[?12l[?25h:py3 ecall('pa1()', pa1, )

[?25l:[?12l[?25h:py3 ecall('pa2()', pa2, )

[?25l:[?12l[?25h:py3 ecall('pa3()', pa3, )

[?25l:[?12l[?25h:py3 ecall('pa4()', pa4, )

[?25l:[?12l[?25h:py3 ecall('sa()', sa, )

[?25l:[?12l[?25h:py3 ecall('psa1()', psa1, )

[?25l:[?12l[?25h:py3 ecall('psa2()', psa2, )

[?25l:[?12l[?25h:py3 ecall('psa3()', psa3, )

[?25l:[?12l[?25h:py3 ecall('psa4()', psa4, )

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, 43)', a, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l:[?12l[?25h:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef s(v):

[?25l:[?12l[?25h    if v is None:

[?25l:[?12l[?25h        return repr(v)

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return str(vim.Function('string')(v), 'utf-8')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.args: ' + s(a.args))

[?25l:[?12l[?25hcb.append('pa1.args: ' + s(pa1.args))

[?25l:[?12l[?25hcb.append('pa2.args: ' + s(pa2.args))

[?25l:[?12l[?25hcb.append('pa3.args: ' + s(pa3.args))

[?25l:[?12l[?25hcb.append('pa4.args: ' + s(pa4.args))

[?25l:[?12l[?25hcb.append('sa.args: ' + s(sa.args))

[?25l:[?12l[?25hcb.append('psa1.args: ' + s(psa1.args))

[?25l:[?12l[?25hcb.append('psa2.args: ' + s(psa2.args))

[?25l:[?12l[?25hcb.append('psa3.args: ' + s(psa3.args))

[?25l:[?12l[?25hcb.append('psa4.args: ' + s(psa4.args))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.self: ' + s(a.self))

[?25l:[?12l[?25hcb.append('pa1.self: ' + s(pa1.self))

[?25l:[?12l[?25hcb.append('pa2.self: ' + s(pa2.self))

[?25l:[?12l[?25hcb.append('pa3.self: ' + s(pa3.self))

[?25l:[?12l[?25hcb.append('pa4.self: ' + s(pa4.self))

[?25l:[?12l[?25hcb.append('sa.self: ' + s(sa.self))

[?25l:[?12l[?25hcb.append('psa1.self: ' + s(psa1.self))

[?25l:[?12l[?25hcb.append('psa2.self: ' + s(psa2.self))

[?25l:[?12l[?25hcb.append('psa3.self: ' + s(psa3.self))

[?25l:[?12l[?25hcb.append('psa4.self: ' + s(psa4.self))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.name: ' + s(a.name))

[?25l:[?12l[?25hcb.append('pa1.name: ' + s(pa1.name))

[?25l:[?12l[?25hcb.append('pa2.name: ' + s(pa2.name))

[?25l:[?12l[?25hcb.append('pa3.name: ' + s(pa3.name))

[?25l:[?12l[?25hcb.append('pa4.name: ' + s(pa4.name))

[?25l:[?12l[?25hcb.append('sa.name: ' + s(sa.name))

[?25l:[?12l[?25hcb.append('psa1.name: ' + s(psa1.name))

[?25l:[?12l[?25hcb.append('psa2.name: ' + s(psa2.name))

[?25l:[?12l[?25hcb.append('psa3.name: ' + s(psa3.name))

[?25l:[?12l[?25hcb.append('psa4.name: ' + s(psa4.name))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l:[?12l[?25hcb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l:[?12l[?25hcb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l:[?12l[?25hcb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l:[?12l[?25hcb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l:[?12l[?25hcb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l:[?12l[?25hcb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l:[?12l[?25hcb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l:[?12l[?25hcb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l:[?12l[?25hcb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l:[?12l[?25hcb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l:[?12l[?25hcb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l:[?12l[?25hcb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l:[?12l[?25hcb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l:[?12l[?25hcb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l:[?12l[?25hcb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l:[?12l[?25hcb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l:[?12l[?25hcb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel s

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel a

[?25l:[?12l[?25hdel pa1

[?25l:[?12l[?25hdel pa2

[?25l:[?12l[?25hdel pa3

[?25l:[?12l[?25hdel pa4

[?25l:[?12l[?25hdel sa

[?25l:[?12l[?25hdel psa1

[?25l:[?12l[?25hdel psa2

[?25l:[?12l[?25hdel psa3

[?25l:[?12l[?25hdel psa4

[?25l:[?12l[?25hdel psa5

[?25l:[?12l[?25hdel psa6

[?25l:[?12l[?25hdel psa7

[?25l:[?12l[?25hdel psa8

[?25l:[?12l[?25hdel psa9

[?25l:[?12l[?25hdel psaA

[?25l:[?12l[?25hdel psaB

[?25l:[?12l[?25hdel psaC

[?25l:[?12l[?25hdel psar

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel ecall

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test stdout/stderr

[?25l:[?12l[?25h:redir => messages

[?25l:[?12l[?25h:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l:[?12l[?25h:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l:[?12l[?25h:py3 sys.stdout.writelines(iter('abcA'))

[?25l:[?12l[?25h:py3 sys.stderr.writelines(iter('abcB'))

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l:[?12l[?25h:" Test subclassing

[?25l:[?12l[?25h:fun Put(...)

[?25l:[?12l[?25h:   $put =string(a:000)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hclass DupDict(vim.Dictionary):

[?25l:[?12l[?25h    def __setitem__(self, key, value):

[?25l:[?12l[?25h        super(DupDict, self).__setitem__(key, value)

[?25l:[?12l[?25h        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l:[?12l[?25hdd = DupDict()

[?25l:[?12l[?25hdd['a'] = 'b'

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupList(vim.List):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        return [super(DupList, self).__getitem__(idx)] * 2

[?25l:[?12l[?25h

[?25l:[?12l[?25hdl = DupList()

[?25l:[?12l[?25hdl2 = DupList(iter('abcC'))

[?25l:[?12l[?25hdl.extend(dl2[0])

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupFun(vim.Function):

[?25l:[?12l[?25h    def __call__(self, arg):

[?25l:[?12l[?25h        return super(DupFun, self).__call__(arg, arg)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdf = DupFun('Put')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =string(sort(keys(py3eval('dd'))))

[?25l:[?12l[?25h:$put =string(py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dl2'))

[?25l:[?12l[?25h:$put =string(py3eval('df(2)'))

[?25l:[?12l[?25h:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l:[?12l[?25h:$put =string(py3eval('df'))

[?25l:[?12l[?25h:delfunction Put

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel DupDict

[?25l:[?12l[?25hdel DupList

[?25l:[?12l[?25hdel DupFun

[?25l:[?12l[?25hdel dd

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel dl2

[?25l:[?12l[?25hdel df

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test chdir

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hfnamemodify = vim.Function('fnamemodify')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hos.chdir('..')

[?25l:[?12l[?25hpath = fnamemodify('.', ':p:h:t')

[?25l:[?12l[?25hif path != b'src':

[?25l:[?12l[?25h  # Running tests from a shadow directory, so move up anot

her level

[?25l:[?12l[?25h  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l:[?12l[?25h  # slicing to remove the leading path and path separator

[?25l:[?12l[?25h  os.chdir('..')

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l:[?12l[?25h  os.chdir(path)

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel path

[?25l:[?12l[?25hos.chdir('testdir')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hdel fnamemodify

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test errors

[?25l:[?12l[?25h:fun F() dict

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun D()

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hd = vim.Dictionary()

[?25l:[?12l[?25hned = vim.Dictionary(foo='bar', baz='abcD')

[?25l:[?12l[?25hdl = vim.Dictionary(a=1)

[?25l:[?12l[?25hdl.locked = True

[?25l:[?12l[?25hl = vim.List()

[?25l:[?12l[?25hll = vim.List('abcE')

[?25l:[?12l[?25hll.locked = True

[?25l:[?12l[?25hnel = vim.List('abcO')

[?25l:[?12l[?25hf = vim.Function('string')

[?25l:[?12l[?25hfd = vim.Function('F')

[?25l:[?12l[?25hfdel = vim.Function('D')

[?25l:[?12l[?25hvim.command('delfunction D')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef subexpr_test(expr, name, subexprs):

[?25l:[?12l[?25h    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l:[?12l[?25h    for subexpr in subexprs:

[?25l:[?12l[?25h        ee(expr % subexpr)

[?25l:[?12l[?25h    cb.append('<<< Finished')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef stringtochars_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, 'StringToChars', (

[?25l:[?12l[?25h        '1',       # Fail type checks

[?25l:[?12l[?25h        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l:[?12l[?25h        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass Mapping(object):

[?25l:[?12l[?25h    def __init__(self, d):

[?25l:[?12l[?25h        self.d = d

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __getitem__(self, key):

[?25l:[?12l[?25h        return self.d[key]

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return self.d.keys()

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def items(self):

[?25l:[?12l[?25h        return self.d.items()

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompyobject_test(expr, recurse=True):

[?25l:[?12l[?25h    # pydict_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % '{%s : 1}')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l:[?12l[?25h    # pymap_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l:[?12l[?25h    # pyseq_to_tv

[?25l:[?12l[?25h    iter_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l:[?12l[?25h        'None',                 # Not conversible

[?25l:[?12l[?25h        '{b"": 1}',             # Empty key not allowe

d
[?25l:[?12l[?25h        '{"": 1}',              # Same, but with unico

de object

[?25l:[?12l[?25h        'FailingMapping()',     #

[?25l:[?12l[?25h        'FailingMappingKey()',  #

[?25l:[?12l[?25h        'FailingNumber()',      #

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompymapping_test(expr):

[?25l:[?12l[?25h    convertfrompyobject_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef iter_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, '*Iter*', (

[?25l:[?12l[?25h        'FailingIter()',

[?25l:[?12l[?25h        'FailingIterNext()',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef number_test(expr, natural=False, unsigned=False):

[?25l:[?12l[?25h    if natural:

[?25l:[?12l[?25h        unsigned = True

[?25l:[?12l[?25h    return subexpr_test(expr, 'NumberToLong', (

[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h        'None',

[?25l:[?12l[?25h    ) + (('-1',) if unsigned else ())

[?25l:[?12l[?25h    + (('0',) if natural else ()))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingTrue(object):

[?25l:[?12l[?25h    def __bool__(self):

[?25l:[?12l[?25h        raise NotImplementedError('bool')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIter(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        raise NotImplementedError('iter')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNext(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        raise NotImplementedError('next')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNextN(object):

[?25l:[?12l[?25h    def __init__(self, n):

[?25l:[?12l[?25h        self.n = n

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        if self.n:

[?25l:[?12l[?25h            self.n -= 1

[?25l:[?12l[?25h            return 1

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            raise NotImplementedError('next N')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMappingKey(object):

[?25l:[?12l[?25h    def __getitem__(self, item):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mappingkey'

)
[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return list("abcH")

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMapping(object):

[?25l:[?12l[?25h    def __getitem__(self):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mapping')

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        raise NotImplementedError('keys')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingList(list):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        if i == 2:

[?25l:[?12l[?25h            raise NotImplementedError('getitem:list')

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            return super(FailingList, self).__getitem_

_(idx)

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass NoArgsCall(object):

[?25l:[?12l[?25h    def __call__(self):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingCall(object):

[?25l:[?12l[?25h    def __call__(self, path):

[?25l:[?12l[?25h        raise NotImplementedError('call')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingNumber(object):

[?25l:[?12l[?25h    def __int__(self):

[?25l:[?12l[?25h        raise NotImplementedError('int')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append("> Output")

[?25l:[?12l[?25hcb.append(">> OutputSetattr")

[?25l:[?12l[?25hee('del sys.stdout.softspace')

[?25l:[?12l[?25hnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hee('assert sys.stdout.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stdout.seekable()==False')

[?25l:[?12l[?25hee('sys.stdout.close()')

[?25l:[?12l[?25hee('sys.stdout.flush()')

[?25l:[?12l[?25hee('assert sys.stderr.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stderr.seekable()==False')

[?25l:[?12l[?25hee('sys.stderr.close()')

[?25l:[?12l[?25hee('sys.stderr.flush()')

[?25l:[?12l[?25hee('sys.stdout.attr = None')

[?25l:[?12l[?25hcb.append(">> OutputWrite")

[?25l:[?12l[?25hee('assert sys.stdout.writable()==True')

[?25l:[?12l[?25hee('assert sys.stdout.readable()==False')

[?25l:[?12l[?25hee('assert sys.stderr.writable()==True')

[?25l:[?12l[?25hee('assert sys.stderr.readable()==False')

[?25l:[?12l[?25hee('assert sys.stdout.closed()==False')

[?25l:[?12l[?25hee('assert sys.stderr.closed()==False')

[?25l:[?12l[?25hee('assert sys.stdout.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stderr.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l:[?12l[?25hee('sys.stdout.write(None)')

[?25l:[?12l[?25hcb.append(">> OutputWriteLines")

[?25l:[?12l[?25hee('sys.stdout.writelines(None)')

[?25l:[?12l[?25hee('sys.stdout.writelines([1])')

[?25l:[?12l[?25hiter_test('sys.stdout.writelines(%s)')

[?25l:[?12l[?25hcb.append("> VimCommand")

[?25l:[?12l[?25hstringtochars_test('vim.command(%s)')

[?25l:[?12l[?25hee('vim.command("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimToPython")

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEval")

[?25l:[?12l[?25hstringtochars_test('vim.eval(%s)')

[?25l:[?12l[?25hee('vim.eval("", FailingTrue())')

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEvalPy")

[?25l:[?12l[?25hstringtochars_test('vim.bindeval(%s)')

[?25l:[?12l[?25hee('vim.eval("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimStrwidth")

[?25l:[?12l[?25hstringtochars_test('vim.strwidth(%s)')

[?25l:[?12l[?25hcb.append("> VimForeachRTP")

[?25l:[?12l[?25hee('vim.foreach_rtp(None)')

[?25l:[?12l[?25hee('vim.foreach_rtp(NoArgsCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(FailingCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(int, 2)')

[?25l:[?12l[?25hcb.append('> import')

[?25l:[?12l[?25hold_rtp = vim.options['rtp']

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l:[?12l[?25hee('import xxx_no_such_module_xxx')

[?25l:[?12l[?25hee('import failing_import')

[?25l:[?12l[?25hee('import failing')

[?25l:[?12l[?25hvim.options['rtp'] = old_rtp

[?25l:[?12l[?25hdel old_rtp

[?25l:[?12l[?25hcb.append("> Options")

[?25l:[?12l[?25hcb.append(">> OptionsItem")

[?25l:[?12l[?25hee('vim.options["abcQ"]')

[?25l:[?12l[?25hee('vim.options[""]')

[?25l:[?12l[?25hstringtochars_test('vim.options[%s]')

[?25l:[?12l[?25hcb.append(">> OptionsContains")

[?25l:[?12l[?25hstringtochars_test('%s in vim.options')

[?25l:[?12l[?25hcb.append("> Dictionary")

[?25l:[?12l[?25hcb.append(">> DictionaryConstructor")

[?25l:[?12l[?25hee('vim.Dictionary("abcI")')

[?25l:[?12l[?25h##! Not checked: py_dict_alloc failure

[?25l:[?12l[?25hcb.append(">> DictionarySetattr")

[?25l:[?12l[?25hee('del d.locked')

[?25l:[?12l[?25hee('d.locked = FailingTrue()')

[?25l:[?12l[?25hee('vim.vvars.locked = False')

[?25l:[?12l[?25hee('d.scope = True')

[?25l:[?12l[?25hee('d.xxx = True')

[?25l:[?12l[?25hcb.append(">> _DictionaryItem")

[?25l:[?12l[?25hee('d.get("a", 2, 3)')

[?25l:[?12l[?25hstringtochars_test('d.get(%s)')

[?25l:[?12l[?25hee('d.pop("a")')

[?25l:[?12l[?25hee('dl.pop("a")')

[?25l:[?12l[?25hcb.append(">> DictionaryContains")

[?25l:[?12l[?25hee('"" in d')

[?25l:[?12l[?25hee('0 in d')

[?25l:[?12l[?25hcb.append(">> DictionaryIterNext")

[?25l:[?12l[?25hee('for i in ned: ned["a"] = 1')

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hcb.append(">> DictionaryAssItem")

[?25l:[?12l[?25hee('dl["b"] = 1')

[?25l:[?12l[?25hstringtochars_test('d[%s] = 1')

[?25l:[?12l[?25hconvertfrompyobject_test('d["a"] = %s')

[?25l:[?12l[?25hcb.append(">> DictionaryUpdate")

[?25l:[?12l[?25hcb.append(">>> kwargs")

[?25l:[?12l[?25hcb.append(">>> iter")

[?25l:[?12l[?25hee('d.update(FailingMapping())')

[?25l:[?12l[?25hee('d.update([FailingIterNext()])')

[?25l:[?12l[?25hee('d.update([FailingIterNextN(1)])')

[?25l:[?12l[?25hiter_test('d.update(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update(%s)')

[?25l:[?12l[?25hstringtochars_test('d.update(((%s, 0),))')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update((("a", %s),))')

[?25l:[?12l[?25hcb.append(">> DictionaryPopItem")

[?25l:[?12l[?25hee('d.popitem(1, 2)')

[?25l:[?12l[?25hcb.append(">> DictionaryHasKey")

[?25l:[?12l[?25hee('d.has_key()')

[?25l:[?12l[?25hcb.append("> List")

[?25l:[?12l[?25hcb.append(">> ListConstructor")

[?25l:[?12l[?25hee('vim.List(1, 2)')

[?25l:[?12l[?25hee('vim.List(a=1)')

[?25l:[?12l[?25hiter_test('vim.List(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('vim.List([%s])')

[?25l:[?12l[?25hcb.append(">> ListItem")

[?25l:[?12l[?25hee('l[1000]')

[?25l:[?12l[?25hcb.append(">> ListAssItem")

[?25l:[?12l[?25hee('ll[1] = 2')

[?25l:[?12l[?25hee('l[1000] = 3')

[?25l:[?12l[?25hcb.append(">> ListAssSlice")

[?25l:[?12l[?25hee('ll[1:100] = "abcJ"')

[?25l:[?12l[?25hiter_test('l[:] = %s')

[?25l:[?12l[?25hee('nel[1:10:2]  = "abcK"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:10:2]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:1:-1]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[:] = FailingIterNextN(2)')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hconvertfrompyobject_test('l[:] = [%s]')

[?25l:[?12l[?25hcb.append(">> ListConcatInPlace")

[?25l:[?12l[?25hiter_test('l.extend(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('l.extend([%s])')

[?25l:[?12l[?25hcb.append(">> ListSetattr")

[?25l:[?12l[?25hee('del l.locked')

[?25l:[?12l[?25hee('l.locked = FailingTrue()')

[?25l:[?12l[?25hee('l.xxx = True')

[?25l:[?12l[?25hcb.append("> Function")

[?25l:[?12l[?25hcb.append(">> FunctionConstructor")

[?25l:[?12l[?25hcb.append(">>> FunctionConstructor")

[?25l:[?12l[?25hee('vim.Function("123")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx#non#existent#function#xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l:[?12l[?25hcb.append(">>> FunctionNew")

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf")')

[?25l:[?12l[?25hee('vim.Function("tr", args=427423)')

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l:[?12l[?25hee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l:[?12l[?25hee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l:[?12l[?25hee('vim.Function("tr", "")')

[?25l:[?12l[?25hcb.append(">> FunctionCall")

[?25l:[?12l[?25hconvertfrompyobject_test('f(%s)')

[?25l:[?12l[?25hconvertfrompymapping_test('fd(self=%s)')

[?25l:[?12l[?25hcb.append("> TabPage")

[?25l:[?12l[?25hcb.append(">> TabPageAttr")

[?25l:[?12l[?25hee('vim.current.tabpage.xxx')

[?25l:[?12l[?25hcb.append("> TabList")

[?25l:[?12l[?25hcb.append(">> TabListItem")

[?25l:[?12l[?25hee('vim.tabpages[1000]')

[?25l:[?12l[?25hcb.append("> Window")

[?25l:[?12l[?25hcb.append(">> WindowAttr")

[?25l:[?12l[?25hee('vim.current.window.xxx')

[?25l:[?12l[?25hcb.append(">> WindowSetattr")

[?25l:[?12l[?25hee('vim.current.window.buffer = 0')

[?25l:[?12l[?25hee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l:[?12l[?25hee('vim.current.window.cursor = True')

[?25l:[?12l[?25hnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l:[?12l[?25hnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l:[?12l[?25hee('vim.current.window.xxxxxx = True')

[?25l:[?12l[?25hcb.append("> WinList")

[?25l:[?12l[?25hcb.append(">> WinListItem")

[?25l:[?12l[?25hee('vim.windows[1000]')

[?25l:[?12l[?25hcb.append("> Buffer")

[?25l:[?12l[?25hcb.append(">> StringToLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = "\\na"')

[?25l:[?12l[?25hee('vim.current.buffer[0] = b"\\na"')

[?25l:[?12l[?25hcb.append(">> SetBufferLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = True')

[?25l:[?12l[?25hcb.append(">> SetBufferLineList (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[:] = True')

[?25l:[?12l[?25hee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l:[?12l[?25hcb.append(">> InsertBufferLines (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer.append(None)')

[?25l:[?12l[?25hee('vim.current.buffer.append(["\\na", "bc"])')

[?25l:[?12l[?25hee('vim.current.buffer.append("\\nbc")')

[?25l:[?12l[?25hcb.append(">> RBItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000]')

[?25l:[?12l[?25hcb.append(">> RBAsItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000] = ""')

[?25l:[?12l[?25hcb.append(">> BufferAttr")

[?25l:[?12l[?25hee('vim.current.buffer.xxx')

[?25l:[?12l[?25hcb.append(">> BufferSetattr")

[?25l:[?12l[?25hee('vim.current.buffer.name = True')

[?25l:[?12l[?25hee('vim.current.buffer.xxx = True')

[?25l:[?12l[?25hcb.append(">> BufferMark")

[?25l:[?12l[?25hee('vim.current.buffer.mark(0)')

[?25l:[?12l[?25hee('vim.current.buffer.mark("abcM")')

[?25l:[?12l[?25hee('vim.current.buffer.mark("!")')

[?25l:[?12l[?25hcb.append(">> BufferRange")

[?25l:[?12l[?25hee('vim.current.buffer.range(1, 2, 3)')

[?25l:[?12l[?25hcb.append("> BufMap")

[?25l:[?12l[?25hcb.append(">> BufMapItem")

[?25l:[?12l[?25hee('vim.buffers[100000000]')

[?25l:[?12l[?25hnumber_test('vim.buffers[%s]', natural=True)

[?25l:[?12l[?25hcb.append("> Current")

[?25l:[?12l[?25hcb.append(">> CurrentGetattr")

[?25l:[?12l[?25hee('vim.current.xxx')

[?25l:[?12l[?25hcb.append(">> CurrentSetattr")

[?25l:[?12l[?25hee('vim.current.line = True')

[?25l:[?12l[?25hee('vim.current.buffer = True')

[?25l:[?12l[?25hee('vim.current.window = True')

[?25l:[?12l[?25hee('vim.current.tabpage = True')

[?25l:[?12l[?25hee('vim.current.xxx = True')

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ned

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdel ll

[?25l:[?12l[?25hdel nel

[?25l:[?12l[?25hdel f

[?25l:[?12l[?25hdel fd

[?25l:[?12l[?25hdel fdel

[?25l:[?12l[?25hdel subexpr_test

[?25l:[?12l[?25hdel stringtochars_test

[?25l:[?12l[?25hdel Mapping

[?25l:[?12l[?25hdel convertfrompyobject_test

[?25l:[?12l[?25hdel convertfrompymapping_test

[?25l:[?12l[?25hdel iter_test

[?25l:[?12l[?25hdel number_test

[?25l:[?12l[?25hdel FailingTrue

[?25l:[?12l[?25hdel FailingIter

[?25l:[?12l[?25hdel FailingIterNext

[?25l:[?12l[?25hdel FailingIterNextN

[?25l:[?12l[?25hdel FailingMapping

[?25l:[?12l[?25hdel FailingMappingKey

[?25l:[?12l[?25hdel FailingList

[?25l:[?12l[?25hdel NoArgsCall

[?25l:[?12l[?25hdel FailingCall

[?25l:[?12l[?25hdel FailingNumber

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction F

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test import

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hsys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l:[?12l[?25hsys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l:[?12l[?25hl = []

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    l.append(os.path.relpath(path))

[?25l:[?12l[?25hvim.foreach_rtp(callback)

[?25l:[?12l[?25hcb.append(repr(l))

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    return os.path.relpath(path)

[?25l:[?12l[?25hcb.append(repr(vim.foreach_rtp(callback)))

[?25l:[?12l[?25hdel callback

[?25l:[?12l[?25hfrom module import dir as d

[?25l:[?12l[?25hfrom modulex import ddir

[?25l:[?12l[?25hcb.append(d + ',' + ddir)

[?25l:[?12l[?25himport before

[?25l:[?12l[?25hcb.append(before.dir)

[?25l:[?12l[?25himport after

[?25l:[?12l[?25hcb.append(after.dir)

[?25l:[?12l[?25himport topmodule as tm

[?25l:[?12l[?25himport topmodule.submodule as tms

[?25l:[?12l[?25himport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l:[?12l[?25hcb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l:[?12l[?25hdel before

[?25l:[?12l[?25hdel after

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ddir

[?25l:[?12l[?25hdel tm

[?25l:[?12l[?25hdel tms

[?25l:[?12l[?25hdel tmsss

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test exceptions

[?25l:[?12l[?25h:fun Exe(e)

[?25l:[?12l[?25h:   execute a:e

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hExe = vim.bindeval('function("Exe")')

[?25l:[?12l[?25hee('vim.command("throw \'abcN\'")')

[?25l:[?12l[?25hee('Exe("throw \'def\'")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l:[?12l[?25hee('vim.eval("xxx_unknown_function_xxx()")')

[?25l:[?12l[?25hee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l:[?12l[?25hdel Exe

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction Exe

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef test_keyboard_interrupt():

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('while 1 | endwhile')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('Caught KeyboardInterrupt')

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('!!!!!!!! No exception')

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('$ put =\'Running :put\'')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('No exception')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:debuggreedy

[?25l:[?12l[?25h:call inputsave()

[?25l:[?12l[?25h:call feedkeys("s\ns\ns\ns\nq\n")

[?25l:[?12l[?25h:redir => output

[?25l:[?12l[?25h:debug silent! py3 test_keyboard_interrupt()

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:0 debuggreedy

[?25l:[?12l[?25h:call inputrestore()

[?25l:[?12l[?25h:silent $put =output

[?25l:[?12l[?25h:unlet output

[?25l:[?12l[?25h:py3 del test_keyboard_interrupt

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Cleanup

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel cb

[?25l:[?12l[?25hdel ee

[?25l:[?12l[?25hdel emsg

[?25l:[?12l[?25hdel sys

[?25l:[?12l[?25hdel os

[?25l:[?12l[?25hdel vim

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:endfun
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfun RunTest()
[?25l
:  [?12l[?25h:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l:  [?12l[?25h:let start = getline(1, '$')

[?25l:  [?12l[?25h:for i in range(checkrefs ? 10 : 1)

[?25l:    [?12l[?25h:   if i != 0

[?25l:      [?12l[?25h:       %d _

[?25l:      [?12l[?25h:       call setline(1, start)

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:   call Test()

[?25l:    [?12l[?25h:   if i == 0

[?25l:      [?12l[?25h:       let result = getline(1, '$')

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:if checkrefs

[?25l:    [?12l[?25h:   %d _

[?25l:    [?12l[?25h:   call setline(1, result)

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h:endfun
[?25l:   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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall RunTest()
[?25l8 more lin
3 more lines[?12l[?25h

[?25l"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):jkll',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vimm:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unnknown 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[?12l[?25h[?25l:[?12l[?25hdelfunction RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'directory' option.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset dir=.,~
[?25l[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest1
[?25l"Xtest1" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25h" do an ls of the current dir to find the swap file (should not be there)
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:  !ls .X*.swp >test.out

[?25l:!ls .X*.swp >test.out[?1l>[?12l[?25h[?1049l
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25helse

[?25l:  [?12l[?25h:  r !ls X*.swp >test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25h!echo first line >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l:  [?12l[?25h:" to make the result the same for all systems.

[?25l:  [?12l[?25h:  r!ls .X*.swp

[?25l:  [?12l[?25h:  s/\.*X/X/

[?25l:  [?12l[?25h:  .w >>test.out
[?25l"test.out" 1L, 11C appended

:  [?12l[?25h:  undo

[?25l1 line less; before #1  0 seconds ago

:  [?12l[?25h:else

[?25l:  [?12l[?25h:  !ls X*.swp >>test.out

[?25l:  [?12l[?25h:endif
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest2
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hset dir=./Xtest2,.,~
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25h!ls X*.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l
ls: cannot access 'X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under under >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest.je
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25lsearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest2/Xtest3" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25hset dir=Xtest.je,~
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest2/Xtest3
[?25l"Xtest2/Xtest3" 4L, 70C[?12l[?25h[?25l:[?12l[?25hswap
[?25lXtest.je/Xtest3.swp[?12l[?25h[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest.je >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" Create a link from test25.dir to the current directory.
[?25l[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ln -s . test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h" Create tags.text, with the current directory name inserted.
[?25lTest 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
[?12l[?25h[?25l
/[?12l[?25htags line
[?25lhis 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:
[?12l[?25h[?25l:[?12l[?25hr !pwd
[?25l[?12l[?25h[?25lSTARTTEST
: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
[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25htest
[?25l
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?12l[?25h[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test25.dir/te@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-gtk/testdir/test25.dir/teest25.in /^#define  SECTION_OFF  3$/[?12l[?25h[?25l

:[?12l[?25h.w! tags.test
[?25l"tags.test" [New File] 1 line, 112 characters written[?12l[?25h[?25l:[?12l[?25h" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?12l[?25h[?25l:[?12l[?25h" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?12l[?25h[?25l:[?12l[?25h" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?12l[?25h[?25l:[?12l[?25hset tags=tags.test
[?25l[?12l[?25h[?25l/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?12l[?25h#[?25lefine  SECTION_OFF  3[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 23 characters written[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir tags.test
[?25l[?1l>[?12l[?25h[?1049l
[No write since last change]

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of the script language.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp nomore viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hso test49.vim
[?25lError 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"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"/tmp/vlQhEQd/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/1[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/2[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/2"' -c 'breakad

dfile 8 /tmp/vlQhEQd/1' -S /tmp/vlQhEQd/1[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/3[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/4[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/4"' -c 'breakad

dfile 4 /tmp/vlQhEQd/3' -S /tmp/vlQhEQd/3[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/5[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/6[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/6"' -c 'breakad

dfunc 7 F' -S /tmp/vlQhEQd/5[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/7[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/8[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/8"' -c 'breakad

dfunc 3 G' -S /tmp/vlQhEQd/7[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/9[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/10[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/10"' -S /tmp/vlQhE

Qd/9[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/11[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/12[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/12"' -S /tmp/vlQhE

Qd/11[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/13[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/14[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/14"' -S /tmp/vlQhE

Qd/13[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/15[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/16[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/16"' -S /tmp/vlQhE

Qd/15[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/17[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/18[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/18"' -S /tmp/vlQhE

Qd/17[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/19[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/20[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/20"' -S /tmp/vlQhE

Qd/19[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/21[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/22[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/22"' -S /tmp/vlQhE

Qd/21[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/23[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/24[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/24"' -S /tmp/vlQhE

Qd/23[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/25[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/26[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/26"' -S /tmp/vlQhE

Qd/25[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/27[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/28[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/28"' -S /tmp/vlQhE

Qd/27[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/29[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/30[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/30"' -S /tmp/vlQhE

Qd/29[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/31[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/32[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/32"' -S /tmp/vlQhE

Qd/31[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/33[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/34[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/34"' -S /tmp/vlQhE

Qd/33[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/36[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/36"' -S /tmp/vlQhE

Qd/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/37[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/38[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/38"' -S /tmp/vlQhE

Qd/37[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/39[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/40[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vlQhEQd/39[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/41[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/42[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/42"' -S /tmp/vlQhE

Qd/41[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/43[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/44[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/44"' -S /tmp/vlQhE

Qd/43[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/46[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/46"' -S /tmp/vlQhE

Qd/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vlQhEQd/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/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/vlQhEQd/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/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/vlQhEQd/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/50[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vlQhEQd/51[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/51"' -S /tmp/vlQhEQd/50[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669Ctest49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/52[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/53[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/53"' -S /tmp/vlQhE

Qd/52[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/54[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/55[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhEQd/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vlQhEQd/54' -c 'breakadd file 31

/tmp/vlQhEQd/54' -S /tmp/vlQhEQd/54[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/56[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/57[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/57"' -S /tmp/vlQhE

Qd/56[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/59[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhE

Qd/59"' -c 'breakadd func 16 C' -S /tmp/vlQhEQd/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/61[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhE

Qd/61"' -c 'breakadd func 16 B' -S /tmp/vlQhEQd/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/63[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhEQd/

63"' -c 'breakadd func 16 R' -S /tmp/vlQhEQd/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/65[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/65"' -c 'breakadd

func 16 F' -S /tmp/vlQhEQd/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/66[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/67[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhE

Qd/67"' -c 'breakadd func 16 E' -S /tmp/vlQhEQd/66[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/68[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/69[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhEQd/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vlQhEQd/68[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/70[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/71[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhE

Qd/71"' -c 'breakadd func 16 T' -S /tmp/vlQhEQd/70[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vlQhEQd/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/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/vlQhEQd/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/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/vlQhEQd/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/76[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vlQhEQd/77[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/77"' -S /tmp/vlQhEQd/76[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/78[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/79[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/79"' -S /tmp/vlQhEQd/78[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/80[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/81[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/81"' -S /tmp/vlQhEQd/80[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/82[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/83[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/83"' -S /tmp/vlQhEQd/82[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/84[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/85[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/85"' -c 'breakadd file 4 /tmp/vlQhEQd

/84' -S /tmp/vlQhEQd/84[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/86[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/87[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/87"' -S /tmp/vlQhEQd/86[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/88[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/89[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/89"' -S /tmp/vlQhEQd/88[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/91[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/92[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/92"' -S /tmp/vlQhEQd/91[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/93[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vlQhEQd/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/94[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/94"' -S /tmp/vlQhEQd/93[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/95[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vlQhEQd/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/96[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/96"' -S /tmp/vlQhEQd/95[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/97[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vlQhEQd/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/98[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/98"' -S /tmp/vlQhEQd/97[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/99[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vlQhEQd/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/100[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/100"' -S /tmp/vlQhEQd/99[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/101[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/102[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/102"' -S /tmp/vlQhEQd/101[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/103[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vlQhEQd/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/104[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/104"' -S /tmp/vlQhEQd/103[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/105[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vlQhEQd/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/106[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/106"' -S /tmp/vlQhEQd/105[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/107[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vlQhEQd/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/108[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/108"' -S /tmp/vlQhEQd/107[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/109[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vlQhEQd/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/110[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/110"' -S /tmp/vlQhEQd/109[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/111[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/112[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/112"' -S /tmp/vlQhEQd/111[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/113[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vlQhEQd/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/114[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/114"' -S /tmp/vlQhEQd/113[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/115[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vlQhEQd/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/116[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/116"' -S /tmp/vlQhEQd/115[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/117[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vlQhEQd/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/118[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/118"' -S /tmp/vlQhEQd/117[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/119[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vlQhEQd/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/120[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/120"' -S /tmp/vlQhEQd/119[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/121[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vlQhEQd/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/122[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/122"' -S /tmp/vlQhEQd/121[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/123[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vlQhEQd/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/124[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vlQhEQd/124"' -S /tmp/vlQhEQd/123[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/126[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/127[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/127"' -S /tmp/vlQhEQd/126[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/128[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vlQhEQd/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/129[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/129"' -S /tmp/vlQhEQd/128[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/130[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vlQhEQd/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/131[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/131"' -S /tmp/vlQhEQd/130[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/132[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vlQhEQd/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/133[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/133"' -S /tmp/vlQhEQd/132[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/134[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vlQhEQd/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/135[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/135"' -S /tmp/vlQhEQd/134[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/136[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vlQhEQd/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/137[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/137"' -S /tmp/vlQhEQd/136[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/138[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vlQhEQd/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/139[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/139"' -S /tmp/vlQhEQd/138[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/140[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vlQhEQd/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/141[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/141"' -S /tmp/vlQhEQd/140[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/142[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vlQhEQd/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/143[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/143"' -S /tmp/vlQhEQd/142[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/144[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vlQhEQd/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/145[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/145"' -S /tmp/vlQhEQd/144[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/146[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vlQhEQd/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/147[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/147"' -S /tmp/vlQhEQd/146[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/149[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/150[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/150"' -S /tmp/vlQhEQd/149[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/151[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vlQhEQd/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/152[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/152"' -S /tmp/vlQhEQd/151[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/153[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vlQhEQd/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/154[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/154"' -S /tmp/vlQhEQd/153[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/155[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vlQhEQd/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/156[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/156"' -S /tmp/vlQhEQd/155[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/157[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vlQhEQd/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/158[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/158"' -S /tmp/vlQhEQd/157[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/159[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/160[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/160"' -S /tmp/vlQhEQd/159[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/161[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vlQhEQd/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/162[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/162"' -S /tmp/vlQhEQd/161[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/163[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vlQhEQd/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/164[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/164"' -S /tmp/vlQhEQd/163[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/165[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vlQhEQd/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/166[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/166"' -S /tmp/vlQhEQd/165[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/167[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vlQhEQd/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/168[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/168"' -S /tmp/vlQhEQd/167[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/170[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/171[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/171"' -S /tmp/vlQhEQd/170[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/172[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vlQhEQd/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/173[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/173"' -S /tmp/vlQhEQd/172[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/174[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vlQhEQd/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/175[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/175"' -S /tmp/vlQhEQd/174[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/176[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vlQhEQd/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/177[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/177"' -S /tmp/vlQhEQd/176[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/178[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vlQhEQd/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/179[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/179"' -S /tmp/vlQhEQd/178[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/180[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vlQhEQd/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/181[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/181"' -S /tmp/vlQhEQd/180[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/182[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vlQhEQd/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/183[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/183"' -S /tmp/vlQhEQd/182[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/184[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vlQhEQd/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/185[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/185"' -S /tmp/vlQhEQd/184[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/186[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vlQhEQd/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/187[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vlQhEQd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vlQhEQd/187"' -S /tmp/vlQhEQd/186[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vlQhEQd/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vlQhEQd/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vlQhEQd/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vlQhEQd/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vlQhEQd/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/vlQhEQd/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vlQhEQd/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vlQhEQd/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vlQhEQd/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vlQhEQd/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vlQhEQd/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/194[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/194"' -c 'break

add func 4 T' -S /tmp/vlQhEQd/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vlQhEQd/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/196[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/196"' -c 'br

eakadd file 115 /tmp/vlQhEQd/195' -c 'breakadd file 225 /tmp/vlQhEQd/195' -S /tm

p/vlQhEQd/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/198[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/198"' -c 'break

add file 7 /tmp/vlQhEQd/197' -S /tmp/vlQhEQd/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/200[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vlQhEQd/

200"' -c 'breakadd file 8 /tmp/vlQhEQd/199' -c 'breakadd file 36 /tmp/vlQhEQd/19

9' -c 'breakadd file 40 /tmp/vlQhEQd/199' -c 'breakadd file 69 /tmp/vlQhEQd/199'

-c 'breakadd file 95 /tmp/vlQhEQd/199' -c 'breakadd file 97 /tmp/vlQhEQd/199' -

S/tmp/vlQhEQd/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vlQhEQd/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vlQhEQd/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test49.vim:

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"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vlQhEQd/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/203[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/203"' -c 'break

add file 63 /tmp/vlQhEQd/202' -S /tmp/vlQhEQd/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/204[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/205[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/205"' -c 'break

add func 8 F' -S /tmp/vlQhEQd/204[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vlQhEQd/206" [New File]
"test49.in" 32L, 705C
"/tmp/vlQhEQd/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/208[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/209[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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

/vlQhEQd/209"' -c 'breakadd func 2 INT' -S /tmp/vlQhEQd/208[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/210[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/211[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/211"' -S /tmp/vlQh

EQd/210[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/212[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/213[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/213"' -S /tmp/vlQh

EQd/212[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/214[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/215[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/215"' -c 'break

add file 8 /tmp/vlQhEQd/214' -S /tmp/vlQhEQd/214[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/216[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/217[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/217"' -S /tmp/vlQh

EQd/216[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/218[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/219[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/219"' -S /tmp/vlQh

EQd/218[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/220[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/221[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/221"' -c 'break

add file 7 /tmp/vlQhEQd/220' -S /tmp/vlQhEQd/220[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/222[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/223[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/223"' -c 'break

add func 6 I' -S /tmp/vlQhEQd/222[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/224[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/225[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/225"' -S /tmp/vlQh

EQd/224[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/226[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/227[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/227"' -c 'break

add file 8 /tmp/vlQhEQd/226' -S /tmp/vlQhEQd/226[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/229[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/229"' -c 'br

eakadd func 1 INT' -S /tmp/vlQhEQd/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vlQhEQd/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vlQhEQd/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vlQhEQd/233[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test49.vim:

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/vlQhEQd/235" c[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/vlQhEQd/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vlQhEQd/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"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vlQhEQd/0' >/tmp/vlQhEQd/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vlQhEQd/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vlQhEQd/237[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vlQhEQd/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vlQhEQd/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vlQhEQd/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9008L, 206669C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue:[?12l[?25h" Go back to this file and append the results from register r.
[?25l#
# 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 \[?12l[?25h[?25l:[?12l[?25hbuf test49.in
[?25l"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:[?12l[?25h
[?25l
83 more lines
*** Test  16: OK (8722)83 more lines[?12l[?25h[?25l:[?12l[?25h/^Results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" make valgrind happy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => funclist
[?25l[?12l[?25h[?25l:[?12l[?25hsilent func
[?25l[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hfor line in split(funclist, "\n")
[?25l
:  [?12l[?25h:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l:  [?12l[?25h:  if name != ''

[?25l:    [?12l[?25h:    exe "delfunc " . name

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?12l[?25h[?25l
:[?12l[?25hfor v in keys(g:)
[?25l
:  [?12l[?25h:  silent! exe "unlet " . v

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in[?12l[?25h[?25l
:[?12l[?25hunlet v
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest whether glob()/globpath() return correct results with certain escaped[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure glob() doesn't use the shell
[?25l[?12l[?25h[?25l:[?12l[?25hset shell=doesnotexist
[?25l[?12l[?25h[?25l:[?12l[?25h" consistent sorting of file names
[?25l[?12l[?25h[?25l:[?12l[?25hset nofileignorecase
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25l[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xxx{
[?25l
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! Xxx\$
[?25l"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25lXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25lXxx$[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim'))
[?25l'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 8 lines, 138 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option in utf-8 mode[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l:set list nolinebreak cc=3[?12l[?25h[?25l
:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?12l[?25h[?25l:[?12l[?25h10new|:vsp|:vert resize 20
[?25l                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                            [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width, lines)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,a:lines)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?12l[?25h[?25l:[?12l[?25hexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l▕———abcdef|▕———␣ˑ¶[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 2: set nolinebreak list"
[?25l[?12l[?25h[?25l:[?12l[?25hset list nolinebreak
[?25lhijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶                
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶          
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\t*mask = nil;\"
[?25l▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~ [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l      
    [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l*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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?12l[?25h[?25l:[?12l[?25hlet 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*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l#define             
+ABCDE      1       [?12l[?25h[?25l:[?12l[?25hvert resize 40
[?25l                    |                    |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] [+][?12l[?25h[?25l:[?12l[?25h$-7
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l#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
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset list linebreak listchars=tab:>- cole=1
[?25l>-->--->->--->>--->--->-->--->--->--->--->-->-[?12l[?25h[?25l:[?12l[?25hsyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25lAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l#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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),7)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l>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>
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?12l[?25h[?25l:[?12l[?25hlet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l[?12l[?25h[?25l:[?12l[?25h$
[?25l@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        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[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25lbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l>;>some text      [?12l[?25h[?25l:[?12l[?25hsyn clear
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match meaning    /;\s*\zs.*/
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match hasword    /^\x\{8}/    contains=word
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match beginword  /\<\x\x/     contained conceal
[?25leeeeee>--[?12l[?25h[?25l:[?12l[?25hsyn match endword    /\x\{6}\>/   contained
[?25l[?12l[?25h[?25l:[?12l[?25hhi meaning   guibg=blue
[?25lsome text[?12l[?25h[?25l:[?12l[?25hhi beginword guibg=green
[?25l[?12l[?25h[?25l:[?12l[?25hhi endword   guibg=red
[?25leeeeee[?12l[?25h[?25l:[?12l[?25hredraw!
[?25leeeeee>--->-;>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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),1)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l                                        
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                + [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: Screenattributes for comment"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 6: Screenattributes for comment    [?12l[?25h[?25l:[?12l[?25hcall append('$', ' /*^I^I and some more */')
[?25l /*>>- and some more */                 [?12l[?25h[?25l:[?12l[?25hexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25leeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?12l[?25h[?25l:[?12l[?25hsyntax on
[?25lbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?12l[?25h[?25l:[?12l[?25hhi SpecialKey term=underline ctermfg=red guifg=red
[?25l▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25lbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt0
[?25l /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['107']
[?12l[?25h[?25l:let attr += ['107']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:[?12l[?25hcall append('$', ['ScreenAttributes for test6:'])
[?25lScreenAttributes for test6:¶            [?12l[?25h[?25l:[?12l[?25hif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l
:  [?12l[?25h:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Not all attributes are different")

[?25l:  [?12l[?25h:endif
[?25l/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak selection=exclusive
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set linebreak with visual block [?12l[?25h[?25llong line:ˑ¶                            [?12l[?25h[?25l¶                                
¶                            
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?12l[?25h[?25l
foobar foobar TARGET¶               [?12l[?25h[?25lÃ' at end¶[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx' at end¶[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=[]
[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l /*▕———▕—————— 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
¶                                       [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25hset list nolinebreak cc=3
[?25l*
Scr
Att
Tesn 
a b
a b[?12l[?25h[?25l:[?12l[?25hsign define foo text=^+
[?25l[?12l[?25h[?25l:[?12l[?25hsign place 1 name=foo line=50 buffer=2
[?25l   /*▕———▕—————— 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  +[?12l[?25h[?25l:[?12l[?25hnorm! 2kztj
[?25l  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?12l[?25h[?25l:[?12l[?25hlet line1=line('.')
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['92']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hlet line2=line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=attr
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['92']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l  ¶ |
+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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),3)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l3 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¶               [?12l[?25h[?25l:[?12l[?25h" expected: attr[2] is different because of colorcolumn
[?25l[?12l[?25h[?25l:[?12l[?25hif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l
:  [?12l[?25h:   call append('$', "Screen attributes are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Screen attributes are the same!")

[?25l:  [?12l[?25h:endif
[?25l  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 57 lines, 1882 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.oout
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lSome tests for buffer-local autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25he xx
[?25l"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !del test.out.*

[?25l:  [?12l[?25h: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !rm -f test.out

[?25l:!rm -f test.out[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25he somefile           " here, autocommand for xx shall write test.out 
[?25l:!echo buffer-local autommand in xx>> test.out

[?12l[?25h[?25l"somefile" [New File]

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h                     " but autocommand shall not apply to buffer named <buffer

>[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?12l[?25h[?25l:[?12l[?25he xx                 " nothing shall be written
[?25l"xx" [New File][?12l[?25h[?25l:[?12l[?25he somefile           " nothing shall be written
[?25l"somefile" [New File][?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
:  [?12l[?25h: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:endif
[?25l:"
:if has("unix")
:let $CDIR = "."
/CDIR[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:let $CDIR = "."

[?25l:  [?12l[?25h/CDIR

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:if has("amiga")

[?25l:    [?12l[?25h:let $TDIR = "/testdir"

[?25l:    [?12l[?25h:else

[?25l:    [?12l[?25h:let $TDIR = "."

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h/TDIR

[?25l:  [?12l[?25h:endif
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?12l[?25h[?25l:[?12l[?25h" file is modified. It can be occurred when executing the following command
[?25l[?12l[?25h[?25l:[?12l[?25h" directly on Windows without fixing the 'fileformat':
[?25l[?12l[?25h[?25l:[?12l[?25h"  > nmake -f Make_dos.mak test17.out
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 135 lines, 2431 characters written[?12l[?25h[?25l
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/./test17a.in" 3 lines, 88 c

haracters

Press ENTER or type command to continue[?12l[?25h[?25lThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 3 lines, 88 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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"^[:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' without \zs or \ze
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.a")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he! Xdir1/dir2/foo.a
[?25l"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l#include   "bar.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.a
[?25l"Xdir1/dir2/bar.a" [New File][?12l[?25h[?25l#include      "baz.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.a
[?25l"Xdir1/dir2/baz.a" [New File][?12l[?25h[?25l#include"foo.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.a
[?25l"Xbase.a" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l#include    <foo.a>[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.a" [New File] 1 line, 20 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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()'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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][?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.b")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l: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][?12l[?25h[?25l:[?12l[?25hfunction! DotsToSlashes()
[?25l
:  [?12l[?25h:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l:  [?12l[?25h:endfunction
[?25l:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?12l[?25h[?25l:[?12l[?25hlet &includeexpr='DotsToSlashes()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.b
[?25l"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   /bar/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.b
[?25l"Xdir1/dir2/bar.b" [New File][?12l[?25h[?25l%inc      /baz/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.b
[?25l"Xdir1/dir2/baz.b" [New File][?12l[?25h[?25l%inc/foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.b
[?25l"Xbase.b" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    /foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.b" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and no \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.c")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hfunction! StripNewlineChar()
[?25l
:  [?12l[?25h:  if v:fname =~ '\n$'

[?25l:    [?12l[?25h:    return v:fname[:-2]

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  return v:fname

[?25l:  [?12l[?25h:endfunction
[?25l:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='StripNewlineChar()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.c
[?25l"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   bar.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.c
[?25l"Xdir1/dir2/bar.c" [New File][?12l[?25h[?25l%inc      baz.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.c
[?25l"Xdir1/dir2/baz.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/FALSE.c
[?25l"Xdir1/dir2/FALSE.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.c
[?25l"Xbase.c" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    FALSE.c foo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l:[?12l[?25h" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?12l[?25h[?25l:[?12l[?25he test.out
[?25l"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)[?12l[?25h[?25l:[?12l[?25h%s#\\#/#g
[?25lE486: Pattern not found: \\[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 33 lines, 655 characters written[?12l[?25h[?25l:[?12l[?25hq
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for a lot of variations of the 'fileformats' option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" first write three test files, one in each format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=
[?25l[?12l[?25h[?25l:[?12l[?25h/^unix/;/eof/-1w! XXUnix
[?25l"XXUnix" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^dos/;/eof/-1w! XXDos
[?25l"XXDos" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25hset bin noeol
[?25l[?12l[?25h[?25l:[?12l[?25h$w! XXMac
[?25l"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?12l[?25h[?25l
noeol[?12l[?25h[?25l
:[?12l[?25h$w! XXEol
[?25l"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?12l[?25h[?25l:[?12l[?25hset nobin eol
[?25l[?12l[?25h[?25l:[?12l[?25henew!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l3 buffers wiped out[?12l[?25h[?25l:[?12l[?25h" create mixed format files
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !copy XXUnix,XXDos XXUxDs.

[?25l:  [?12l[?25h: !copy XXUnix,XXMac XXUxMac.

[?25l:  [?12l[?25h: !copy XXDos,XXMac  XXDosMac.

[?25l:  [?12l[?25h: !copy XXMac,XXEol  XXMacEol.

[?25l:  [?12l[?25h: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l:  [?12l[?25h:elseif has("win32")

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos XXUxDs

[?25l:  [?12l[?25h: !copy /b XXUnix+XXMac XXUxMac

[?25l:  [?12l[?25h: !copy /b XXDos+XXMac XXDosMac

[?25l:  [?12l[?25h: !copy /b XXMac+XXEol XXMacEol

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !cat XXUnix XXDos >XXUxDs

[?25l:!cat XXUnix XXDos >XXUxDs[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXMac >XXUxMac

[?25l:!cat XXUnix XXMac >XXUxMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXDos XXMac >XXDosMac

[?25l:!cat XXDos XXMac >XXDosMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXMac XXEol >XXMacEol

[?25l:!cat XXMac XXEol >XXMacEol[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l:!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25hendif
[?25l:[?12l[?25h"
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' empty
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" 2 lines, 10 charactersdos^M
dos^M[?12l[?25h[?25l:[?12l[?25hw! XXtt01
[?25l"XXtt01" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt02
[?25l"XXtt02" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=dos
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt11
[?25l"XXtt11" [New File][dos format] 2 lines, 12 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [dos format] 2 lines, 10 charactersdosdos[?12l[?25h[?25l:[?12l[?25hw! XXtt12
[?25l"XXtt12" [New File][dos format] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt13
[?25l"XXtt13" [New File][dos format] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=mac
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt21
[?25l"XXtt21" [New File][mac format] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?12l[?25h[?25l:[?12l[?25hw! XXtt22
[?25l"XXtt22" [New File][mac format] 3 lines, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt23
[?25l"XXtt23" [New File][mac format] 2 lines, 8 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l^Jdos
^Jeof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to one format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt31
[?25l"XXtt31" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt32
[?25l"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt33
[?25l"XXtt33" [New File][mac format] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to two formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt41
[?25l"XXtt41" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt42
[?25l"XXtt42" [New File] 3 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt43
[?25l"XXtt43" [New File][dos format] 3 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt51
[?25l"XXtt51" [New File] 4 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt52
[?25l"XXtt52" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt53
[?25l"XXtt53" [New File][mac format] 4 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt54
[?25l"XXtt54" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt61
[?25l"XXtt61" [New File][dos format] 4 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:dos[?12l[?25h[?25l:[?12l[?25hw! XXtt62
[?25l"XXtt62" [New File][dos format] 4 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt63
[?25l"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25he! XXMacEol
[?25l"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt64
[?25l"XXtt64" [New File][mac format] 4 lines, 26 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXMacEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to three formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt71
[?25l"XXtt71" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,dos,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt72
[?25l"XXtt72" [New File] 2 lines, 24 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,dos,unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt81
[?25l"XXtt81" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lmac,dos,unix:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt82
[?25l"XXtt82" [New File][mac format] 2 lines, 23 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h" try with 'binary' set
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt91
[?25l"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt92
[?25l"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt93
[?25l"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix nobin
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXtt01
[?25l"XXtt01" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt02
[?25l"XXtt02" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt11
[?25l"XXtt11" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt12
[?25l"XXtt12" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt13
[?25l"XXtt13" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt21
[?25l"XXtt21" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt22
[?25l"XXtt22" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt23
[?25l"XXtt23" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt31
[?25l"XXtt31" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt32
[?25l"XXtt32" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt33
[?25l"XXtt33" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt41
[?25l"XXtt41" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt42
[?25l"XXtt42" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt43
[?25l"XXtt43" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt51
[?25l"XXtt51" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt52
[?25l"XXtt52" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt53
[?25l"XXtt53" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt54
[?25l"XXtt54" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt61
[?25l"XXtt61" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt62
[?25l"XXtt62" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt63
[?25l"XXtt63" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt64
[?25l"XXtt64" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt71
[?25l"XXtt71" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt72
[?25l"XXtt72" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt81
[?25l"XXtt81" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt82
[?25l"XXtt82" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt91
[?25l"XXtt91" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt92
[?25l"XXtt92" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt93
[?25l"XXtt93" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results.
[?25l[?12l[?25h[?25l:[?12l[?25h" Make fileformat of test.out the native fileformat.
[?25l[?12l[?25h[?25l:[?12l[?25h" Add a newline at the end.
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25h$r XXtt01
[?25l"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt02
[?25l"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?12l[?25h
[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXtt11
[?25l"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt12
[?25l"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt13
[?25l"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?12l[?25h
[?25l
2[?12l[?25h[?25l:[?12l[?25h$r XXtt21
[?25l"XXtt21" 3 lines, 15 charactersunixunix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt22
[?25l"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt23
[?25l"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?12l[?25h[?25l
3[?12l[?25h[?25l
:[?12l[?25h$r XXtt31
[?25l"XXtt31" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt32
[?25l"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt33
[?25l"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
4[?12l[?25h[?25l
:[?12l[?25h$r XXtt41
[?25l"XXtt41" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt42
[?25l"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt43
[?25l"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
5[?12l[?25h[?25l
:[?12l[?25h$r XXtt51
[?25l"XXtt51" 5 lines, 24 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt52
[?25l"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt53
[?25l"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt54
[?25l"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
6[?12l[?25h[?25l
:[?12l[?25h$r XXtt61
[?25l"XXtt61" 5 lines, 26 characters
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt62
[?25l"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt63
[?25l"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt64
[?25l"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?12l[?25h[?25l
7[?12l[?25h[?25l
:[?12l[?25h$r XXtt71
[?25l"XXtt71" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt72
[?25l"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
8[?12l[?25h[?25l
:[?12l[?25h$r XXtt81
[?25l"XXtt81" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt82
[?25l"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?12l[?25h[?25l
9[?12l[?25h[?25l
:[?12l[?25h$r XXtt91
[?25l"XXtt91" 5 lines, 32 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt92
[?25l"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt93
[?25l"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
10[?12l[?25h[?25l
:[?12l[?25h$r XXUnix
[?25l"XXUnix" 2 lines, 10 characters
unix[?12l[?25h[?25l
:[?12l[?25hset nobinary ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 130 lines, 786 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for insert expansion[?12l[?25h[?25l/^STARTTEST
[?12l[?25h[?25l
:so small.vim[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l"Xtestfile" [New] 3L, 57C written[?12l[?25h[?25l:[?12l[?25hse cot=
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile"
run1 run2[+][?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h[?25l3[?12l[?25h
[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 115-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)
-- INSERTe --^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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3

run1 run2[?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h
[?25l:[?12l[?25hse cpt=.,w,i
[?25l[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)^ U-- Searching...
Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 57INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 57Addinge Whole line completion (^L^N^P) -- Searching...
Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=kXtestfile
[?25l[?12l[?25h[?25l:[?12l[?25hw Xtest11.one
[?25l"Xtest11.one" [New] 9L, 104C writtenXtest11.one+   [?12l[?25h[?25l:[?12l[?25hw Xtest11.two
[?25l"Xtest11.two" [New] 9L, 104C written[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?12l[?25h [?25l-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?12l[?25h[?25l-- INSERT --Xtest11
[?12l[?25h[?25l-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25h" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?12l[?25h[?25l:[?12l[?25h" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 4.INSERTa -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 445.
Make_all.mak
run1 run2d[?12l[?25h [?25l-- INSERT --[?12l[?25h[?25l
run1 run2~                                                                               [?12l[?25h
[?25l:[?12l[?25hse cpt=w
[?25l[?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=u nohid
[?25l[?12l[?25h[?25l

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only matchENDTEST
unless[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Definition completion (^D^N^P)^ U-- Searching...
Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching...
Scanning tags.pincluded file: Xtestfile
-- Keyword completion (^N^P) The only matchtest11file      36Gepeto/Tag/ asd
asd[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h
ru[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New] 15L, 175C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l:"
:" 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?12l[?25h[?25l:[?12l[?25hset maxmem=512 spell
[?25lvim

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[?12l[?25h[?25lasdTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25lChange "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): [?12l[?25h[?25l:[?12l[?25h"
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.latin1.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 151 lines, 3412 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.latin1.add
[?25lasdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?12l[?25h[?25l/[?12l[?25h^test2:
[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.latin1.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.latin1.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.latin1.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.latin1.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" NOSLITSUGS
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('8', '8')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Numbers
[?25lNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?12l[?25h[?25l:[?12l[?25hcall TestOne('9', '9')
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 289 lines, 3844 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?12l[?25h[?25l:[?12l[?25h" text is in latin1, the test text is utf-8.
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l:[?12l[?25hset enc=utf-8
[?25lTests 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[?12l[?25h[?25l:[?12l[?25hset fenc=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.utf-8.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 153 lines, 3426 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.utf-8.add
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?12l[?25h[?25l/[?12l[?25h^test2:
[?25ltomato 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 !![?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.utf-8.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.utf-8.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.utf-8.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.utf-8.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25laddstart
/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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 270 lines, 3685 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for undo file.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile': first a simple one-line change.
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset ul=100 undofile nomore
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --this is one line[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hs/one/ONE/
[?25lONE
[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 change; before #2  0 seconds agoone
[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', change in original file fails check
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 1L, 17CONE
[?12l[?25h[?25l:[?12l[?25hs/line/Line/
[?25lL
[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 1L, 17C written[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" TODO: this beeps
[?25l[?12l[?25h[?5h[?5l[?25lAlready at oldest change[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 17C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --one
twothreefourfivesixseveneightnineten[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 4L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 more line; before #7  1 seconds agoeight[?12l[?25h[?25l1 more line; before #6  1 seconds agoseven[?12l[?25h[?25l1 more line; before #5  1 seconds agosix[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 7L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that reading the undofiles when setting undofile works
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile ul=0
[?25l[?12l[?25h[?25l-- INSERT --six
u[?12l[?25hs[?25l[?12l[?25h[?25l1 line less; before #8  0 seconds ago
~                                                                               [?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile ul=100
[?25l[?12l[?25h[?25l1 more line; before #7  1 seconds agoeight[?12l[?25h[?25l1 more line; before #6  1 seconds agoseven[?12l[?25h[?25l1 more line; before #5  1 seconds agosix[?12l[?25h[?25l1 more line; before #4  1 seconds agofive[?12l[?25h[?25l1 more line; before #3  1 seconds agofour[?12l[?25h[?25l1 more line; before #2  1 seconds agothree[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 10L, 49C appended[?12l[?25h[?25l:[?12l[?25h" And now with encryption, cryptmethod=zip
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile cm=zip
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l-- INSERT --monday
tuesdaywednesdaythursdayfriday[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25lmonday
friday
~                                                                               [?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [crypted] 2L, 14C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l1 more line; before #11  1 seconds agothursday[?12l[?25h[?25l1 more line; before #10  1 seconds agowednesday[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 4L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25ljan
feb
bar apr[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #15  2 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #14  2 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #13  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish2 ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lEnter encryption key: [?12l[?25h*******

[?25lEnter same key again: [?12l[?25h*******

[?25ljan
feb[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish2] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?12l[?25h*******

[?25l"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #19  0 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #18  0 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #17  1 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Rename the undo file so that it gets cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: call rename("_un_Xtestfile", "Xtestundo")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: call rename(".Xtestfile.un~", "Xtestundo")

[?25l:  [?12l[?25h:endif
[?25ljan
feb
mar
apr[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01223456789abcdefghijklmnoparstuvwxyz0123456789"
: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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lInserts 10000 lines with text to fill the swap file with two levels of pointer[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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 linnecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appendd(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet linecount = 10000
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789[?12l[?25h[?25l:[?12l[?25hpreserve
[?25lFile preserved[?12l[?25h[?25l:[?12l[?25h" get the name of the swap file
[?25l[?12l[?25h[?25l:[?12l[?25hredir => swapname
[?25l[?12l[?25h[?25l:[?12l[?25hswapname
[?25l.Xtest.swp[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hlet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899a[?12l[?25h[?25l
999899a
999999a
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe! Xtest
[?25l[?12l[?25h[?25l:[?12l[?25hcall rename('Xswap', swapname)
[?25l[?12l[?25h[?25l:[?12l[?25hrecover Xtest
[?25lUsing 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[?12l[?25h[?25l:[?12l[?25hcall delete(swapname)
[?25l1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       199a
299a
399a
4 99a
5 99a
Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hcall append(0, 'recovery start')
[?25lrecovery start[+][?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name] [+]                                                                    Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hlet linedollar = line('$')
[?25l[?12l[?25h[?25l:[?12l[?25hif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hq!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'recovery end')
[?25lrecovery end[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New] 3L, 29C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for tag search with !_TAG_FILE_ENCODING.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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[?12l[?25h[?25l:[?12l[?25hif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l"Xtags1.txt" [New File] 2 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l"Xtags2.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l"Xtags3.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l"Xtags1" [New File] 2 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hcall setline('.', 'Results of test83')
[?25lResults of test83
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case1:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l[No Name]                                                                       Results of test83test83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=Xtags1
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abcdefghijklmnopqrs
[?25l"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case2:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags2
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag /.BC
[?25l"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case3:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags3
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abc50
[?25l"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 4 lines, 48 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l- Some tests for setting 'number' and 'relativenumber'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden nocp nu rnu viminfo+=nviminfo
[?25l 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 donee     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  [?12l[?25h[?25l:[?12l[?25hredir @a | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! xx
[?25l"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir @b | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! #
[?25l"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 donee     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[?12l[?25h[?25l:[?12l[?25h$put ='results:'
[?25l
1
 20
 19
 18
 17ee 
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?12l[?25h[?25l
:[?12l[?25h$put a
[?25l3 more lines21
 20ee 
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?12l[?25h[?25l:[?12l[?25h$put b
[?25l3 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @c | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @d | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setlocal must NOT reset the other global value'
[?25l
 79 :setlocal must NOT reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put c
[?25l 80 
 81   number[?12l[?25h[?25l
:[?12l[?25h$put d
[?25l 82 
 83   relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l: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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @e | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @f | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setglobal MUST reset the other global value'
[?25l
:setglobal MUST reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put e
[?25lnumber[?12l[?25h[?25l
:[?12l[?25h$put f
[?25lrelativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?12l[?25h[?25l:[?12l[?25hredir @g | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:$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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset nu
[?25l88    [?12l[?25h[?25l:[?12l[?25hredir @h | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':set MUST reset the other global value'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put g
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?12l[?25h[?25l
:[?12l[?25h$put h
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk[?12l[?25h[?25l:[?12l[?25h" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?12l[?25h[?25l:[?12l[?25h" get above src/
[?25l[?12l[?25h[?25l:[?12l[?25hif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l/<<PKGBUILDDIR>>[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?12l[?25h[?25l
:[?12l[?25h$put ='Testing findfile'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?12l[?25h[?25l
:[?12l[?25hset ssl
[?25l[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','src/test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =findfile('test19.in','testdir')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk/testdir[?12l[?25h[?25l:[?12l[?25h/^results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?12l[?25h[?25lExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest86.in

test1.oktest86.ok

test1.outtest86.out

test103.intest87.in

test103.oktest87.ok

test103.outtest87.out

test104.intest88.in

test104.oktest88.ok

test104.outtest88.out

test107.intest89.in

test107.oktest89.ok

test107.outtest89.out

test108.intest9.in

test108.oktest9.ok

test108.outtest9.out

test11.intest90.in

test11.oktest90.ok

test11.outtest90.out

test12.intest91.in

test12.oktest91.ok

test12.outtest91.out

test14.intest94.in

test14.oktest94.ok

test14.outtest94.out

test15.intest95.in

test15.oktest95.ok

test15.outtest95.out

test17.intest97.in

test17.oktest97.ok

test17.outtest97.out

test17a.intest98.in

test19.intest98.ok

test19.oktest98.out

test19.outtest99.in

test20.intest99.ok

test20.oktest99.out

test20.outtest_alot.vim

test22.intest_alot_latin.vim

test22.oktest_alot_utf8.vim

test22.outtest_arglist.res

test23.intest_arglist.vim

test23.oktest_assert.res

test23.outtest_assert.vim

test24.intest_assign.vim

test24.oktest_autochdir.res

test24.outtest_autochdir.vim

test25.intest_autocmd.vim

test25.oktest_autocmd_option.in

test25.outtest_autocmd_option.ok

test26.intest_autocmd_option.out

test26.oktest_autoformat_join.in

test26.outtest_autoformat_join.ok

test28.intest_autoformat_join.out

test28.oktest_backspace_opt.res

test28.outtest_backspace_opt.vim

test29.intest_breakindent.res

test29.oktest_breakindent.vim

test29.outtest_bufwintabinfo.res

test3.intest_bufwintabinfo.vim

test3.oktest_cdo.res

test3.outtest_cdo.vim

test30.intest_changelist.in

test30.oktest_changelist.ok

test30.outtest_changelist.out

test31.intest_channel.py

test31.oktest_channel.res

test31.outtest_channel.vim

test32.intest_channel_pipe.py

test32.oktest_charsearch.res

test32.outtest_charsearch.vim

test33.intest_close_count.in

test33.oktest_close_count.ok

test33.outtest_close_count.out

test34.intest_cmdline.vim

test34.oktest_command_count.vim

test34.outtest_comparators.in

test36.intest_comparators.ok

test36.oktest_comparators.out

test36.outtest_crypt.vim

test37.intest_cscope.vim

test37.oktest_cursor_func.vim

test37.outtest_delete.vim

test38.intest_diffmode.vim

test38.oktest_digraph.vim

test38.outtest_display.vim

test39.intest_erasebackword.in

test39.oktest_erasebackword.ok

test39.outtest_erasebackword.out

test4.intest_eval.in

test4.oktest_eval.ok

test4.outtest_eval.out

test40.intest_eval_func.vim

test40.oktest_ex_undo.vim

test40.outtest_execute_func.vim

test41.intest_expand.vim

test41.oktest_expand_dllpath.vim

test41.outtest_expr.vim

test42.intest_expr_utf8.vim

test42.oktest_farsi.vim

test42.outtest_feedkeys.vim

test43.intest_file_perm.vim

test43.oktest_fileformat.vim

test43.outtest_filter_cmd.vim

test44.intest_filter_map.vim

test44.oktest_fixeol.in

test44.outtest_fixeol.ok

test45.intest_fixeol.out

test45.oktest_float_func.vim

test45.outtest_fnameescape.vim

test48.intest_fnamemodify.vim

test48.oktest_fold.vim

test48.outtest_functions.vim

test49.intest_getcwd.in

test49.oktest_getcwd.ok

test49.outtest_getcwd.out

test49.vimtest_gf.vim

test5.intest_glob2regpat.vim

test5.oktest_gn.vim

test5.outtest_goto.vim

test50.intest_gui.vim

test50.oktest_hardcopy.vim

test51.intest_help_tagjump.vim

test51.oktest_hide.vim

test51.outtest_history.vim

test52.intest_hlsearch.vim

test52.oktest_increment.vim

test52.outtest_increment_dbcs.vim

test53.intest_insertcount.in

test53.oktest_insertcount.ok

test53.outtest_insertcount.out

test54.intest_job_fails.vim

test54.oktest_join.vim

test54.outtest_json.vim

test55.intest_jumps.vim

test55.oktest_lambda.vim

test55.outtest_langmap.vim

test56.intest_largefile.vim

test56.oktest_lispwords.vim

test56.outtest_listchars.in

test57.intest_listchars.ok

test57.oktest_listchars.out

test57.outtest_listlbr.in

test58.intest_listlbr.ok

test58.oktest_listlbr.out

test58.outtest_listlbr_utf8.in

test59.intest_listlbr_utf8.ok

test59.oktest_listlbr_utf8.out

test59.outtest_man.vim

test60.intest_mapping.vim

test60.oktest_marks.vim

test60.outtest_match.vim

test60.vimtest_matchadd_conceal.vim

test64.intest_matchadd_conceal_utf8.vim

test64.oktest_menu.vim

test64.outtest_messages.vim

test65.intest_mksession.vim

test65.oktest_mksession_utf8.vim

test65.outtest_modeline.vim

test66.intest_nested_function.vim

test66.oktest_netbeans.py

test66.outtest_netbeans.vim

test67.intest_normal.vim

test67.oktest_options.vim

test67.outtest_packadd.vim

test68.intest_partial.vim

test68.oktest_perl.vim

test68.outtest_popup.vim

test69.intest_profile.vim

test69.oktest_quickfix.vim

test69.outtest_regexp_latin.vim

test7.intest_regexp_utf8.vim

test7.oktest_reltime.vim

test7.outtest_ruby.vim

test70.intest_search.vim

test70.oktest_search_mbyte.in

test70.outtest_search_mbyte.ok

test72.intest_search_mbyte.out

test72.oktest_searchpos.vim

test72.outtest_set.vim

test73.intest_signs.vim

test73.oktest_smartindent.vim

test73.outtest_sort.vim

test75.intest_source.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_taglist.vim

test8.oktest_textobjects.vim

test8.outtest_timers.vim

test80.intest_true_false.vim

test80.oktest_undo.vim

test80.outtest_unlet.vim

test82.intest_usercommands.vim

test82.oktest_utf8.in

test82.outtest_utf8.ok

test83-tags2test_utf8.out

test83-tags3test_viminfo.vim

test83.intest_viml.vim

test83.oktest_visual.vim

test83.outtest_window_cmd.vim

test84.intest_window_id.vim

test84.oktest_wordcount.in

test84.outtest_wordcount.ok

test85.intest_wordcount.out

test85.oktest_writefile.vim

test85.out

: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
Xtestfile1 file1...Xtestfile1Xtestfile2 2:te 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_display.vim" 39 lines, 849 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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]                                                                  [?12l[?25h[?25l/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?12l[?25h[?25l
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_matchadd_conceal.vim" 289 lines, 9276 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vfe7iXM/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vBTj4th/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?12l[?25h[?25l:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?12l[?25h[?1l>[?1049lone
[?1049h[?1h=[?25l:.!sed -e 's/^/|    /'
[?12l[?25h[?25l:.!
:!echo one
[?1l>[?12l[?25h[?1049l
[No write since last change]
one

Press ENTER or type command to continue[?1049h[?1h=[?25l:.!!
[?12l[?25h
[?25lExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?12l[?25h[?25l7 lines filtered:.,$!./Xsed_format.sh
[?12l[?25h[?25l7 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/vEucdVs/11removed from /tmp/vEucdVs/11goood' added to /tmp/vEucdVs/11removed from /tmp/vEucdVs/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'[?1l>[?12l[?25h[?1049l
[No write since last change]
stdin not open for reading!

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25lExecuting 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]                                                                  [?12l[?25h[?25l[?12l[?25h[?25l:^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
[?1l>[?12l[?25h[?1049l
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lAlready only one window[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lExecuting 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[?1l>[?12l[?25h[?1049lloclistfoo:1:loclistfoo
[?1049h[?1h=
[?25lAlready 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '  66 their', '  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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l1: /<<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

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_compatible_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25lError detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=
[?25lExecuting Test_file_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l3 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l2 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l4 files to edit
[?1049h[?1h=
[?25lExecuting Test_help_arg()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 1 line, 10 characters[?12;25h[?12l[?25h"Xtestout" [New File] 1 line, 10 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=
[?25lExecuting Test_startup_script()[?1000h

Executing Test_startuptime()[?1l>[?12l[?25h[?1049l[?1000l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1000h[?1049h[?1h=[?25l"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?1000l
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 2 lines, 24 characters[?12;25h[?12l[?25h"Xtestout" [New File] 2 lines, 24 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=[?25l"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?12l[?25h[?25l1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?12l[?25h

[?25lExecuting 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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  2019/06/23 12:06:04

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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viml.vim" 1315 lines, 31693 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/vLs4i5h/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vLs4i5h/0" 13L, 248C written
"test_viml.vim" 1315L, 31693C
   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/vLs4i5h/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vLs4i5h/1" 14L, 281C written
"test_viml.vim" 1315L, 31693C
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/vLs4i5h/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vLs4i5h/2" 17L, 445C written
"test_viml.vim" 1315L, 31693C
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
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_utf8.vim" 11 lines, 440 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot.vim" 49 lines, 1258 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_OptionSet_modeline()

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" 49L, 1258C

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 Fwordfile1

cmd1

  2 Fwordfile2

cmd2

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_modeline.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             tBufReadPre              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      
Octobere        
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      
Octobere        
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      
Octobere        
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()[?12l[?25h[?25lExecuting Test_cursorhold_insert_ctrl_x()[?12l[?25h[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_empty_doau()

No matching autocommands

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" 49L, 1258C

Executing Test_func_sandbox()

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_glob2regpat_invalid()

Executing Test_glob2regpat_valid()

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] 8784L, 372352Cline 7690 of 8784 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1324 of 8784 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

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()[?12l[?25h

[?25l1[?12l[?25h
[?25l2[?12l[?25h
[?25l3[?12l[?25h
[?25l4[?12l[?25h
[?25l5[?12l[?25h
[?25l6[?12l[?25h
[?25l7[?12l[?25h
[?25l8[?12l[?25h
[?25lExecuting 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_modeline_fails_always()
"Xmodeline_fails_backupdir" 2L, 41C

"Xmodeline_fails_cdpath" 2L, 38C

"Xmodeline_fails_charconvert" 2L, 43C

"Xmodeline_fails_completefunc" 2L, 44C

"Xmodeline_fails_cscopeprg" 2L, 41C

"Xmodeline_fails_diffexpr" 2L, 40C

"Xmodeline_fails_directory" 2L, 41C

"Xmodeline_fails_equalprg" 2L, 40C

"Xmodeline_fails_errorfile" 2L, 41C

"Xmodeline_fails_exrc" 2L, 36C

"Xmodeline_fails_formatprg" 2L, 41C

"Xmodeline_fails_fsync" 2L, 37C

"Xmodeline_fails_grepprg" 2L, 39C

"Xmodeline_fails_helpfile" 2L, 40C

"Xmodeline_fails_imactivatefunc" 2L, 46C

"Xmodeline_fails_imstatusfunc" 2L, 44C

"Xmodeline_fails_keywordprg" 2L, 42C

"Xmodeline_fails_langmap" 2L, 39C

"Xmodeline_fails_makeef" 2L, 38C

"Xmodeline_fails_makeprg" 2L, 39C

"Xmodeline_fails_mkspellmem" 2L, 42C

"Xmodeline_fails_modelineexpr" 2L, 32C

"Xmodeline_fails_omnifunc" 2L, 40C

"Xmodeline_fails_operatorfunc" 2L, 44C

"Xmodeline_fails_printdevice" 2L, 43C

"Xmodeline_fails_patchexpr" 2L, 41C

"Xmodeline_fails_printexpr" 2L, 41C

"Xmodeline_fails_runtimepath" 2L, 43C

"Xmodeline_fails_secure" 2L, 38C

"Xmodeline_fails_shell" 2L, 37C

"Xmodeline_fails_shellcmdflag" 2L, 44C

"Xmodeline_fails_shellpipe" 2L, 41C

"Xmodeline_fails_shellquote" 2L, 42C

"Xmodeline_fails_shellredir" 2L, 42C

"Xmodeline_fails_shellxquote" 2L, 43C

"Xmodeline_fails_spellfile" 2L, 41C

"Xmodeline_fails_spellsuggest" 2L, 44C

"Xmodeline_fails_titleold" 2L, 40C

"Xmodeline_fails_viewdir" 2L, 39C

"Xmodeline_fails_viminfo" 2L, 39C

"Xmodeline_fails_undodir" 2L, 39C

"Xmodeline_fails_t_AB" 2L, 36C

"Xmodeline_fails_t_ce" 2L, 36C

"Xmodeline_fails_t_sr" 2L, 36C

"Xmodeline_fails_t_8b" 2L, 36C

Executing Test_modeline_fails_modelineexpr()
"Xmodeline_fails_balloonexpr" 2L, 43C

"Xmodeline_fails_foldexpr" 2L, 40C

"Xmodeline_fails_foldtext" 2L, 40C

"Xmodeline_fails_formatexpr" 2L, 42C

"Xmodeline_fails_guitablabel" 2L, 43C

"Xmodeline_fails_iconstring" 2L, 42C

"Xmodeline_fails_includeexpr" 2L, 43C

"Xmodeline_fails_indentexpr" 2L, 42C

"Xmodeline_fails_rulerformat" 2L, 43C

"Xmodeline_fails_statusline" 2L, 42C

"Xmodeline_fails_tabline" 2L, 39C

"Xmodeline_fails_titlestring" 2L, 43C

Executing Test_modeline_filetype()
"Xmodeline_filetype" 2L, 24C

Executing Test_modeline_filetype_fails()
"Xmodeline_fails_filetype" 2L, 31C

Executing Test_modeline_invalid()
"Xmodeline" 2L, 13C

Executing Test_modeline_keymap()
"Xmodeline_keymap" 2L, 32C

Executing Test_modeline_keymap_fails()
"Xmodeline_fails_keymap" 2L, 35C

Executing Test_modeline_syntax()
"Xmodeline_syntax" 2L, 25C

Executing Test_modeline_syntax_fails()
"Xmodeline_fails_syntax" 2L, 32C

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 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
[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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_repeat_many()[?12l[?25h

[?25lExecuting Test_repeat_three()[?12l[?25h

[?25lExecuting Test_retain_partial()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_stop_in_callback()[?12l[?25h

[?25lExecuting 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[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_dir_delete()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting 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()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=
[?25l"colored" [New File]

Executing Test_trunc()

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()[?12l[?25h[?25ltilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 256 tests"messages" 584L, 15447C

"messages" 845L, 23978C written

[?1l>[?12l[?25h[?1049l

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_OptionSet_modeline()
    Skipped
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_empty_doau()
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_sandbox()
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_glob2regpat_invalid()
Executing Test_glob2regpat_valid()
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_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_modeline_fails_always()
Executing Test_modeline_fails_modelineexpr()
Executing Test_modeline_filetype()
Executing Test_modeline_filetype_fails()
Executing Test_modeline_invalid()
Executing Test_modeline_keymap()
Executing Test_modeline_keymap_fails()
Executing Test_modeline_syntax()
Executing Test_modeline_syntax_fails()
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_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 256 tests
SKIPPED Test_OptionSet_modeline(): test_override() missing

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-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
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-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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" If columns or lines are too small, create wrongtermsize.
[?25l[?12l[?25h[?25l:[?12l[?25h" (Some tests will fail. When columns and/or lines are small)
[?25l[?12l[?25h[?25l:[?12l[?25hif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l/* vim: set cin ts=4 sw=4 : */[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo modeline
[?25l[?12l[?25h[?25l:[?12l[?25hedit                " read modeline
[?25l"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?12l[?25h[?25l/[?12l[?25hstart of AUTO
[?25l[?12l[?25h[?25l/[?12l[?25hend of AUTO
[?25l956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?12l[?25h[?25l/^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
 */[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset tw=0 wm=60 columns=80 noai fo=croq
[?25l}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
 */[?12l[?25h[?25l/[?12l[?25hserious/e
[?25l[?12l[?25h[?25l


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

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

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

/[?12l[?25htesting2
[?25lif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?12l[?25h [?25l
/^STARTTEST
}

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

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


[?25l8 lines to indent...
9indented [?12l[?25h
   [?25l/^STARTTEST
n();
}

STARTTEST[?12l[?25h[?25l
:set cino={s,e-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,e-s
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
7 lines to indent...
8indented     {[?12l[?25h[?25l
if ( k() )[?12l[?25h[?25l
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

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

STARTTEST[?12l[?25h[?25l
:set cino= com=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino= com=
[?25l[?12l[?25h[?25l/[?12l[?25hcomment
[?25la()
{
label1:/* hmm */// comment[?12l[?25h[?25l
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set comments& comments^=s:/*,m:**,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/simple
=5j[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset comments& comments^=s:/*,m:**,ex:*/
[?25l[?12l[?25h[?25l/[?12l[?25hsimple
[?25l/*
  * A simple comment[?12l[?25h[?25l
5 lines to indent...
6indented * A simple comment[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
/*
** A different comment
*/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[?25l
69 lines to indent...
50
7indented [?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
/^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};[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l:[?12l[?25hset cino+=l1
[?25l[?12l[?25h[?25l
[?12l[?25h

[?25l22 lines to indent...
23indented [?12l[?25h
[?25l/^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";
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l
[?12l[?25h

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

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

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

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


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


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


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


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


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


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

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


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

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

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

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

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

STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l16 lines to indent...
17indented [?12l[?25h[?25l/^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',[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1,+2
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?12l[?25h[?25l/^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[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin cino&
[?25l[?12l[?25h[?25l/[?12l[?25hstart of define
[?25l[?12l[?25h[?25l/[?12l[?25hend of define
[?25l11 lines to indent...
12indented     BBB\
    CCC[?12l[?25h[?25l/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l226 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 */[?12l[?25h[?25l:[?12l[?25h1;/start of AUTO/,$wq! test.out
[?25l"test.out" [New] 2096L, 20188C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 sset
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes current buffer on BufEnter event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter Xxx brew
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25lstartstart
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25h.,/end of/w! Xxx   " write test file Xxx
[?25l"Xxx" [New] 7L, 124C written[?12l[?25h[?25l:[?12l[?25hset ai modeline modelines=3
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xxx             " split to Xxx, autocmd will do :brew
[?25l"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 ssetGo# 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[?12l[?25h[?25l: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[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --        this should be auto-indented[+][+][?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l:[?12l[?25h                   " Append text with autoindent to this file
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufEnter Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hbuf Xxx            " go to Xxx, no autocmd anymore
[?25l"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~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxxt          [?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --this should be in column 1[+][?12l[?25h[?25l:[?12l[?25hwq " append text without autoindent to Xxx
[?25l"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 ssetGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25hr Xxx             " include Xxx in the current file
[?25l"Xxx" 8L, 151C
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25hset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l:au! BufEnter Xxx[?12l[?25h[?25lvim: 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
[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --
# def[?12l[?25h[?25lINSERTt --defo[?12l[?25hd[?25l[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --[?12l[?25h[?25l
-- INSERTt --def:[?12l[?25hd[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l:[?12l[?25h?startstart?,$w! test.out
[?25l"test.out" [New] 20L, 330C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that deletes the current buffer on BufLeave event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave Xxx bwipe
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx               " write test file Xxx
[?25l"Xxx" [New File] 7 lines, 124 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx                         " split to Xxx
[?25l"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                                                                        [?12l[?25h[?25l:[?12l[?25hbwipe                          " delete buffer Xxx, now we're back here
[?25lTest 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[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?12l[?25h[?25l
?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l
this is some more text[?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25h                               " Append some text to this file
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out           " Write current file contents
[?25l"test.out" [New File] 8 lines, 147 characters written[?12l[?25h[?25l:[?12l[?25hbwipe test.out                 " delete alternate buffer
[?25l[?12l[?25h[?25l:[?12l[?25hau bufleave test5.in bwipe
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!                         " delete current buffer, get an empty one
[?25lError 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lthis is another test line[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 26 characters appended[?12l[?25h[?25l:[?12l[?25h                               " append an extra line to the output file
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes the buffer list, when doing ":ball".[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1   " write test file Xxx1
[?25l"Xxx1" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx1
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2    " write test file Xxx2
[?25l"Xxx2" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx2
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3    " write test file Xxx3
[?25l"Xxx3" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx3
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 bwipe
[?25l[?12l[?25h[?25l4[?12l[?25h[?25l:[?12l[?25hball                 " open window for all args, close Xxx2
[?25l"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

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

Press ENTER or type command to continue[?12l[?25h[?25l: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                                                                            [?12l[?25h
test7.in [+]                                                                     Xxx1                                                                            [?25l:[?12l[?25hw >>test.out        " Append contents of second window (Xxx1)
[?25l"test.out" 4 lines, 77 characters appended[?12l[?25htest7.in [+]                                                                    Xxx1                                                                             [?25l:[?12l[?25h/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25lsearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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('$')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

E203: Autocommands deleted or unloaded buffer to be written

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

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

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

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! BufWritePre
[?25lstart of Xxx1test
end of Xxx[?12l[?25h[?25l:[?12l[?25hfunc CloseAll()
[?25l
:  [?12l[?25h  let i = 0

[?25l:  [?12l[?25h  while i <= bufnr('$')

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

[?25l:      [?12l[?25h      exe  i . "bunload"

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let i += 1

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfunc WriteToOut()
[?25l
:  [?12l[?25h  edit! test.out

[?25l:  [?12l[?25h  $put ='VimLeave done'

[?25l:  [?12l[?25h  write

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               [?12l[?25h[?25l:[?12l[?25hset viminfo='100,nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufUnload * call CloseAll()
[?25l[?12l[?25h[?25l:[?12l[?25hau VimLeave * call WriteToOut()
[?25l[?12l[?25h[?25l:[?12l[?25he small.vim
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp mbyte.vim
[?25l"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?12l[?25h[?25l:[?12l[?25hq
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Bufleave autocommand that deletes the buffer we are about to edit.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave test9.in bwipe yy
[?25l[?12l[?25h[?25l:[?12l[?25he yy
[?25lE143: Autocommands unexpectedly deleted new buffer yy[?12l[?25h[?25l:[?12l[?25h/^start of/,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 2 lines, 42 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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

"
[?25l:  [?12l[?25h:else

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

[?25l:  [?12l[?25h:endif
[?25l:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?12l[?25h[?25l:[?12l[?25hexe "normal " . tt
[?25lABC !a^Og^G8[?12l[?25h[?25l:[?12l[?25hunlet tt
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset vb
[?25l[?12l[?25h[?25l/[?12l[?25h^Piece
[?25l[?12l[?25h[?25l{A[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25ltt m2 {[?12l[?25h[?25l{B[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25lt2;} e2tt m3 {[?12l[?25h[?25l{C[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l{DC[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{EA[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{F[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}G e1[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h
[?25lif (x){t3;}} e3[?12l[?25h[?25l}H e3[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l
}[?12l[?25h[?5h[?5l[?25l}I[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}JH e3[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 8 characters appended[?12l[?25h[?25l}K e2[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l{LF[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^foobar
[?25lfoobar[?12l[?25h[?25l
:[?12l[?25hlet startline = line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('foobar', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25hcall search('^$', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('^$', 'bc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l/[?12l[?25htwo
[?25lsubstitute foo asdf

one two[?12l[?25h[?25l
:[?12l[?25hcall search('.', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hs/foo/bar/
[?25lbar
[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25lsearch()
0
1
1
two
foo[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hkeeppatterns s/asdf/xyz/
[?25lxyz[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25l
^substitute[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l
/[?12l[?25hbar /e
[?25l[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l

:[?12l[?25hkeeppatterns /xyz
[?25l[?12l[?25h[?25l
/bar /exyz[?12l[?25h[?25l:[?12l[?25h/^search()/,$w >>test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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


3 more lines
aaaaaa3 more lines[?12l[?25h[?25l
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?12l[?25h
[?25l:[?12l[?25h?test for :left?,$w! test.out
[?25l"test.out"[New] 111L, 2304C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset smarttab expandtab ts=8 sw=4
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lSTARTTEST
: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
[?12l[?25h[?25l
/[?12l[?25hsome
[?25lstart textsome test text[?12l[?25h[?25l    ome test text[?12l[?25h[?25l
:[?12l[?25hset noexpandtab
[?25l[?12l[?25h[?25l/[?12l[?25hother
[?25ltest textother test text[?12l[?25h[?25l    ther test text[?12l[?25h[?25l
a cde[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs and then backspacing to undo it
[?25l[?12l[?25h
    [?25l[?12l[?25h[?25l
f ghi[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs
[?25l[?12l[?25h
    [?25l     hi[?12l[?25h[?25l
test text[?12l[?25h[?25l
:[?12l[?25h" Test that copyindent works with expandtab set
[?25l[?12l[?25h[?25l:[?12l[?25hset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?12l[?25h[?25l{x[?12l[?25h[?25l
:[?12l[?25hset nosol
[?25l[?12l[?25h[?25l/[?12l[?25hSecond line/
[?25l
Second line beginning with whitespace[?12l[?25h[?25l
  with whitespace[?12l[?25h[?25l
:[?12l[?25h?^start?,$w! test.out
[?25l"test.out" [New File] 10 lines, 121 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Ox^[jAy^[kdd[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25ly
Ox^[jAy^[kdd[?12l[?25h[?25l

2 changes; before #1  0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l1 line less; before #1  0 seconds ago    [?12l[?25h[?25l:[?12l[?25hquit!
[?25l: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[?12l[?25h[?25l[?12l[?25h[?25l
Ox^[jAy^[kdd[?12l[?25h[?25l
/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l/[?12l[?25h456$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25l4
234[?12l[?25h[?25l5
345[?12l[?25h[?25l[?12l[?25h[?25lstart here56
234start here67
345start here78[?12l[?25h[?25l:[?12l[?25h/56$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for file with some lines ending in CTRL-M, some not^M[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for regexp with backslash and other special characters inside [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[\t\]]
[?25l[?12l[?25h[?25ltext test tex[?12l[?25h[?25l/[?12l[?25h[]y]
[?25l[?12l[?25h[?25ltest text[?12l[?25h[?25l/[?12l[?25h[\]]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[y^]
[?25l[?12l[?25h[?25lst text[?12l[?25h[?25l/[?12l[?25h[$y]
[?25l[?12l[?25h[?25lxt test text[?12l[?25h[?25l/[?12l[?25h[\x61]
[?25l[?12l[?25h[?25lext test text  x61[?12l[?25h[?25l/[?12l[?25h[\x60-\x64]
[?25l[?12l[?25h[?25lext test text  x60-x64[?12l[?25h
[?25l/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text  x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text  o143[?12l[?25h[?25l text test text  o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text  o140-o144[?12l[?25h[?25lt text test text  o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text  o41 7[?12l[?25h[?25l text test text  o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text  \%x42[?12l[?25h[?25lest text  \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text  \%o103[?12l[?25h[?25lst text  \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text  [\x00][?12l[?25h[?25ltest text  [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext  [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text  [\x00-\x10][?12l[?25h[?25l
test \xyztext test text  [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text  [\x-z][?12l[?25h[?25l
test text tev\uyst text  [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text  [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//
[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
 [?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
 [?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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")[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h:  if has("ebcdic")

[?25l:    [?12l[?25h:    execute "normal o" . i . "\047"

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    execute "normal o" . i . "\033"

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i % 2

[?25l:    [?12l[?25h:    normal Ax^^[

[?25l:    [?12l[?25h:    if i == 9

[?25l:      [?12l[?25h:      break

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if i == 5

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      let j = 9

[?25l:      [?12l[?25h:      while j > 0

[?25l:[?12l[?25h:        if has("ebcdic")

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x27"

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x1b"

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        let j = j - 1

[?25l:[?12l[?25h:      endwhile

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i == 9

[?25l:    [?12l[?25h:    if has("ebcdic")

[?25l:      [?12l[?25h:      execute "normal Az\047"

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      execute "normal Az\033"

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endwhile
[?25l:  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[?12l[?25h[?25l
:[?12l[?25hunlet i j
[?25l[?12l[?25h[?25l:[?12l[?25h't,$w! test.out
[?25l"test.out" [New File] 10 lines, 159 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for sourcing a file with CTRL-V's at the end of the line[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25l
sd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25hd  [?25lsd^[[?12l[?25h^[  [?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l
:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 cpoptionss+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for joining lines and marks in them[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j
[?25l[?12l[?25h[?25l/[?12l[?25hfirstline/
[?25l[?12l[?25h
[?25l/[?12l[?25h^STARTTEST/-1
[?25l+-1
37 fewer linesSTARTTEST
/^{/+1[?12l[?25h[?25lmore linesasdfasdf.
asdf[?12l[?25h[?25lasdf
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop!
ert[?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?12l[?25h  er[?25lt  e[?12l[?25h
zx cv[?25len[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv[?25l
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions-=j nojoinspaces compatible
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l.  as dfg? hjkl iop! ert[?12l[?25h[?25lt  a[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l
/[?12l[?25hSTARTTEST/-2
[?25l+-2
4 fewer lines[?12l[?25h[?25l/^STARTTEST

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

STARTTEST[?12l[?25h[?25l
:" Test with backspace set to the non-compatible setting
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" Test with backspace set to the non-compatible setting
[?25l[?12l[?25h[?25l/[?12l[?25h^\d\+ this
[?25l[?12l[?25h[?25l:[?12l[?25hset cp bs=2
[?25l[?12l[?25h[?25l[?12l[?25hd    [?25lvim2[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?25ld3[?12l[?25h[?25l:[?12l[?25hiunmap <c-u>
[?25l[?12l[?25h[?25l[?12l[?25h
[?25l:[?12l[?25h" Test with backspace set to the compatible setting
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace= visualbell
[?25l[?12l[?25h[?25lvim5[?12l[?25h[?5h[?5l[?5h[?5l[?25ld vim6[?12l[?25h6    [?25lzwei[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?5h[?5l[?5h[?5l[?25lvim7[?12l[?25h
[?25l:[?12l[?25hset compatible novisualbell
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTj3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code!^M// Make sure backspacing does not remove this comment leader.^[0i^HH^[
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?12l[?25h
[?25l/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?12l[?25h
[?25l:[?12l[?25h.,+8join
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?12l[?25h
[?25l/* 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?[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lShould the next comment leader be left alone?  Yes.


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


:[?12l[?25h.,+2join
[?25l/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?12l[?25h
[?25l/* Here the comment leader should be left intact. */ // And so should this one.[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();[?12l[?25h[?25l
[?12l[?25h[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;[?12l[?25h[?25l
[?12l[?25h[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+5join
[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25lSome code!
// Make sure backspacing does not remove this comment leader.[?12l[?25h
[?25l// Make sure backspacing does not remove this comment leader.
}[?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:?firstline?+1,$w! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l74 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 brackett) 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 liness. This comment should retain its comment leader.># Note that the last character of the ending comment leader (left angle brackett) 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 liness. This comment should retain its comment leader.

Some code!// Make sure backspacing does not remove this comment leader.
}[?12l[?25h[?25l:[?12l[?25h?firstline?+1,$w! test.out
[?25l"test.out" [New File] 97 lines, 3018 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for commands that close windows and/or buffers:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h
[?25l1[?12l[?25h[?25l:[?12l[?25h$w! Xtest1
[?25l"Xtest1" [New File] 1 line, 11 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h$w! Xtest2
[?25l"Xtest2" [New File] 1 line, 11 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h$w! Xtest3
[?25l"Xtest3" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hn! Xtest1 Xtest2
[?25l"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test for working :n when hidden set; write "testtext 2"
[?25l[?12l[?25h[?25l:[?12l[?25hn
[?25l"Xtest2" 1 line, 11 characters2[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25h" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hrew
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hrew
[?25l"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hsp
[?25lXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hn Xtest2 Xtest3
[?25l"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 [?12l[?25h[?25l:[?12l[?25hall
[?25l"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25lXtest1 [+]                                                                      Xtest2 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 2 2" twice
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l1 1[?12l[?25h[?25l:[?12l[?25hq!
[?25ltesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25hunhide
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hhide
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3"
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25ltesttext 3 3[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 1 line, 11 characters1[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3 3"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest3
[?25l"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 1"
[?25l[?12l[?25h[?25l3 3[?12l[?25h[?25l:[?12l[?25hclose!
[?25l1~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest4
[?25l"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?12l[?25h[?25l 4[+][?12l[?25h[?25l:[?12l[?25hall!
[?25l"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[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25ltesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":q!" and hidden buffer.
[?25l[?12l[?25h[?25l:[?12l[?25hbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp Xtest1
[?25l"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[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25lXtest1                                                                           test31.in                                                                       [?12l[?25h[?25l:[?12l[?25hbw!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[?12l[?25h[?25l:[?12l[?25hbot sp Xtest2
[?25l"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hbot sp Xtest3
[?25l"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hwincmd t
[?25lXtest1 [+]                                                                      Xtest3 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hhide
[?25ltesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hq!
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hq!
[?25lE37: No write since last change

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'lisp'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset lisp
[?25l[?12l[?25h[?25l/[?12l[?25h^(defun
[?25l[?12l[?25h[?25l22 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[?12l[?25h[?25l:[?12l[?25h/^(defun/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction Table(title, ...)
[?25l
:  [?12l[?25h:  let ret = a:title

[?25l:  [?12l[?25h:  let idx = 1

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

[?25l:    [?12l[?25h:    exe "let ret = ret . a:" . idx

[?25l:    [?12l[?25h:    let idx = idx + 1

[?25l:    [?12l[?25h:  endwhile

[?25l:  [?12l[?25h:  return ret

[?25l:  [?12l[?25h:endfunction
[?25l: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[?12l[?25h[?25l

:[?12l[?25hfunction Compute(n1, n2, divname)
[?25l
:  [?12l[?25h:  if a:n2 == 0

[?25l:    [?12l[?25h:    return "fail"

[?25l:    [?12l[?25h:  endif

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

[?25l:  [?12l[?25h:  return "ok"

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

:[?12l[?25hfunc Expr1()
[?25l
:  [?12l[?25h:  normal! v

[?25l:  [?12l[?25h:  return "111"

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

:[?12l[?25hfunc Expr2()
[?25l
:  [?12l[?25h:  call search('XX', 'b')

[?25l:  [?12l[?25h:  return "222"

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

:[?12l[?25hfunc ListItem()
[?25l
:  [?12l[?25h:  let g:counter += 1

[?25l:  [?12l[?25h:  return g:counter . '. '

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

:[?12l[?25hfunc ListReset()
[?25l
:  [?12l[?25h:  let g:counter = 0

[?25l:  [?12l[?25h:  return ''

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

:[?12l[?25hfunc FuncWithRef(a)
[?25l
:  [?12l[?25h:  unlet g:FuncRef

[?25l:  [?12l[?25h:  return a:a

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

:[?12l[?25hlet g:FuncRef=function("FuncWithRef")
[?25l[?12l[?25h[?25l:[?12l[?25hlet counter = 0
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> ( ListItem()
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> [ ListReset()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> + Expr1()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> * Expr2()
[?25l[?12l[?25h[?25l:[?12l[?25hlet retval = "nop"
[?25l[?12l[?25h[?25l/[?12l[?25h^here
[?25l[?12l[?25h[?25lher$=[?12l[?25hTable("xxx", 4, "asdf")
[?25l=[?12l[?25hCompute(45, 0, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hCompute(45, 5, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hg:FuncRef(333)

[?25lError detected while processing function Expr1:

line    1:

E523: Not allowed here

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

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

ing

[?25l:  [?12l[?25h:    " rhs of &&.

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

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

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:    $put ='!!! Unexpected exception:'

[?25l:  [?12l[?25h:    $put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l:    $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[?12l[?25h[?25l
:[?12l[?25h$-9,$w! test.out
[?25l"test.out" [New File] 10 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25hdelfunc Table
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Compute
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr1
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr2
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListItem
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListReset
[?25l[?12l[?25h[?25l:[?12l[?25hunlet retval counter
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest character classes in regexp using regexpengine 0, 1, 2.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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







:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l




~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


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


~                                                                               [?12l[?25h[?25l





:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

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

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







:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 --[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt=ver,jump
[?25l[?12l[?25h[?25l:[?12l[?25hset scrolloff=2
[?25l[?12l[?25h[?25l:[?12l[?25hset nowrap
[?25l[?12l[?25h[?25l:[?12l[?25hset noequalalways
[?25l[?12l[?25h[?25l:[?12l[?25hset splitbelow
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST using two windows open to one buffer, one extra empty window
[?25l[?12l[?25h[?25l:[?12l[?25hsplit
[?25l^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                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 8
[?25l:" ***** 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[?12l[?25h[?25l/[?12l[?25h^start of window 1$/
[?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 7
[?25l[?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?12l[?25h[?25l
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h

[?25l. 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[?12l[?25htest37.in                                                                        [No Name]                                                                       [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    


[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?12l[?25htest37.in                                                                        test37.in                                                                       test37.in                                                                       test37.in                                                                        test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       test37.in                                                                        test37.in                                                                        test37.in                                                                       test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    
test37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" ****** tests using two different buffers *****
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25lstart of window 20000000000[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of window 2$/,/^end of window 2$/y
[?25l18 lines yanked[?12l[?25h[?25l:[?12l[?25hnew
[?25ltest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        test37.in                                                                        [No Name]                                                                       [?25l4 more lines[+][?12l[?25h


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


[?25l. 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[?12l[?25h[No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    

[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?12l[?25h[?25l2[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

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

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST syncbind
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest 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[?12l[?25h


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 201010202[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25h[?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25h[?25l

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


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lzt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
^Wj:
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" ***** done with tests *****
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out             " Write contents of this file
[?25l"test.out" [New File] 33 lines, 1329 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25l^[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
[?12l[?25h[?25lTest 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[?12l[?25h[?25l
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l
abcdefghijk      lmn    opq rstuvwxyz[?12l[?25h[?25l:[?12l[?25hset ai
[?25l[?12l[?25h[?25l:[?12l[?25hset bs=2
[?25l[?12l[?25h[?25l 1
 A BCDEFGHIJ    KL        MNOPQR[?12l[?25h[?25l:[?12l[?25hka
[?25l[?12l[?25h[?25labcdefghijk      lmn    opq rstuvwxyz[?12l[?25h
[?25l 1[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25lab      cdefghi jkl[?12l[?25h
[?25lAB......CDEFGHI.J[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25labcdefghijklmnopqrst[?12l[?25h
[?25lAB      IJKLMNO QR[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 13 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l/[?12l[?25h^abcde
[?25lbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?12l[?25h[?25l
:[?12l[?25h" Test shift-right of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25habcd[?25l[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?12l[?25h     ef[?25l[?12l[?25h[?25lg[?12l[?25h[?25lhg[?12l[?25h[?25lih[?12l[?25h[?25lji[?12l[?25h[?25l        ghijklm        ghijklm[?12l[?25h[?25l:[?12l[?25h" Test shift-left of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25h[?25l[?12l[?25h[?25li[?12l[?25h[?25l [?12l[?25h[?25l


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


abcd[?25l[?12l[?25h[?25le[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lbccf[?12l[?25h[?25lcddg[?12l[?25h[?25ld  h[?12l[?25h[?25lqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?12l[?25h
axyz[?25l:[?12l[?25h" Test block-change
[?25l[?12l[?25h

[?25l[?12l[?25h[?25lj[?12l[?25h[?25li[?12l[?25h[?25l     ghijkl[?12l[?25h[?25lef  gkl[?12l[?25h[?25lmnomnomno[?12l[?25h[?25l:[?12l[?25h$-4,$w! test.out
[?25l"test.out" [New File] 5 lines, 108 characters written[?12l[?25h[?25l:[?12l[?25h" Test block-insert using cursor keys for movement
[?25l[?12l[?25h[?25l/[?12l[?25h^aaaa/
[?25lsearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?12l[?25h[?25l:[?12l[?25h/^aa/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?12l[?25h[?25l/[?12l[?25hxaaa$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?12l[?25h[?25l:[?12l[?25h/xaaa$/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the last <C-v>$
[?25l[?12l[?25h[?25l/[?12l[?25h^A23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?12l[?25h[?25l/[?12l[?25h^B23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?12l[?25h[?25l/[?12l[?25h^C23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25lab
456ab7[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all enc=utf-8
[?25laaa  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[?12l[?25h[?25l


:[?12l[?25h/\t\tline
[?25lsearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25lxxx[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 4 lines, 49 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block append when virtualedit=all
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25lx   line1x   line2x   line3[?12l[?25h[?25l:[?12l[?25hset ve= enc=latin1
[?25lx     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[?12l[?25h[?25l
the [?25l
:[?12l[?25h" VU must uppercase a whole line
[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" same, when it's the last line in the buffer
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" Uppercase two lines
[?25l[?12l[?25h[?25l
blah didoh dut[?12l[?25h[?25l
doh dut [?12l[?25h[?25lblah di t[?12l[?25h[?25l
BLAH DIDOH DUT[?12l[?25h[?25l
:[?12l[?25h" Uppercase part of two lines
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l
333the yo[?12l[?25h[?25lut[?12l[?25h[?25lUTUSSEUU END
333THE YOUTU[?12l[?25h[?25l

:[?12l[?25h" visual replace using Enter or NL
[?25l[?12l[?25h
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^M65
98^M65
98^M65[?12l[?25h
98
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^@65
98^@65
98^@65[?12l[?25h[?25l


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


:[?12l[?25h/^the/,$w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for "*Cmd" autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l"Xxx" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestA 0r Xxx|$del
[?25l[?12l[?25h[?25l:[?12l[?25he XtestA^I^I^I" will read text of Xxd instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?12l[?25h[?25l:[?12l[?25hw^I^I^I^I" will append a line to the file
[?25lwrite[?12l[?25h[?25l:[?12l[?25hr XtestA^I^I^I" should not read anything
[?25lE484: Can't open file XtestA[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" now we have:
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileReadCmd XtestB '[r Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWriteCmd XtestC '[,']copy $
[?25l[?12l[?25h[?25ltest401[?12l[?25h[?25l:[?12l[?25h4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l        test401end of Xxx[?12l[?25h[?25l:[?12l[?25hr XtestC^I^I^I" should not read anything
[?25lE484: Can't open file XtestC[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw >>XtestD^I^I^I" will write all lines to test.out
[?25l"test.out" [New File] 9 lines, 91 characters written[?12l[?25h[?25l:[?12l[?25h$r XtestD^I^I^I" should not read anything
[?25lE484: Can't open file XtestD[?12l[?25h[?25l:[?12l[?25h$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestE 0r test.out|$del
[?25l[?12l[?25h[?25l:[?12l[?25hsp XtestE^I^I^I" split window with test.out
[?25l"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?12l[?25h[?25lasdf[+][?12l[?25hXtestE [+]                                                                       XtestA                                                                          [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestE w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hwall^I^I^I^I" will write other window to test.out
[?25l"test.out" 11 lines, 107 characters written   [?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iasdf
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 10^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 11^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file of over 100 Kbyte[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 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[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"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[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file starting with a BOM[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l: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^@[?12l[?25h[?25l:[?12l[?25hset fileencodings=ucs-bom,latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Write the test files
[?25l[?12l[?25h[?25l:[?12l[?25h/^latin-1$/+1w! Xtest0
[?25l"Xtest0" [New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8$/+1w! Xtest1
[?25l"Xtest1" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8-err$/+1w! Xtest2
[?25l"Xtest2" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2$/+1w! Xtest3
[?25l"Xtest3" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2le$/+1w! Xtest4
[?25l"Xtest4" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add a NUL byte after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4                      " Ignore change from setting 'ff'
[?25l"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hset ffs& nobinary              " Allow default test42.in format
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix                    " Format for files to write
[?25l[?12l[?25h[?25l:[?12l[?25h/^ucs-4$/+1w! Xtest5
[?25l"Xtest5" [converted][New File] 1 line, 30 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-4le$/+1w! Xtest6
[?25l"Xtest6" [converted][New File] 1 line, 35 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add three NUL bytes after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6                      " ! for when setting 'ff' is a change
[?25l"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
~   [?25l
^@^@^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest0
[?25l"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir! >test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=latin1

nobomb

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

  bomb

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

nobomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8<80>err
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 17 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest2x
[?25l"Xtest2x" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest3
[?25l"Xtest3" [converted] 1 line, 8 charactersucs-2[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest3x
[?25l"Xtest3x" [converted][New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4
[?25l"Xtest4" [converted] 1 line, 10 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest4x
[?25l"Xtest4x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest5
[?25l"Xtest5" [converted] 1 line, 10 characters4[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest5x
[?25l"Xtest5x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6
[?25l"Xtest6" [converted] 1 line, 12 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest6x
[?25l"Xtest6x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check the files written with BOM
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25h$r Xtest0x
[?25l"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?12l[?25h[?25l
:[?12l[?25h$r Xtest1x
[?25l"Xtest1x" 1 line, 9 characters
<feff>utf-8[?12l[?25h[?25l
:[?12l[?25h$r Xtest2x
[?25l"Xtest2x" 1 line, 17 characters
utf-8<80>err[?12l[?25h[?25l
:[?12l[?25h$r Xtest3x
[?25l"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest4x
[?25l"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest5x
[?25l"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest6x
[?25l"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l
:[?12l[?25hset nobin ff&               " Write the file in default format
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 44 lines, 409 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

1 more line; before #2  0 seconds agobar[?12l[?25h[?25l
9 foo
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 11L, 137C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
: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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l:[?12l[?25h" c
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
:[?12l[?25h" d
[?25l[?12l[?25h[?25l/[?12l[?25h[\u4f7f\u5929]\+
[?25l
:[?12l[?25h" e
[?25l[?12l[?25h[?25l/[?12l[?25h\%U12345678
[?25l
:[?12l[?25h" f
[?25l[?12l[?25h[?25l/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
:[?12l[?25h" g
[?25l[?12l[?25h[?25l/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" j Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?12l[?25h[?25l:[?12l[?25h$put =['dog(a', 'cat(']
[?25ldog(acat([+][?12l[?25h[?25l/[?12l[?25h(/e+
[?25l/(/e+1
[?12l[?25h[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hbd!
[?25l1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?12l[?25h[?25la[?12l[?25h[?25l
cat(
[?12l[?25h[?25l
:[?12l[?25hw!
[?25l"test.out" 25L, 271C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("."))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for folding. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We also need the +syntax feature here.
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("syntax")
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   w! test.out

[?25l:  [?12l[?25h   qa!

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

[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?12l[?25h[?25l:[?12l[?25hcall append("$", getline(foldclosed(".")))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with markers.
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=marker fdl=1 fdc=3
[?25l   :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[?12l[?25h[?25l/[?12l[?25h^5
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", "marker " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l{{ |  6 ff }}}[?12l[?25h[?25l-{|
|
|
|[?12l[?25h[?25l


:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l6 ff }}}
 7 gg
 8 hh[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with indent
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=indent sw=2
[?25l-++---  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[?12l[?25h[?25l/[?12l[?25h^2 b
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l
-  2 bb[?12l[?25h[?25l
|-    3 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", "indent " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test syntax folding
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=syntax fdl=0
[?25l          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[?12l[?25h[?25l:[?12l[?25hsyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hsyn region Fd1 start="ee" end="ff" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd2 start="gg" end="hh" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?12l[?25h[?25l   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?12l[?25h[?25l:[?12l[?25hcall append("$", "folding " . getline("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l
--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[?12l[?25h[?25l commentend- 
|-

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

[?25l:  [?12l[?25h  if l =~ "bb$"

[?25l:    [?12l[?25h    return 2

[?25l:    [?12l[?25h  elseif l =~ "gg$"

[?25l:    [?12l[?25h    return "s1"

[?25l:    [?12l[?25h  elseif l =~ "ii$"

[?25l:    [?12l[?25h    return ">2"

[?25l:    [?12l[?25h  elseif l =~ "kk$"

[?25l:    [?12l[?25h    return "0"

[?25l:    [?12l[?25h  endif

[?25l:  [?12l[?25h  return "="

[?25l:  [?12l[?25hendfun
[?25l   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?12l[?25h[?25l:[?12l[?25hset fdm=expr fde=Flvl()
[?25l++-- 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---------------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l/[?12l[?25hbb$
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hcall append("$", "expr " . foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hhh$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hii$
[?25l-9 ii||a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hkk$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h/^last/+1,$w! test.out
[?25l"test.out" [New File] 18 lines, 96 characters written[?12l[?25h[?25l:[?12l[?25hdelfun Flvl
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l   
   
   
   ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?12l[?25h[?25lTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?12l[?25h[?25l:[?12l[?25hset fdm=indent
[?25l++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l:[?12l[?25h1m1
[?25l[?12l[?25h[?25l:[?12l[?25hm0
[?25l3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?12l[?25h[?25l:[?12l[?25h%w >> test.out
[?25l"test.out" 5 lines, 77 characters appendedtest.out [+]]  [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of 'virtualedit'.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswf
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


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

"r"     
a^Vb^Msdabcv6efi.him0kl[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   When past the end of a line that ends in a single character "b" skips
[?25l[?12l[?25h[?25l:[?12l[?25h"    that word.
[?25l[?12l[?25h
[?25l$7[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'i' works
[?25l[?12l[?25h
'i'   [?25l<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'C' works
[?25l[?12l[?25h
'C'   [?25l$<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'a' works
[?25l[?12l[?25h
'a'   [?25l <-- should be 4 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'A' works
[?25l[?12l[?25h
'A'   [?25l<-- should be 0 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'D' works
[?25l[?12l[?25h
'D'   [?25l<-- 'D' should be intact[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for yank bug reported by Mark Waggoner.
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=block
[?25l[?12l[?25h
[?25l[?12l[?25h[?25laaa[?12l[?25h[?25laaablock of 4 lines yanked[?12l[?25h[?25l3 more linesa
aa [?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" beyond the end of the line
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l/[?12l[?25h^"r"
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h"r"    [?25lx[?12l[?25h[?25lx<-- should be 'x'[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" on a tab
[?25l[?12l[?25h[?25l:[?12l[?25h" Note that for this test, 'ts' must be 8 (the default).
[?25l[?12l[?25h
"r"  [?25lx[?12l[?25h[?25lx  <-- should be '  x  '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test to make sure 'x' can delete control characters
[?25l[?12l[?25h[?25l:[?12l[?25hset display=uhex
[?25l<16>b<0d>sd[?12l[?25h
[?25l<16>b<0d>sd[?12l[?25h[?25lb<0d>sd[?12l[?25h[?25l<0d>sd[?12l[?25h[?25lsd[?12l[?25h[?25ld[?12l[?25h[?25l[?12l[?25h[?25l[This line should contain only the text between the brackets.][?12l[?25h[?25l:[?12l[?25hset display=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?12l[?25h[?25l:[?12l[?25h"   Roy <royl@netropolis.net>.
[?25l[?12l[?25h
[?25l[?12l[?25h   [?25lv[?12l[?25hv   [?25li[?12l[?25hi   [?25lm   <-- should show the name of a noted text editor[?12l[?25h
[?25l[?12l[?25h    [?25l6[?12l[?25h6   [?25l.[?12l[?25h.   [?25l0   <-- and its version number[?12l[?25h[?25l
[?12l[?25h
    [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for yanking and pasting using the small delete register
[?25l[?12l[?25h[?25l/[?12l[?25h^foo
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l, bar[?12l[?25h, [?25l[?12l[?25h[?25lba[?12l[?25h[?25l[?12l[?25h[?25lfoo[?12l[?25h
keyw[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 23 lines, 479 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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=#000ff00 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

EndOfBuffer    xxx links to NonText

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

Directory      xxx term=bold ctermfg=4 guifg=Blue

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 guibg=Yellow

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

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline ctermfg=3 guifg=Brown

CursorLineNr   xxx term=bold ctermfg=3 gui=bold guifg=Brown

Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen

StatusLine     xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse

StatusLineNC   xxx term=reverse cterm=reverse gui=reverse

VertSplit      xxx term=reverse cterm=reverse gui=reverse

Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=LightGrey

VisualNOS      xxx term=bold,underline cterm=bold,underline gui=bold,underline

WarningMsg     xxx term=standout ctermfg=1 guifg=Red

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

Foldedxxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue

guibg=LightGrey

FoldColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=LightBlue

DiffChange     xxx term=bold ctermbg=5 guibg=LightMagenta

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

guibg=LightCyan

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

SignColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue 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=DarkCyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=LightMagenta

PmenuSelxxx ctermfg=0 ctermbg=7 guibg=Grey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=0 guibg=Black

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

gui=underline guibg=LightGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=7 guibg=Grey90

CursorLine     xxx term=underline cterm=underline guibg=Grey90

ColorColumn    xxx term=reverse ctermbg=1 guibg=LightRed

Cursorxxx guifg=bg guibg=fg

lCursorxxx guifg=bg guibg=fg

MatchParen     xxx term=reverse ctermbg=6 guibg=Cyan

Normalxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Search
[?25l
Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow

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

0ff00 guibg=Cyan
[?25lE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 term= cterm=
[?25lE418: Illegal value: cterm=

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group3
[?25l
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear NewGroup
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?12l[?25h[?25l
:[?12l[?25hhi NewGroup
[?25l
NewGroupxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 NONE
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?12l[?25h[?25l
:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hhi Group3
[?25l
Group3xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Crash term='asdf
[?25lE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l:hi NewGroup
:hi Group2
:hi Group3[?12l[?25h[?25l
:[?12l[?25h" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h%s/ctermfg=\d*/ctermfg=2/
[?25l2
[?12l[?25h[?25l:[?12l[?25h%s/ctermbg=\d*/ctermbg=3/
[?25l3
[?12l[?25h[?25l:[?12l[?25h" filter out possibly translated error message
[?25l[?12l[?25h[?25l:[?12l[?25h%s/E475: [^:]*:/E475:/
[?25lterm='asdf[?12l[?25h[?25l:[?12l[?25h" fix the fileformat
[?25l[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hwq!
[?25l"test.out" 20 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for string and html text objects. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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>-[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l[?12l[?25h[?25lfo[?12l[?25h
[?25l[?12l[?25h[?25l'foo'[?12l[?25h[?25l 'bar'[?12l[?25h[?25l
xxxxxxxxxxxx
[?12l[?25h
[?25lblah[?12l[?25h
[?25l"[?12l[?25h
[?25l[?12l[?25h[?25l' rep[?12l[?25h[?25lyyyyy[?12l[?25h[?25l:[?12l[?25hset quoteescape=+*-
[?25l[?12l[?25h[?25l` b`la[?12l[?25h[?25l[?12l[?25h[?25l" sdf"[?12l[?25h[?25l" [?12l[?25h[?25l"[?12l[?25h[?25l asdf" sdf [?12l[?25h[?25lah" sdf "
voo "[?12l[?25h[?25lzzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^<begin
[?25l[?12l[?25h
[?25l</i>asdf</b>-[?12l[?25h[?25l
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?12l[?25h
[?25l</b>-[?12l[?25h[?25l
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?12l[?25h[?25lasdf</b>-[?12l[?25h[?25l
-<b>asdX<i>as<b />df</i>asdf</b>-[?12l[?25h
[?25l
--[?12l[?25h[?25l
-<b>
-[?12l[?25h[?25l<b></b>[?12l[?25h[?25l
</begin>[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l
b[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l
bc[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l
c[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l
a[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, -1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 4) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 3, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 2) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 1, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 2, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 4) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25h/^start:/,/^end:/wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test(...)
[?25l
:  [?12l[?25h:lang C

[?25l:  [?12l[?25h:" Creating List directly with different types

[?25l:  [?12l[?25h:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:$put =string(l[-4])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-5])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List slices

[?25l:  [?12l[?25h:$put =string(l[:])

[?25l:  [?12l[?25h:$put =string(l[1:])

[?25l:  [?12l[?25h:$put =string(l[:-2])

[?25l:  [?12l[?25h:$put =string(l[0:8])

[?25l:  [?12l[?25h:$put =string(l[8:-1])

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" List identity

[?25l:  [?12l[?25h:let ll = l

[?25l:  [?12l[?25h:let lx = copy(l)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Creating Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l:  [?12l[?25h:$put =string(d) . d.1

[?25l:  [?12l[?25h:$put =string(sort(keys(d)))

[?25l:  [?12l[?25h:$put =string (values(d))

[?25l:  [?12l[?25h:for [key, val] in items(d)

[?25l:    [?12l[?25h:  $put =key . ':' . string(val)

[?25l:    [?12l[?25h:  unlet key val

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:call extend  (d, {3:33, 1:99})

[?25l:  [?12l[?25h:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  call extend(d, {3:333,4:444}, "error")

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:call filter(d, 'v:key =~ ''[ac391]''')

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary identity

[?25l:  [?12l[?25h:let dd = d

[?25l:  [?12l[?25h:let dx = copy(d)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items with :unlet

[?25l:  [?12l[?25h:unlet l[2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:let l = range(8)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:unlet l[:3]

[?25l:    [?12l[?25h:unlet l[1:]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:$put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:unlet d.c

[?25l:  [?12l[?25h:unlet d[-1]

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:1]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:3]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:4]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:5]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-1:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-3:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-4:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-5:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-6:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" assignment to a list

[?25l:  [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:let [va, vb] = l[2:3]

[?25l:  [?12l[?25h:$put =va

[?25l:  [?12l[?25h:$put =vb

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l[1:1]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: let d[i] = 3000 - i

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let n = d[1500]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" lookup each items

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h: let i += 1

[?25l:  [?12l[?25h:" delete even items

[?25l:  [?12l[?25h:while i >= 2

[?25l:    [?12l[?25h: let i -= 2

[?25l:    [?12l[?25h: unlet d[i]

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l:  [?12l[?25h:" delete odd items, checking value, one intentionally wrong

[?25l:  [?12l[?25h:let d[33] = 999

[?25l:  [?12l[?25h:let i = 1

[?25l:  [?12l[?25h:while i < 1500

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =i . '=' . d[i]

[?25l:      [?12l[?25h: else

[?25l:      [?12l[?25h:  unlet d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h: let i += 2

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =string(d)  " must be almost empty now

[?25l:  [?12l[?25h:unlet d

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary function

[?25l:  [?12l[?25h:let dict = {}

[?25l:  [?12l[?25h:func dict.func(a) dict

[?25l:    [?12l[?25h:  $put =a:a . len(self.data)

[?25l:    [?12l[?25h:endfunc

[?25l:    [?12l[?25h:let dict.data = [1,2,3]

[?25l:    [?12l[?25h:call dict.func("len: ")

[?25l:    [?12l[?25h:let x = dict.func("again: ")

[?25l:    [?12l[?25h:let Fn = dict.func

[?25l:    [?12l[?25h:call Fn('xxx')

[?25l:    [?12l[?25h:" 

[?25l:    [?12l[?25h:" Function in script-local List or Dict

[?25l:    [?12l[?25h:let g:dict = {}

[?25l:    [?12l[?25h:function g:dict.func() dict

[?25l:      [?12l[?25h:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l:      [?12l[?25h:endfunc

[?25l:      [?12l[?25h:let g:dict.foo = ['-', 2, 3]

[?25l:      [?12l[?25h:call insert(g:dict.foo, function('strlen'))

[?25l:      [?12l[?25h:call g:dict.func()

[?25l:      [?12l[?25h:" 

[?25l:      [?12l[?25h:" Nasty: remove func from Dict that's being called (works)

[?25l:      [?12l[?25h:let d = {1:1}

[?25l:      [?12l[?25h:func d.func(a)

[?25l:[?12l[?25h:  return "a:". a:a

[?25l:[?12l[?25h:endfunc

[?25l:[?12l[?25h:$put =d.func(string(remove(d, 'func')))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l:[?12l[?25h:let d = {1:1, 2:2}

[?25l:[?12l[?25h:let l = [4, d, 6]

[?25l:[?12l[?25h:let d[3] = l

[?25l:[?12l[?25h:let dc = deepcopy(d)

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let dc = deepcopy(d, 1)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:let l2 = [0, l, l, 3]

[?25l:[?12l[?25h:let l[1] = l2

[?25l:[?12l[?25h:let l3 = deepcopy(l2)

[?25l:[?12l[?25h:$put ='same list: ' . (l3[1] is l3[2])

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1][0] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2]['6'][7] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2][6] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Unletting locked variables

[?25l:[?12l[?25h:$put ='Unletting:'

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]['6'][7]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2][6]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1][0]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables and :unlet or list / dict functions

[?25l:[?12l[?25h:$put ='Locks and commands or functions:'

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put =':unlet after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='filter() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call filter(d, 'v:key != "a"')

[?25l:[?12l[?25h:  $put ='did filter()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='map() after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call map(d, 'v:val + 200')

[?25l:[?12l[?25h:  $put ='did map()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  $put =string(extend(d, {'a': 123}))

[?25l:[?12l[?25h:  $put ='did extend()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No remove() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l:[?12l[?25h:    $put ='did remove()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l:[?12l[?25h:    $put ='did extend()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet of variable in locked scope:'

[?25l:[?12l[?25h:let b:testvar = 123

[?25l:[?12l[?25h:lockvar 1 b:

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet b:testvar

[?25l:[?12l[?25h:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:unlockvar 1 b:

[?25l:[?12l[?25h:unlet! b:testvar

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :let += of locked list variable:'

[?25l:[?12l[?25h:let l = ['a', 'b', 3]

[?25l:[?12l[?25h:lockvar 1 l

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let l += ['x']

[?25l:[?12l[?25h:  $put ='did :let +='

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:lockvar! l

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:unlet l[0:1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l[1:2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:let l[0:1] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let l[1:2] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:" :lockvar/islocked() triggering script autoloading

[?25l:[?12l[?25h:set rtp+=./sautest

[?25l:[?12l[?25h:lockvar g:footest#x

[?25l:[?12l[?25h:unlockvar g:footest#x

[?25l:[?12l[?25h:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l:[?12l[?25h:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l:[?12l[?25h:$put ='g:footest#x: '.g:footest#x

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" a:000 function argument

[?25l:[?12l[?25h:" first the tests that should fail

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000 = [1, 2]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[0] = 9

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[0]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2] = [9, 10]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[2]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[3] = {9: 10}

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[3]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:" now the tests that should pass

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2][1] = 9

[?25l:[?12l[?25h:  call extend(a:000[2], [5, 6])

[?25l:[?12l[?25h:  let a:000[3][5] = 8

[?25l:[?12l[?25h:  let a:000[3]['a'] = 12

[?25l:[?12l[?25h:  $put =string(a:000)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught ' . v:exception

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" reverse(), sort(), uniq()

[?25l:[?12l[?25h:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l:[?12l[?25h:$put =string(uniq(copy(l)))

[?25l:[?12l[?25h:$put =string(reverse(l))

[?25l:[?12l[?25h:$put =string(reverse(reverse(l)))

[?25l:[?12l[?25h:$put =string(sort(l))

[?25l:[?12l[?25h:$put =string(reverse(sort(l)))

[?25l:[?12l[?25h:$put =string(sort(reverse(sort(l))))

[?25l:[?12l[?25h:$put =string(uniq(sort(l)))

[?25l:[?12l[?25h:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'n'))

[?25l:[?12l[?25h:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l:[?12l[?25h:$put =string(sort(copy(l), 1))

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'i'))

[?25l:[?12l[?25h:$put =string(sort(copy(l)))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" splitting a string to a List

[?25l:[?12l[?25h:$put =string(split('  aa  bb '))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W', 1))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 0))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 1))

[?25l:[?12l[?25h:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs'))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs', 1))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare recursively linked list and dict

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:let d = {'1': 1, '2': l, '3': 3}

[?25l:[?12l[?25h:let l[1] = d

[?25l:[?12l[?25h:$put =(l == l)

[?25l:[?12l[?25h:$put =(d == d)

[?25l:[?12l[?25h:$put =(l != deepcopy(l))

[?25l:[?12l[?25h:$put =(d != deepcopy(d))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare complex recursively linked list and dict

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:call add(l, l)

[?25l:[?12l[?25h:let dict4 = {"l": l}

[?25l:[?12l[?25h:call add(dict4.l, dict4)

[?25l:[?12l[?25h:let lcopy = deepcopy(l)

[?25l:[?12l[?25h:let dict4copy = deepcopy(dict4)

[?25l:[?12l[?25h:$put =(l == lcopy)

[?25l:[?12l[?25h:$put =(dict4 == dict4copy)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same List to extend()

[?25l:[?12l[?25h:let l = [1, 2, 3, 4, 5]

[?25l:[?12l[?25h:call extend(l, l)

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend()

[?25l:[?12l[?25h:let d = { 'a': {'b': 'B'}}

[?25l:[?12l[?25h:call extend(d, d)

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend() with "error"

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call extend(d, d, "error")

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" test for range assign

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:let l[:] = [1, 2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:endfun
[?25l:$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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 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]
~                                                                               [?12l[?25h[?25l

:[?12l[?25hdelfunc Test
[?25l[?12l[?25h[?25l:[?12l[?25hunlet dict
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for patch 7.3.637
[?25l[?12l[?25h[?25l:[?12l[?25hlet a = 'No error caught'
[?25l[?12l[?25h[?25l:[?12l[?25htry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?12l[?25h[?25l=[?12l[?25ha
[?25lVim(foldopen):E490:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hredir => a
[?25l[?12l[?25h[?25l:[?12l[?25htry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?12l[?25h[?25l
=[?12l[?25ha
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'))|endtry
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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>delfunnc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for script-local function.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,/^end:/-1w! Xtest.vim
[?25l"Xtest.vim" [New] 7L, 251C written[?12l[?25h[?25l:[?12l[?25hsource Xtest.vim
[?25l[?12l[?25h[?25l:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?12l[?25h[?25lTest for script-local function.     vim: set ft=vim :nothing line[?12l[?25h[?25l:[?12l[?25h$-1,$wq! test.out
[?25l"test.out" [New] 2L, 23C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :sort command.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^t01:/+1,/^t02/-1sort
[?25l 123b2
a123
a
ababc[?12l[?25h[?25l:[?12l[?25h/^t02:/+1,/^t03/-1sort n
[?25lb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?12l[?25h[?25l
:[?12l[?25h/^t03:/+1,/^t04/-1sort x
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?12l[?25h[?25l:[?12l[?25h/^t04:/+1,/^t05/-1sort u
[?25lb321b
b322b
c123d
c321d
t04: alpha, unique[?12l[?25h[?25l
:[?12l[?25h/^t05:/+1,/^t06/-1sort!
[?25la123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?12l[?25h[?25l:[?12l[?25h/^t06:/+1,/^t07/-1sort! n        
[?25la
 123b


t06: numeric, reverse
b322b[?12l[?25h[?25l
:[?12l[?25h/^t07:/+1,/^t08/-1sort! u
[?25l123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?12l[?25h[?25l:[?12l[?25h/^t08:/+1,/^t09/-1sort o         
[?25l123b

t08: octal
abc[?12l[?25h[?25l
:[?12l[?25h/^t09:/+1,/^t10/-1sort! x        
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?12l[?25h[?25l:[?12l[?25h/^t10:/+1,/^t11/-1sort/./        
[?25lab
a


t10: alpha, skip first character
a[?12l[?25h[?25l
:[?12l[?25h/^t11:/+1,/^t12/-1sort/../       
[?25l123b
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[?12l[?25h[?25l:[?12l[?25h/^t12:/+1,/^t13/-1sort/../u
[?25lb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?12l[?25h[?25l
:[?12l[?25h/^t13:/+1,/^t14/-1sort/./n
[?25lb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?12l[?25h[?25l:[?12l[?25h/^t14:/+1,/^t15/-1sort/./r
[?25lc321d
b321
b321b
b322b
t14: alpha, sort on first character[?12l[?25h[?25l
:[?12l[?25h/^t15:/+1,/^t16/-1sort/../r
[?25la321
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[?12l[?25h[?25l:[?12l[?25h/^t16:/+1,/^t17/-1sort/./rn
[?25lb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?12l[?25h[?25l
:[?12l[?25h/^t17:/+1,/^t18/-1sort/\d/
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?12l[?25h[?25l:[?12l[?25h/^t18:/+1,/^t19/-1sort/\d/r
[?25la123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t19:/+1,/^t20/-1sort/\d/n
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t20:/+1,/^t21/-1sort/\d/rn
[?25la123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t21:/+1,/^t22/-1sort/\d\d/
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t22:/+1,/^t23/-1sort/\d\d/n
[?25la123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t23:/+1,/^t24/-1sort/\d\d/x
[?25lb321
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[?12l[?25h[?25l:[?12l[?25h/^t24:/+1,/^t25/-1sort/\d\d/r
[?25lc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25lc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t27:/+1,/^t28/-1sort no
[?25lE474: Invalid argument[?12l[?25h[?25l:[?12l[?25h/^t28:/+1,/^t29/-1sort b
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?12l[?25h[?25l:[?12l[?25h/^t29:/+1,/^t30/-1sort b
[?25l0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?12l[?25h[?25l
:[?12l[?25h/^t30:/+1,/^t31/-1sort f
[?25la0b001000
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[?12l[?25h[?25l:[?12l[?25h/^t01:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! RunTest(str, result)
[?25l
:  [?12l[?25h    if exists(a:str) == a:result

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED: Checking for " . a:str

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfunction
[?25lendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?12l[?25h[?25l
:[?12l[?25hfunction! TestExists()
[?25l
:  [?12l[?25h    augroup myagroup

[?25l:  [?12l[?25h^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l:  [?12l[?25h^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l:  [?12l[?25h    augroup END

[?25l:  [?12l[?25h    set rtp+=./sautest

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    let test_cases = []

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " valid autocmd group

[?25l:  [?12l[?25h    let test_cases += [['#myagroup', 1]]

[?25l:  [?12l[?25h    " valid autocmd group with garbage

[?25l:  [?12l[?25h    let test_cases += [['#myagroup+b', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd group or event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup', 0]]

[?25l:  [?12l[?25h    " Non-existing autocmd group and valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event with no matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['###', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group and event or empty event and pattern

[?25l:  [?12l[?25h    let test_cases += [['##', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##FileReadCmd', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##MySpecialCmd', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&textwidth', 1]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&tw', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['&tw-', 0]]

[?25l:  [?12l[?25h    " Global option

[?25l:  [?12l[?25h    let test_cases += [['&g:errorformat', 1]]

[?25l:  [?12l[?25h    " Local option

[?25l:  [?12l[?25h    let test_cases += [['&l:errorformat', 1]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&nojoinspaces', 0]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&nojs', 0]]

[?25l:  [?12l[?25h    " Non-existing option

[?25l:  [?12l[?25h    let test_cases += [['&myxyzoption', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['+incsearch', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['+incsearch!1', 0]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['+is', 1]]

[?25l:  [?12l[?25h    " Existing option that is hidden.

[?25l:  [?12l[?25h    let test_cases += [['+autoprint', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing environment variable

[?25l:  [?12l[?25h    let $EDITOR_NAME = 'Vim Editor'

[?25l:  [?12l[?25h    let test_cases += [['$EDITOR_NAME', 1]]

[?25l:  [?12l[?25h    " Non-existing environment variable

[?25l:  [?12l[?25h    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal function

[?25l:  [?12l[?25h    let test_cases += [['*bufnr', 1]]

[?25l:  [?12l[?25h    " Valid internal function with ()

[?25l:  [?12l[?25h    let test_cases += [['*bufnr()', 1]]

[?25l:  [?12l[?25h    " Non-existing internal function

[?25l:  [?12l[?25h    let test_cases += [['*myxyzfunc', 0]]

[?25l:  [?12l[?25h    " Valid internal function with garbage

[?25l:  [?12l[?25h    let test_cases += [['*bufnr&6', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid user defined function

[?25l:  [?12l[?25h    let test_cases += [['*TestExists', 1]]

[?25l:  [?12l[?25h    " Non-existing user defined function

[?25l:  [?12l[?25h    let test_cases += [['*MyxyzFunc', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function that may be created by FuncUndefined event

[?25l:  [?12l[?25h    let test_cases += [['*UndefFun', 0]]

[?25l:  [?12l[?25h    " Function that may be created by script autoloading

[?25l:  [?12l[?25h    let test_cases += [['*footest#F', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    redir! > test.out

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    for [test_case, result] in test_cases

[?25l:    [?12l[?25h        echo test_case . ": " . result

[?25l:    [?12l[?25h        call RunTest(test_case, result)

[?25l:    [?12l[?25h    endfor

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match)

[?25l:  [?12l[?25h    echo ':edit: 2'

[?25l:  [?12l[?25h    if exists(':edit') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match) with garbage

[?25l:  [?12l[?25h    echo ':edit/a: 0'

[?25l:  [?12l[?25h    if exists(':edit/a') == 0

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (partial match)

[?25l:  [?12l[?25h    echo ':q: 1'

[?25l:  [?12l[?25h    if exists(':q') == 1

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing internal command

[?25l:  [?12l[?25h    echo ':invalidcmd: 0'

[?25l:  [?12l[?25h    if !exists(':invalidcmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (full match)

[?25l:  [?12l[?25h    command! MyCmd :echo 'My command'

[?25l:  [?12l[?25h    echo ':MyCmd: 2'

[?25l:  [?12l[?25h    if exists(':MyCmd') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (partial match)

[?25l:  [?12l[?25h    command! MyOtherCmd :echo 'Another command'

[?25l:  [?12l[?25h    echo ':My: 3'

[?25l:  [?12l[?25h    if exists(':My') == 3

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Command modifier

[?25l:  [?12l[?25h    echo ':rightbelow: 2'

[?25l:  [?12l[?25h    if exists(':rightbelow') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (full match)

[?25l:  [?12l[?25h    delcommand MyCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':MyCmd: 0'

[?25l:  [?12l[?25h    if !exists(':MyCmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (partial match)

[?25l:  [?12l[?25h    delcommand MyOtherCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':My: 0'

[?25l:  [?12l[?25h    if !exists(':My')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var: 1'

[?25l:  [?12l[?25h    if exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable with garbage

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var%n: 0'

[?25l:  [?12l[?25h    if !exists('local_var%n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local variable

[?25l:  [?12l[?25h    unlet local_var

[?25l:  [?12l[?25h    echo 'local_var: 0'

[?25l:  [?12l[?25h    if !exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing autoload variable that may be autoloaded

[?25l:  [?12l[?25h    echo 'footest#x: 0'

[?25l:  [?12l[?25h    if !exists('footest#x')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list

[?25l:  [?12l[?25h    let local_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'local_list: 1'

[?25l:  [?12l[?25h    if exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item

[?25l:  [?12l[?25h    echo 'local_list[1]: 1'

[?25l:  [?12l[?25h    if exists('local_list[1]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item with garbage

[?25l:  [?12l[?25h    echo 'local_list[1]+5: 0'

[?25l:  [?12l[?25h    if !exists('local_list[1]+5')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Invalid local list item

[?25l:  [?12l[?25h    echo 'local_list[2]: 0'

[?25l:  [?12l[?25h    if !exists('local_list[2]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local list

[?25l:  [?12l[?25h    unlet local_list

[?25l:  [?12l[?25h    echo 'local_list: 0'

[?25l:  [?12l[?25h    if !exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local dictionary

[?25l:  [?12l[?25h    let local_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'local_dict: 1'

[?25l:  [?12l[?25h    if exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local dictionary

[?25l:  [?12l[?25h    unlet local_dict

[?25l:  [?12l[?25h    echo 'local_dict: 0'

[?25l:  [?12l[?25h    if !exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing local curly-brace variable

[?25l:  [?12l[?25h    let str = "local"

[?25l:  [?12l[?25h    let curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local curly-brace variable

[?25l:  [?12l[?25h    unlet curly_{str}_var

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable

[?25l:  [?12l[?25h    let g:global_var = 1

[?25l:  [?12l[?25h    echo 'g:global_var: 1'

[?25l:  [?12l[?25h    if exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable with garbage

[?25l:  [?12l[?25h    echo 'g:global_var-n: 1'

[?25l:  [?12l[?25h    if !exists('g:global_var-n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global variable

[?25l:  [?12l[?25h    unlet g:global_var

[?25l:  [?12l[?25h    echo 'g:global_var: 0'

[?25l:  [?12l[?25h    if !exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global list

[?25l:  [?12l[?25h    let g:global_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'g:global_list: 1'

[?25l:  [?12l[?25h    if exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global list

[?25l:  [?12l[?25h    unlet g:global_list

[?25l:  [?12l[?25h    echo 'g:global_list: 0'

[?25l:  [?12l[?25h    if !exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global dictionary

[?25l:  [?12l[?25h    let g:global_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'g:global_dict: 1'

[?25l:  [?12l[?25h    if exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global dictionary

[?25l:  [?12l[?25h    unlet g:global_dict

[?25l:  [?12l[?25h    echo 'g:global_dict: 0'

[?25l:  [?12l[?25h    if !exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global curly-brace variable

[?25l:  [?12l[?25h    let str = "global"

[?25l:  [?12l[?25h    let g:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global curly-brace variable

[?25l:  [?12l[?25h    unlet g:curly_{str}_var

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window variable

[?25l:  [?12l[?25h    echo 'w:window_var: 1'

[?25l:  [?12l[?25h    let w:window_var = 1

[?25l:  [?12l[?25h    if exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window variable

[?25l:  [?12l[?25h    unlet w:window_var

[?25l:  [?12l[?25h    echo 'w:window_var: 0'

[?25l:  [?12l[?25h    if !exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window list

[?25l:  [?12l[?25h    let w:window_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'w:window_list: 1'

[?25l:  [?12l[?25h    if exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window list

[?25l:  [?12l[?25h    unlet w:window_list

[?25l:  [?12l[?25h    echo 'w:window_list: 0'

[?25l:  [?12l[?25h    if !exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window dictionary

[?25l:  [?12l[?25h    let w:window_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'w:window_dict: 1'

[?25l:  [?12l[?25h    if exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window dictionary

[?25l:  [?12l[?25h    unlet w:window_dict

[?25l:  [?12l[?25h    echo 'w:window_dict: 0'

[?25l:  [?12l[?25h    if !exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window curly-brace variable

[?25l:  [?12l[?25h    let str = "window"

[?25l:  [?12l[?25h    let w:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window curly-brace variable

[?25l:  [?12l[?25h    unlet w:curly_{str}_var

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer variable

[?25l:  [?12l[?25h    echo 'b:buffer_var: 1'

[?25l:  [?12l[?25h    let b:buffer_var = 1

[?25l:  [?12l[?25h    if exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer variable

[?25l:  [?12l[?25h    unlet b:buffer_var

[?25l:  [?12l[?25h    echo 'b:buffer_var: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer list

[?25l:  [?12l[?25h    let b:buffer_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'b:buffer_list: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer list

[?25l:  [?12l[?25h    unlet b:buffer_list

[?25l:  [?12l[?25h    echo 'b:buffer_list: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer dictionary

[?25l:  [?12l[?25h    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer dictionary

[?25l:  [?12l[?25h    unlet b:buffer_dict

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer curly-brace variable

[?25l:  [?12l[?25h    let str = "buffer"

[?25l:  [?12l[?25h    let b:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer curly-brace variable

[?25l:  [?12l[?25h    unlet b:curly_{str}_var

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Script-local tests

[?25l:  [?12l[?25h    source test60.vim

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:version: 1'

[?25l:  [?12l[?25h    if exists('v:version')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:non_exists_var: 0'

[?25l:  [?12l[?25h    if !exists('v:non_exists_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function arguments

[?25l:  [?12l[?25h    function TestFuncArg(func_arg, ...)

[?25l:    [?12l[?25h        echo 'a:func_arg: 1'

[?25l:    [?12l[?25h        if exists('a:func_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:non_exists_arg: 0'

[?25l:    [?12l[?25h        if !exists('a:non_exists_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:1: 1'

[?25l:    [?12l[?25h        if exists('a:1')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:2: 0'

[?25l:    [?12l[?25h        if !exists('a:2')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h    endfunction

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    call TestFuncArg("arg1", "arg2")

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    echo ' g:footest#x =' g:footest#x

[?25l:    [?12l[?25h    echo '   footest#F()' footest#F()

[?25l:    [?12l[?25h    echo 'UndefFun()' UndefFun()

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    redir END

[?25l:    [?12l[?25hendfunction
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hcall TestExists()
[?25l#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[?12l[?25h[?25l:[?12l[?25h"
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hdelfunc TestExists
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestFuncArg
[?25l[?12l[?25h[?25l:[?12l[?25hedit! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 206 lines, 1941 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns without multi-byte support.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp engine
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"operator \|
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a*', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x', 'abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search single groups
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'baced'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search multi-modifiers
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" no match here
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a\{0,1}'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" leading star as normal char when \{} follows
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test groups of characters and submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test greedy-ness and lazy-ness
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test Character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test collections and character range []
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-a]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?12l[?25h[?25l:[?12l[?25h" filename regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?12l[?25h[?25l:[?12l[?25h" special chars
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?12l[?25h[?25l:[?12l[?25h" collation elem
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" middle of regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test start/end of line, start/end of file
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "b a \na_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a', " a \na "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test recognition of character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \z features
[?25l[?12l[?25h[?25l:[?12l[?25h" match ends at \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" match starts at \zs
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \@= and \& features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match, no matter the input text
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Combining different tests and features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" \%u and friends
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \%[abc]
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Alternatives, must use first longest match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Look-behind with limit
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" look-behind match in front of a zero-width item
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" complicated look-behind match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \@>
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" TODO: BT engine does not restore submatch after failure
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" "\_" prepended negated collection matches EOL
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Requiring lots of states.
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Skip adding state twice
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""" Test \%V atom
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""""" multi-line tests """"""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" line breaks
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25lOK 0 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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', '']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a line break and ^ and $
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the multi-line tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='multi-line tests'
[?25l
multi-line tests[?12l[?25h[?25l
:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let before = t[2]

[?25l:  [?12l[?25h:  let after = t[3]

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    new

[?25l:    [?12l[?25h:    call setline(1, before)

[?25l:    [?12l[?25h:    exe '%s/' . pat . '/XX/'

[?25l:    [?12l[?25h:    let result = getline(1, '$')

[?25l:    [?12l[?25h:    q!

[?25l:    [?12l[?25h:    if result != after

[?25l:      [?12l[?25h:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?12l[?25h[?25l:[?12l[?25h" matchstr() with \ze in between.
[?25l[?12l[?25h[?25l:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25h.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l5">Ta 5</Title>
<T="7">Ac 7</Title>
[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h.+1,.+2yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
<T="5">Ta 5</Title>
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a look beind crossing a line boundary
[?25l[?12l[?25h[?25l/[?12l[?25h^Behind:
[?25lsearch 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[?12l[?25h[?25l/[?12l[?25h\(<\_[xy]\+\)\@3<=start
[?25l[?12l[?25h[?25l:[?12l[?25h.yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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>
[?12l[?25h[?25l
[?12l[?25h[?25l
xxstart3
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching Visual area
[?25l[?12l[?25h[?25l/[?12l[?25h^Visual:
[?25lsearch 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[?12l[?25h
the[?25l[?12l[?25h[?25lxe the the[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Ve/E/g
[?25l3 substitutions on 1 linexE thE thE
[?12l[?25h
[?25landaxand andaxand 
[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Va/A/g
[?25l6 substitutions on 1 lineAndAxAnd AndAxAnd[?12l[?25h
ooo[?25l[?12l[?25h[?25lxofor foro[?12l[?25h[?25lx
oooxofor foro[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Vo/O/g
[?25l8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?12l[?25h[?25l:[?12l[?25h/^Visual/+1,/^Visual/+4yank
[?25lsearch hit BOTTOM, continuing at TOP
4 lines yanked[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
4 more lines
thexE thE thExethe4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching marks
[?25l[?12l[?25h[?25l/[?12l[?25h^Marks:
[?25lsearch 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[?12l[?25h
asdf[?25l:[?12l[?25h.-4,.+6s/.\%>'s.*\%<'e../here/
[?25lhereasdf[?12l[?25h
asdf
dfsa
dfsadf[?25l:[?12l[?25h.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l
asdfagainasdfOK 0 - bc*[?12l[?25h[?25l:[?12l[?25h/^Marks:/+1,/^Marks:/+3yank
[?25lsearch hit BOTTOM, continuing at TOP
3 lines yanked[?12l[?25h[?25lOK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check patterns matching cursor position.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! Postest()
[?25l
:  [?12l[?25h new

[?25l:  [?12l[?25h 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:  [?12l[?25h call setpos('.', [0, 1, 0, 0])

[?25l:  [?12l[?25h s/\%>3c.//g

[?25l:  [?12l[?25h call setpos('.', [0, 2, 4, 0])

[?25l:  [?12l[?25h s/\%#.*$//g

[?25l:  [?12l[?25h call setpos('.', [0, 3, 0, 0])

[?25l:  [?12l[?25h s/\%<3c./_/g

[?25l:  [?12l[?25h %s/\%4l\%>5c./_/g

[?25l:  [?12l[?25h %s/\%6l\%>25v./_/g

[?25l:  [?12l[?25h %s/\%>6l\%3c./!/g

[?25l:  [?12l[?25h %s/\%>7l\%12c./?/g

[?25l:  [?12l[?25h %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l:  [?12l[?25h $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l:  [?12l[?25h 1,$yank

[?25l:  [?12l[?25h quit!

[?25l:  [?12l[?25hendfunc
[?25lOK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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[?12l[?25h[?25l255\
OK 0 - 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~                                                                               [?12l[?25h[?25l
-0-[?12l[?25h[?25l
:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25loooxOfOr 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 xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?12l[?25h[?25l
-1-[?12l[?25h[?25l
:[?12l[?25hset re=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-2-[?12l[?25h[?25l:[?12l[?25hset re=2
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l-2-
ffo
bob~                                                                               [?12l[?25h[?25l:[?12l[?25h" start and end of buffer
[?25l[?12l[?25h[?25l/[?12l[?25h\%^
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%^..
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25lt END[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:" 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'])[?12l[?25h[?25l/[?12l[?25h..\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l[?12l[?25h[?25lEN[?12l[?25h[?25l[?12l[?25h[?25lE[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check for detecting error
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=2
[?25l[?12l[?25h[?25l:[?12l[?25hfor pat in [' \ze*', ' \zs*']
[?25l
:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    let l = matchlist('x x', pat)

[?25l:    [?12l[?25h:    $put ='E888 NOT detected for ' . pat

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='E888 detected for ' . pat

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor
[?25lffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx xxxxxx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxxxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx   xxxxxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Write the results """""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("float")
[?25l
:  [?12l[?25h:  e! test.ok

[?25l:  [?12l[?25h:  wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%f', 123.456)
[?25l
123.456000[?12l[?25h[?25l
:[?12l[?25h$put =printf('%e', 123.456)
[?25l
1.234560e+02[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 123.456)
[?25l
123.456[?12l[?25h[?25l
:[?12l[?25h" check we don't crash on division by zero
[?25l[?12l[?25h[?25l:[?12l[?25hecho 1.0 / 0.0
[?25linf[?12l[?25h[?25l:[?12l[?25h$put ='+='
[?25l
+=[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 6.543
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
7.777[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 5
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
6.234[?12l[?25h[?25l
:[?12l[?25hlet a = 5
[?25l[?12l[?25h[?25l:[?12l[?25hlet a += 3.333
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(a)
[?25l
8.333[?12l[?25h[?25l
:[?12l[?25h$put ='=='
[?25l
==[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25h$put =v == 1.234
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =v == 1.2341
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='add-subtract'
[?25l
add-subtract[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 + 1.234)
[?25l
5.234[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 1.234 - 8)
[?25l
-6.766[?12l[?25h[?25l
:[?12l[?25h$put ='mult-div'
[?25l
mult-div[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 * 1.234)
[?25l
4.936[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4.0 / 1234)
[?25l
0.003241[?12l[?25h[?25l
:[?12l[?25h$put ='dict'
[?25l
dict[?12l[?25h[?25l
:[?12l[?25h$put =string({'x': 1.234, 'y': -2.0e20})
[?25l
{'x': 1.234, 'y': -2.0e20}[?12l[?25h[?25l
:[?12l[?25h$put ='list'
[?25l
list[?12l[?25h[?25l
:[?12l[?25h$put =string([-123.4, 2.0e-20])
[?25l
[-123.4, 2.0e-20][?12l[?25h[?25l
:[?12l[?25h$put ='abs'
[?25l
abs[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(1456))
[?25l
1456[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(-4))
[?25l
4[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs([1, 2, 3]))
[?25lE745: Using a List as a Number
-1[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(14.56))
[?25l
14.56[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(-54.32))
[?25l
54.32[?12l[?25h[?25l
:[?12l[?25h$put ='ceil'
[?25l
ceil[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(1.456))
[?25l
2.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-4.000))
[?25l
-4.0[?12l[?25h[?25l
:[?12l[?25h$put ='floor'
[?25l
floor[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(1.856))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(-5.456))
[?25l
-6.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(4.0))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='log10'
[?25l
log10[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(1000))
[?25l
3.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(0.01000))
[?25l
-2.0[?12l[?25h[?25l
:[?12l[?25h$put ='pow'
[?25l
pow[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(3, 3.0))
[?25l
27.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(2, 16))
[?25l
65536.0[?12l[?25h[?25l
:[?12l[?25h$put ='round'
[?25l
round[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(0.456))
[?25l
0.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(4.5))
[?25l
5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(-4.50))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put ='sqrt'
[?25l
sqrt[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', sqrt(100))
[?25l
10.0[?12l[?25h[?25l
:[?12l[?25hecho sqrt(-4.01)
[?25lnan[?12l[?25h[?25l:[?12l[?25h$put ='str2float'
[?25l
str2float[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', str2float('1e40'))
[?25l
1.0e40[?12l[?25h[?25l
:[?12l[?25h$put ='trunc'
[?25l
trunc[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(1.456))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(4.000))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='float2nr'
[?25l
float2nr[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(123.456)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(-123.456)
[?25l
-123[?12l[?25h[?25l
:[?12l[?25h$put ='AND'
[?25l
AND[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 127)
[?25l
127[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 16)
[?25l
16[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 128)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='OR'
[?25l
OR[?12l[?25h[?25l
:[?12l[?25h$put =or(16, 7)
[?25l
23[?12l[?25h[?25l
:[?12l[?25h$put =or(8, 7)
[?25l
15[?12l[?25h[?25l
:[?12l[?25h$put =or(0, 123)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put ='XOR'
[?25l
XOR[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 127)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 16)
[?25l
111[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 128)
[?25l
255[?12l[?25h[?25l
:[?12l[?25h$put ='invert'
[?25l
invert[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(127), 65535)
[?25l
65408[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(16), 65535)
[?25l
65519[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(128), 65535)
[?25l
65407[?12l[?25h[?25l
:[?12l[?25h$put =invert(1.0)
[?25lE805: Using a Float as a Number
0[?12l[?25h[?25l
:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^one
[?25l[?12l[?25hon[?25l[?12l[?25h[?25le
one two three
one two three
one two three
one two three[?12l[?25h[?25l
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?12l[?25h[?25lmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?12l[?25h[?25le
one
one
one
on[?12l[?25h[?25l1
on1
on1
on1
on1[?12l[?25h[?25l:[?12l[?25h'<,'>w! test.out
[?25l"test.out" [New File] 5 lines, 70 characters written[?12l[?25h[?25l/[?12l[?25h^abcdefgh
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?12l[?25h[?25la
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc            defghijklmnopqrstuvwxyz[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-5,$w >> test.out
[?25l"test.out"6 lines, 151 characters appended[?12l[?25h[?25l:[?12l[?25h$-4,$s/\s\+//g
[?25l7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
a
a
a[?12l[?25h[?25l
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghij[?12l[?25h
    ab[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                       defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                 defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-4,$w >> test.out
[?25l"test.out"5 lines, 147 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest that groups and patterns are tested correctly when calling exists() for[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet results=[]
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter *.test let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile.test
[?25l"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter <buffer> let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile2.test
[?25l"testfile2.test" [New File][?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l:[?12l[?25hcall append(0, results)
[?25l##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[?12l[?25h[?25l:[?12l[?25h$d
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 190 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset noai tw=2 fo=t
[?25l[?12l[?25h[?25la
b[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l
a  b[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tw
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
[?12l[?25h[?25l
a[?12l[?25ha [?25l
b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a ^A[?12l[?25h[?25l
:[?12l[?25hset tw=3 fo=t
[?25l[?12l[?25h[?25l
^A[?12l[?25h[?25la
^A
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a b[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tcq1 comments=:#
[?25l[?12l[?25h[?25l
#a b[?12l[?25h[?25la b
#a b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  1 a[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=tcn comments=:#
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
# 1 a[?12l[?25h[?25l
#   b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+3
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+3
[?25l{

  x a
  b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=t2a si
[?25l[?12l[?25h[?25l    b[?12l[?25h[?25l b_[?12l[?25h[?25l
c[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# 1 a b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=qn comments=:#
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# x[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=q2 comments=:#
[?25l[?12l[?25h[?25l# x a
[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+2
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+2
[?25l{
   1aa
   2bb[?12l[?25h[?25l
:[?12l[?25hset tw& fo=a
[?25l[?12l[?25h[?25l1aa ^^2bb }STARTTEST[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h[?25l
/mno pqr/[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25hmno pqr/
[?25l/* abc def ghi jkl
 *    mno pqr stu[?12l[?25h[?25l
:[?12l[?25hsetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?12l[?25h[?25l
*    vwx yz[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^#/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^#/
[?25l
# 1 xxxxx[?12l[?25h[?25l
:[?12l[?25hsetl tw=12 fo=tqnc comments=:#
[?25l[?12l[?25h[?25l
#   foobar[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 77 lines, 281 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for multi-byte text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=t
[?25l[?12l[?25h
[?25l
XYZ[?12l[?25h[?25l[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
Z
abc [?12l[?25h[?25l
X[?12l[?25h[?25lY[?12l[?25h[?25lZ[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
X[?12l[?25h[?25l
:[?12l[?25hset tw=1 fo=tm
[?25l[?12l[?25h[?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l
X a
[?12l[?25h[?25l
a[?12l[?25h[?25l
XY
[?12l[?25h[?25l
Y
[?12l[?25h[?25l
X Y
[?12l[?25h[?25l
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h
[?25la[?12l[?25h
[?25la[?12l[?25h
[?25lY
[?12l[?25h
[?25lY 
[?12l[?25h[?25l
aX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abcX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX c
[?12l[?25h[?25lX
c[?12l[?25h[?25l
abXY
[?12l[?25h[?25lX
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25lY
a[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
abc[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
c
ab[?12l[?25h[?25l
X[?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
  a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset noai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=cqm comments=n:X
[?25l[?12l[?25h

[?25lXY[?12l[?25h

[?25lXZ
[?12l[?25h

[?25l
X Z
[?12l[?25h[?25l
XX
[?12l[?25h[?25l
XXa
[?12l[?25h[?25l
XXY
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25l
Xa
[?12l[?25h[?25lXa[?12l[?25h[?25lXY
[?12l[?25h[?25lX[?12l[?25h[?25l
Y
[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25lXZ
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25lX [?12l[?25h[?25lY[?12l[?25h[?25lX Z
[?12l[?25h[?25lX[?12l[?25h[?25l
X
[?12l[?25h[?25lX[?12l[?25h[?25l
Xa
[?12l[?25h[?25lX[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
‘two three ’four[?12l[?25h[?25l
:[?12l[?25hset mps+=^‘:^’
[?25l[?12l[?25h[?25l four[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
/^ra test
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTjVjra
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^ra test
[?25l
ra test[?12l[?25h[?25l
abba
[?12l[?25h[?25lbba 
[?12l[?25h[?25l
a
aab 
[?12l[?25h[?25laaaaaaa [?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set whichwrap+=h
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset whichwrap+=h
[?25l[?12l[?25h[?25l/[?12l[?25h^x
[?25láx[?12l[?25h[?25lx[?12l[?25h
[?25l
:[?12l[?25hset whichwrap-=h
[?25l[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:let a = '.é.' " one char of two bytes
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let b = '.é.' " normal e with composing char
/^byteidx
:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteiddx(a, 4)])
:put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])
/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)])
:let b = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet a = '.é.' " one char of two bytes
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = '.eé.' " normal e with composing char
[?25l[?12l[?25h[?25l/[?12l[?25h^byteidx
[?25l
byteidx[?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25lENDTESTá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5[?12l[?25h[?25l
/[?12l[?25h^byteidxcomp
[?25l
byteidxcomp[?12l[?25h[?25l
:[?12l[?25hput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25lá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5
byteidxcomp[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hlet b = '.eé.'
[?25l[?12l[?25h[?25l:[?12l[?25hput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25lSTARTTEST
: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(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][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^substitute
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?12l[?25h[?25lsubstitute[?12l[?25h[?25l

:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^substitute
[?25l[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25la1a2a3a[?12l[?25h[?25l

/^STARTTEST

STARTTEST[?12l[?25h[?25l:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?12l[?25h[?25l

:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l

/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l104 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[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 166 lines, 730 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 6 lines, 94 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for find completion.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xfind directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xfind')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE345: Can't find file "" in path[?12l[?25h[?25l:[?12l[?25hexec "w! " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out"
<ld/vim-tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                   [?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                   [?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                   [?12l[?25h[?25l:[?12l[?25hset path=./**
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                   [?12l[?25h[?25l:[?12l[?25h" We shouldn't find any file at this point, test.out must be empty.
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('in')
[?25l[?12l[?25h[?25l:[?12l[?25hcd in
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hcall mkdir('path')
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdirtest73.in                                                    [?12l[?25h[?25l:[?12l[?25he Xfind/file.txt
[?25l"Xfind/file.txt" [New File]Xfind/file.txt[?12l[?25h[?25l-- INSERT --Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/file.txt" [New] 1L, 11C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/file.txt
[?25l"Xfind/in/file.txt" [New File]in/file.txt[?12l[?25h[?25l-- INSERT --Jimmy Hoffa[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/file.txt" [New] 1L, 12C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/stuff.txt
[?25l"Xfind/in/stuff.txt" [New File]stuff.txt[?12l[?25h[?25l-- INSERT --Another Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/stuff.txt" [New] 1L, 19C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/path/file.txt
[?25l"Xfind/in/path/file.txt" [New File]path/file.txt[?12l[?25h[?25l-- INSERT --E.T.[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/path/file.txt" [New] 1L, 5C written    [?12l[?25h[?25l:[?12l[?25hset path=Xfind/**
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Same steps again, using relative and fullpath items that point to the same
[?25l[?12l[?25h[?25l:[?12l[?25h" recursive location.
[?25l[?12l[?25h[?25l:[?12l[?25h" This is to test that there are no duplicates in the completion list.
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path+=Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25h" Test find completion for directory of current buffer, which at this point
[?25l[?12l[?25h[?25l:[?12l[?25h" is Xfind/in/file.txt.
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind st...[?25luff.txt[?12l[?25h
[?25l"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25h" Test find completion for empty path item ",," which is the current directory
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfindin/stuff.txtf       /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind f...[?25lile.txt[?12l[?25h...[?25l[?12l[?25h
[?25l"file.txt" 1L, 11CHoly Grailfile.txt.     [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25h" Test shortening of
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is above foo/ they should be shortened to (in order
[?25l[?12l[?25h[?25l:[?12l[?25h" of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/file.txt[?12l[?25h[?25l:[?12l[?25hcall mkdir('x')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('y')
[?25l[?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/x[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfindfile.txti                                                           [?12l[?25h[?25l:[?12l[?25h" We should now be in the Xfind directory
[?25l[?12l[?25h[?25l:[?12l[?25he foo/x/bar/voyager.txt
[?25l"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?12l[?25h[?25l-- INSERT --Voyager 1[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/x/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25he foo/y/bar/voyager.txt
[?25l"foo/y/bar/voyager.txt" [New File]y/[?12l[?25h[?25l-- INSERT --Voyager 2[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/y/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h
[?25l"foo/x/bar/voyager.txt" 1L, 10C1x/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h...[?25ly[?12l[?25h
[?25l"foo/y/bar/voyager.txt" 1L, 10C2y/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?12l[?25h[?25l:[?12l[?25h" order of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    ./voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/fooy/bar/voyager.txt.     [?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/ybar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25lx/bar/voyager.txt[?12l[?25h
[?25l<ild/vim-tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/Xfind/foo/x/bar/voyager.txt"
<-tlTJJ2/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[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check the opposite too:
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foox/bar/voyager.txt/                                                               [?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/xbar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/x/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25ly/bar/voyager.txt[?12l[?25h
[?25l<ild/vim-tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/Xfind/foo/y/bar/voyager.txt"
<-tlTJJ2/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[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/in"
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./file.txt[?5h[?5l[?12l[?25h
[?25l"file.txt" 1L, 12CJimmy Hoffafile.txti                                                                        [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Test for relative to current buffer 'path' item
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/"
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfindin/file.txt[?12l[?25h[?25l:[?12l[?25hset path=./path
[?25l[?12l[?25h[?25l:[?12l[?25h" Open the file where Jimmy Hoffa is found
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12C[?12l[?25h[?25l:[?12l[?25h" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25ltxt[?12l[?25h
[?25l"in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that completion works when path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h" Open Jimmy Hoffa file
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?12l[?25h[?25l:[?12l[?25hfind stu...[?25lff.txt[?12l[?25h
[?25l"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25hq
[?25l: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[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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^[:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for maparg().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25h" Test maparg() with a string result
[?25l[?12l[?25h[?25l:[?12l[?25hmap foo<C-V> is<F4>foo
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('foo<C-V>'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hmap <buffer> <nowait> foo bar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc x<char-114>x
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc y<S-char-114>y
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25leof
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[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Outside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x1040> a
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u1040\<Esc>"
[?25la[?12l[?25h[?25l:[?12l[?25h" Inside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x103f> b
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u103f\<Esc>"
[?25lb[?12l[?25h[?25l:[?12l[?25h" Inside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf03f> c
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf03f\<Esc>"
[?25lc[?12l[?25h[?25l:[?12l[?25h" Outside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf040> d
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf040\<Esc>"
[?25ld[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^eof/+1,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25lcksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?12l[?25h[?25l
:[?12l[?25hset fileformat=unix undolevels=-1
[?25l[?12l[?25h[?25lInserts 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.[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l12345678910111213141516171819202122[?12l[?25h[?25l
23[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2000000 lines, 14888896 characters written[?12l[?25h[?25l:[?12l[?25hr !cksum Xtest
[?25l[?12l[?25h[?25l1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?12l[?25h[?25l:[?12l[?25hs/\s/ /g
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat&
[?25l[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 26 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25lA
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l&[?12l[?25h
[?25l:[?12l[?25hs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set nomagic
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25l&&
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\='\'/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\='\\'/
[?25l\\b
[?12l[?25h
[?25l:[?12l[?25hs/C/\='^^M'/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\='\^^M'/
[?25l\d[?12l[?25h
[?25l


:[?12l[?25hs/E/\='\\^^M'/
[?25l\\
efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\='\r'/
[?25l\rf
[?12l[?25h[?25l
gGg[?12l[?25h[?25l
:[?12l[?25hs/G/\='^^@'/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\='\^^@'/
[?25l
\h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\='\\^^@'/
[?25l
\\
i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\='\n'/
[?25l\nj
[?12l[?25h[?25l
kKk[?12l[?25h[?25l
:[?12l[?25hs/K/\="\r"/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\="\n"/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25ld[?12l[?25h
[?25l


:[?12l[?25hs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l\efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l
f[?12l[?25h[?25l
gGg
[?12l[?25h[?25l
:[?12l[?25hs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l
h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l
\i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l
j[?12l[?25h[?25l
kKk
[?12l[?25h[?25l
:[?12l[?25hs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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), subbmatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), subbmatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l
TEST_5:[?12l[?25h[?25l
A123456789
[?12l[?25h[?25l
:[?12l[?25hs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25li\
i987654321[?12l[?25h[?25l
B123456789
[?12l[?25h[?25l
:[?12l[?25hs/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)])/
[?25li
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25lTEST_6:
A
B[?12l[?25h[?25l


:[?12l[?25hset cpo+=/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/a/
[?25la[?12l[?25h
[?25l:[?12l[?25hs/B/%/
[?25la[?12l[?25h[?25l:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25lC
D[?12l[?25h[?25l


:[?12l[?25hs/C/c/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/%/
[?25l%[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST_7/
[?25l
TEST_7:[?12l[?25h[?25l
A^MA
[?12l[?25h[?25l
:[?12l[?25hs/A./\=submatch(0)/
[?25l
A[?12l[?25h[?25l
B^@B
[?12l[?25h[?25l
:[?12l[?25hs/B./\=submatch(0)/
[?25l
B[?12l[?25h[?25l
C^@C
[?12l[?25h[?25l
:[?12l[?25hs/C./\=strtrans(string(submatch(0, 1)))/
[?25l['C^@']C
[?12l[?25h[?25l
D^@[?12l[?25h[?25l
:[?12l[?25hs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l['D^@', 'D']
[?12l[?25h[?25l
E^@[?12l[?25h[?25l
:[?12l[?25hs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l['E^@', '^@', '^@', '^@', '^@E']
[?12l[?25h[?25l/[?12l[?25h^Q$
[?25l
Q[?12l[?25h[?25l
:[?12l[?25hs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25lE486: Pattern not found: Q[^\n]Q[?12l[?25h[?25l:[?12l[?25h" Avoid :s error breaks dotest map on Windows.
[?25l[?12l[?25h[?25l/^STARTTEST
Q

STARTTEST[?12l[?25h[?25l
:function! TitleString()
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hfunction! TitleString()
[?25l
:  [?12l[?25h  let check = 'foo' =~ 'bar'

[?25l:  [?12l[?25h  return ""

[?25l:  [?12l[?25hendfunction
[?25lTEST_7:
A[?12l[?25h[?25l
:[?12l[?25hset titlestring=%{TitleString()}
[?25l[?12l[?25h[?25l:[?12l[?25h/^test_one/s/.*/\="foo\nbar"/
[?25lfoo
bar[?12l[?25h[?25l
:[?12l[?25h/^test_two/s/.*/\="foo\nbar"/c
[?25l
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l
foobar
[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 134 lines, 574 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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', '')[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_1:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('xXx', 'X', \"\r\", '')
[?25l
x^Mx[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l
YyyY[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l
zZZz[?12l[?25h[?25l
/[?12l[?25h^TEST_2
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_2:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25lKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('tTt', 'T', \"\r\", '')
[?25l
t^Mt[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l
XxxX[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l
yYYy[?12l[?25h[?25l
/[?12l[?25h^TEST_3
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_3:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l
b\\b[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l
c^Mc[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l
d\^Md[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l
e\\^Me[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l
f\rf[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l
j\nj[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l
k^Mk[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25ll
l[?12l[?25h[?25l
/[?12l[?25h^TEST_4
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_4:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25lu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25lu
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25lv^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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25lw\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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25lXxxX
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25lyYYyTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25lb\\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[?12l[?25h[?25l
/[?12l[?25h^TEST_5
[?25lsearch 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) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_5:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$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)', '')
[?25lf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?12l[?25h[?25l
:[?12l[?25h$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)])', '')
[?25lj\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']][?12l[?25h[?25l
/[?12l[?25h^TEST_6
[?25lsearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25lTEST_7:[?12l[?25h[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_6:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hset cpo+=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', 'a', '')
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '%', '')
[?25l
%[?12l[?25h[?25l
:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('C', 'C', 'c', '')
[?25l
c[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', '%', '')
[?25l
%[?12l[?25h[?25l
/[?12l[?25h^TEST_7
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_7:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l
A^MA[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25lB
B[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l['B
']B[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l
-abab[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\ze', 'c', 'g')
[?25l
c-cbcbc[?12l[?25h[?25l
/[?12l[?25h^TEST_8
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTyy/^TEST_9:
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_8:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =',,X'
[?25l
,,X[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25lN,,NX
[?12l[?25h[?25l:[?12l[?25h$put =',,Y'
[?25l
,,Y[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,NY
[?12l[?25h[?25l
:[?12l[?25h$put =',,Z'
[?25l
,,Z[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l,NZ
[?12l[?25h[?25l
/[?12l[?25h^TEST_9:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_9:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put ='xxx'
[?25l
xxx[?12l[?25h[?25l
:[?12l[?25hs/x/X/gc
[?25lx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lx[?12l[?25h[?25l
/[?12l[?25h^TEST_10:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_10:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l
1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l
a1a2a3[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l
aa2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l
1aaa[?12l[?25h[?25l
/[?12l[?25h^TEST_11
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25l"test.out" [New File] 131 lines, 617 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("multi_byte")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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%.22X', n)) | endfor[?12l[?25h[?25l


:[?12l[?25hset enc=utf8
[?25l: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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h[?25lTests 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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Ch(a, op, b, expected)
[?25l
:  [?12l[?25h:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l:    [?12l[?25h:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    let b:passed += 1

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Chk(a, b, result)
[?25l
:  [?12l[?25h:  if a:result == 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  elseif a:result > 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 1)

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Check(a, b, result)
[?25l
:  [?12l[?25h:  call Chk(a:a, a:b, a:result)

[?25l:  [?12l[?25h:  call Chk(a:b, a:a, -a:result)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! LT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, -1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! EQ(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 0)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet b:passed=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('', '')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('', 'a')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('abc', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc', 'abC')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('AB', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'aBc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa', 'k')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc\x80', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc\x80', 'AbC\x81')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xc3XYZ', '\xc3xyz')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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~                                                                               [?12l[?25h[?25l:[?12l[?25hcall LT('\xc3', '\xc3\x83')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(0, printf('%d checks passed', b:passed))
[?25l3732 checks passed[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test that g~ap changes one paragraph only.
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?12l[?25h[?25labcddefg[+][?12l[?25h[?25lABCD
[?12l[?25h[?25l:[?12l[?25hlet lns = getline(1,3)
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), lns)
[?25lABCDdefg[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 5 lines, 31 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for curswant not changing when setting an option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start target options$/+1,/^end target options$/-1 yank
[?25l3 lines yanked[?12l[?25h[?25l:[?12l[?25hlet target_option_names = split(@0)
[?25l[?12l[?25h[?25l:[?12l[?25hfunction TestCurswant(option_name)
[?25l
:  [?12l[?25h:  normal! ggf8j

[?25l:  [?12l[?25h:  let curswant_before = winsaveview().curswant

[?25l:  [?12l[?25h:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l:  [?12l[?25h:  let curswant_after = winsaveview().curswant

[?25l:  [?12l[?25h:  return [a:option_name, curswant_before, curswant_after]

[?25l:  [?12l[?25h:endfunction
[?25l:  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[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =['1234567890', '12345']
[?25l123456789012345[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hlet result = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor option_name in target_option_names
[?25l
:  [?12l[?25h:  call add(result, TestCurswant(option_name))

[?25l:  [?12l[?25h:endfor
[?25l1234567890
12345[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =map(copy(result), 'join(v:val, '' '')')
[?25l3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hwrite test.out
[?25l"test.out" [New File] 3 lines, 43 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hqall!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lvim: set ft=vim[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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|[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('conceal')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:normal W
GGk
:normal W[?12l[?25h[?25l:[?12l[?25h" Conceal settings.
[?25l[?12l[?25h[?25l:[?12l[?25hset conceallevel=2
[?25l[?12l[?25h[?25l:[?12l[?25hset concealcursor=nc
[?25l[?12l[?25h[?25l:[?12l[?25hsyntax match test /|/ conceal
[?25lconcealed  concealed  


a       b       c       d[?12l[?25h[?25l:[?12l[?25h" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?12l[?25h[?25l:[?12l[?25h" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?12l[?25h[?25l:[?12l[?25h" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?12l[?25h[?25l:[?12l[?25hlet positions = []
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?12l[?25h[?25l:[?12l[?25h" Start test.
[?25l[?12l[?25h[?25l/[?12l[?25h^start:
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ztj
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:let positions += ['2:1']
[?12l[?25h[?25l:[?12l[?25h" We should end up in the same column when running these commands on the two
[?25l[?12l[?25h[?25l:[?12l[?25h" lines.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['2:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['2:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['3:1']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['3:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['3:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['5:8']
[?12l[?25h[?25l:[?12l[?25h" Same for next test block.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['5:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['5:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['6:8']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['6:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['6:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['8:1']
[?12l[?25h[?25l:[?12l[?25h" And check W with multiple tabs and conceals in a line.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['8:27']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset lbr
[?25l[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset list listchars=tab:>-
[?25l>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?12l[?25h[?25l:[?12l[?25hnormal 0
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25h" Display result.
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', 'end:')
[?25lend:[?12l[?25h[?25l:[?12l[?25hcall append('$', positions)
[?25l2:12:172:203:13:173:205:85:255:286:86:256:288:1[?12l[?25h[?25l:[?12l[?25h/^end/,$wq! test.out
[?25l"test.out" [New File] 29 lines, 135 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78522b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afeee48bb'
: let res='ok'
:else[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: 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") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb00b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('cryptv') || !exists('*sha256')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc3[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for empty string: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25l
test for empty string: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 1 char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for 1 char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 3 chars: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'
:else[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25ltest for 3 chars: ok
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains meta char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25ltest for contains meta char: ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains non-ascii char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for contains non-ascii char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Use strings to test for memory leaks.
[?25l[?12l[?25h[?25l:[?12l[?25h" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:testvar='abcd'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h" Test for getbufvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:var_num = '1234'
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_num = '5678'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num'))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25hunlet b:var_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, '', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25hunlet def_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, '&autoindent'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '&autoindent', 1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Open new window with forced option values
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hlet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25l:$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[?12l[?25h[?25l:[?12l[?25h$put =otherff
[?25l
dos[?12l[?25h[?25l
:[?12l[?25h$put =string(otherbin)
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =otherfenc
[?25l
iso-8859-2[?12l[?25h[?25l
:[?12l[?25hunlet otherff otherbin otherfenc
[?25l[?12l[?25h[?25l:[?12l[?25h" test for getwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet w:var_str = "Dance"
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_str = "Chance"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str'))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25hunlet w:var_str
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, '', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu',  1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25hunlet def_str
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet t:var_list = [1, 2, 3]
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:other = 777
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_list = [4, 5, 6, 7]
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list'))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, ''))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '', def_list))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25htablast
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hunlet t:var_list
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, '', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25hunlet def_list
[?25l[?12l[?25h[?25l:[?12l[?25htabonly
[?25ldos[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabprev
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hsplit
[?25l2N o[No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hsplit
[?25l + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                                                        [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25hvert split
[?25l4  X||||||~~~~~[No Name]                              [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                 [No Name]                               X[?12l[?25h[?25l:[?12l[?25hlet w:var_dict = {'dict': 'tabwin'}
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_dict = {'dict2': 'newval'}
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd b
[?25l[No Name]                               [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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]
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25htabnext
[?25l + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                              [No Name]                                                                         X[?12l[?25h[?25l:[?12l[?25hunlet w:var_dict
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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'}}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25hunlet def_dict
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l
1[?12l[?25h[?25l
:[?12l[?25htabonly
[?25l0[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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()[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Visual mode and operators[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf-8 nocp viminfo+=nviminfo
[?25lkv3lyjv3lpgvcxxx^[
:$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[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" User functions
[?25l[?12l[?25h[?25l:[?12l[?25hfunction MoveToCap()
[?25l
:  [?12l[?25h:  call search('\u', 'W')

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'[?12l[?25h[?25l:[?12l[?25hfunction SelectInCaps()
[?25l
:  [?12l[?25h:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l:  [?12l[?25h:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l:  [?12l[?25h:  call setpos("'<", [0, line1, col1, 0])

[?25l:  [?12l[?25h:  call setpos("'>", [0, line2, col2, 0])

[?25l:  [?12l[?25h:  normal! gv

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual modes followed by operator
[?25l[?12l[?25h[?25l/[?12l[?25h^apple
[?25l[?12l[?25ha[?25l-- VISUAL --[?12l[?25h[?25lp[?12l[?25h[?25lle banana cherry[?12l[?25h[?25l banana cherry[?12l[?25h [?25lbanan-- VISUAL --[?12l[?25h[?25l
a  cherry[?12l[?25h[?25ly[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^line 1
[?25l[?12l[?25h[?25lline 1 line 1 -- VISUAL LINE --[?12l[?25h[?25lINSERT --Nnewline[?12l[?25h[?25l-- INSERT --newline[?12l[?25h[?25l
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?12l[?25h[?25lline 5 line 5line 6 line 6xxxxxxxxxxxxx[?12l[?25h[?25lxxxxxxxxxxxxx
xxxxxxxxxxxxx[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^xxxx
[?25l[?12l[?25h[?25l


-- VISUAL BLOCK --[?12l[?25h[?25lx
[?12l[?25h[?25lx
x[?12l[?25h[?25lINSERT --O  
  [?12l[?25h [?25l


-- INSERT --  
    [?12l[?25h [?25l
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?12l[?25h[?25l
-- INSERT --O----
    ----
xxxx----
xxxx----[?12l[?25h-[?25l-- INSERT ------------------[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap W /\u/s-1<CR>
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Kiwi
[?25lKiwiRaspberryDateWatermelonPeach[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25l/\u/s-1
Kiw[?12l[?25h[?25l
-- INSERT --NoRaspberryDateWatermelonPeach[?12l[?25ho[?25l
-- INSERT --NoberryDateWatermelonPeach[?12l[?25hoberry[?25lDateWat
-- VISUAL --[?12l[?25h[?25lrmelonPeach[?12l[?25h[?25lach[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Jambu
[?25l
JambuRambutanBananaTangerineMango[?12l[?25hJa[?25l
-- VISUAL --[?12l[?25h[?25l:'<,'>call SelectInCaps()
Jamb[?12l[?25h[?25l
-- INSERT ---RambutanBananaTangerineMango[?12l[?25h-[?25l
-- INSERT ---tanBananaTangerineMango[?12l[?25h-[?25ltanBanana
-- VISUAL --[?12l[?25h[?25l
--angerineMango[?12l[?25ha[?25lgo[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Operator-pending mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25honoremap W /\u/<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Pineapple
[?25lPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h[?25l
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---GrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---Z[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Juniper
[?25l
JuniperDurianZ[?12l[?25h[?25l
:call MoveToCap()
Whavcre
[?12l[?25h[?25l:call MoveToCap()
Qhevna[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Lemon
[?25l
LemonNectarineZ[?12l[?25h[?25l
:call SelectInCaps()
[?12l[?25h[?25lLemonLemonNectarineZ
Lemo[?12l[?25hn[?25l:call SelectInCaps()
NewNectarineZ[?12l[?25hwNecta[?25l
:call SelectInCaps()
wZ[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?12l[?25h[?25l/[?12l[?25h^zzzz
[?25lzzzz[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25lE21: Cannot make changes, 'modifiable' is off[?12l[?25h[?25l:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: replace last line'
[?25l
characterwise visual mode: replace last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25hlet @" = 'x'
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h$put ='v:errmsg='.v:errmsg
[?25l
v:errmsg=[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle line'
[?25l
characterwise visual mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle two line'
[?25l
characterwise visual mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise visual mode: delete last line'
[?25l
characterwise visual mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete last two line'
[?25l
characterwise visual mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Select mode maps
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>End> <End>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Down> <Down>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Del> <Del>
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle line'
[?25l
characterwise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle two line'
[?25l
characterwise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise select mode: delete last line'
[?25l
characterwise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- SELECT --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete last two line'
[?25l
characterwise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- SELECT --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle line'
[?25l
linewise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25lbc
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle two line'
[?25l
linewise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25la
b 
[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='linewise select mode: delete last line'
[?25l
linewise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lc 
-- SELECT LINE --[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete last two line'
[?25l
linewise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lb 

-- SELECT LINE --[?12l[?25h[?25lb
c 
[?12l[?25h[?25l~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='v_p: replace last character with line register at middle line'
[?25l
v_p: replace last character with line register at middle line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25laaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25lccc
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25llinewise 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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25lb[?12l[?25h[?25laaa[?12l[?25h[?25l
ccc
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line'
[?25l
v_p: replace last character with line register at last line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25laaa
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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode after operation'
[?25l
gv in exclusive select mode after operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25h$put ='äà '
[?25l
äÃ[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h
[?25l
-- VISUAL --[?12l[?25h[?25läÃ[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode without operation'
[?25l
gv in exclusive select mode without operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h/^start:/+2,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns with multi-byte support, using utf-8.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:
~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l: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:
~                                                                               [?12l[?25h[?25l


:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?12l[?25h[?25l:[?12l[?25h"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l:endif[?12l[?25h[?25l


:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" check that 'ambiwidth' does not change the meaning of \p
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=1 ambiwidth=single
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=1 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi double: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=single
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi double: 0[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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(toopLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We don't want the status line to cause problems:
[?25l[?12l[?25h[?25l:[?12l[?25hset laststatus=0
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:totalLines = &lines * 20
[?25l[?12l[?25h[?25l:[?12l[?25hlet middle = g:totalLines / 2
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd n
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd o
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'LINE ' . i)

[?25l:  [?12l[?25h:endfor
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25haboveleft vert new
[?25l        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'line ' . i)

[?25l:  [?12l[?25h:endfor
[?25lline 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25l2293023123223323423523623723823924024124224324424524624748495051[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lline 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[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25h" Execute the following two command at once to reproduce the problem.
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb | wincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineLeft = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineRight = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25lLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?12l[?25h[?25l:[?12l[?25h%del _
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25lDifference between the top lines (left - right): 0[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 51 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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(toopLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l:" 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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
/[?12l[?25h[\u4f7f\u5929]\+
[?25l
/[?12l[?25h\%U12345678
[?25l
/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for visual mode not being reset causing E315 error.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"ex-way will require the colon operator which resets the visual mode thuus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25henew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:msg="Everything's fine."
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! TriggerTheProblem()
[?25l
:  [?12l[?25h:^I" At this point there is no visual selection because :call reset it.

[?25l:  [?12l[?25h:^I" Let's restore the selection:

[?25l:  [?12l[?25h:^Inormal gv

[?25l:  [?12l[?25h:^I'<,'>del _

[?25l:  [?12l[?25h:^Itry

[?25l:    [?12l[?25h:^I^Iexe "normal \<Esc>"

[?25l:    [?12l[?25h:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l:    [?12l[?25h:^I^Iechom 'Snap! E315 error!'

[?25l:    [?12l[?25h:^I^Ilet g:msg='Snap! E315 error!'

[?25l:    [?12l[?25h:^Iendtry

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25henew
[?25l[?12l[?25h[?25l:[?12l[?25hsetl buftype=nofile
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'Delete this line.')
[?25lDelete this line.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?12l[?25h[?25l:[?12l[?25h"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?12l[?25h[?25l:[?12l[?25h"       preventing the problem:
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h
[?25lDelete this line. 
[?12l[?25h[?25l:'<,'>[?12l[?25hcall TriggerTheProblem()
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h%del _
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), g:msg)
[?25lEverything's fine.[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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 thuus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :let.  vim: set ft=vim ts=8 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset runtimepath+=./sautest
[?25l[?12l[?25h[?25l:[?12l[?25h" Test to not autoload when assigning.  It causes internal error.
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let Test104#numvar = function('tr')

[?25l:  [?12l[?25h:  $put ='OK: ' . string(Test104#numvar)

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  $put ='FAIL: ' . v:exception

[?25l:  [?12l[?25h:endtry
[?25l: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')[?12l[?25h[?25l
:[?12l[?25hlet a = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = 2
[?25l[?12l[?25h[?25l:[?12l[?25hfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    redir => messages

[?25l:    [?12l[?25h:    execute 'let' letargs

[?25la#1

b#2

:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:    $put ='OK:'

[?25l:    [?12l[?25h:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='FAIL: ' . v:exception

[?25l:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor

[?25lb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for adjusting window and contents     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?12l[?25h[?25l:[?12l[?25hcall setline(1, range(1,256))
[?25l1
234567891011[+][?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! GetScreenStr(row)
[?25l
:  [?12l[?25h:   let str = ""

[?25l:  [?12l[?25h:   for c in range(1,3)

[?25l:    [?12l[?25h:       let str .= nr2char(screenchar(a:row, c))

[?25l:    [?12l[?25h:   endfor

[?25l:  [?12l[?25h:   return str

[?25l:  [?12l[?25h:endfunc
[?25l1
2
3
4
5
6[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?12l[?25h[?25l:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l50
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l59
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25h:wincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l::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[?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for backtrace debug commands.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Foo()
[?25l
:  [?12l[?25h:   let var1 = 1

[?25l:  [?12l[?25h:   let var2 = Bar(var1) + 9

[?25l:  [?12l[?25h:   return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bar(var)
[?25l
:  [?12l[?25h:    let var1 = 2 + a:var

[?25l:  [?12l[?25h:    let var2 = Bazz(var1) + 4

[?25l:  [?12l[?25h:    return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bazz(var)
[?25l
:  [?12l[?25h:    let var1 = 3 + a:var

[?25l:  [?12l[?25h:    let var3 = "another var"

[?25l:  [?12l[?25h:    return var1

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?12l[?25h[?25l:[?12l[?25hdebuggreedy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => out
[?25l[?12l[?25h[?25l:[?12l[?25hdebug echo Foo()
[?25lEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?12l[?25hstep

[?25lfunction Foo

line 1: let var1 = 1

>[?12l[?25hstep

[?25lfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "- show backtrace:\n"

[?25l- show backtrace:

>[?12l[?25hbacktrace

[?25l  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "\nshow variables on different levels:\n"

[?25l
show variables on different levels:

>[?12l[?25hecho var1

[?25l6
>[?12l[?25hup

[?25l>[?12l[?25hback

[?25l  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l3
>[?12l[?25hu

[?25l>[?12l[?25hbt

[?25l->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l1
>[?12l[?25hecho "\n- undefined vars:\n"

[?25l
- undefined vars:

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?12l[?25hframe 2

[?25l>[?12l[?25hecho "undefined var3 on former level:"

[?25lundefined var3 on former level:

>[?12l[?25hecho var3

[?25lError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?12l[?25hfr 0

[?25l>[?12l[?25hecho "here var3 is defined with \"another var\":"

[?25lhere var3 is defined with "another var":

>[?12l[?25hecho var3

[?25lanother var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: return var2

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: End of function

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nundefined var2 on former level"

[?25l
undefined var2 on former level

>[?12l[?25hecho var2

[?25lError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?12l[?25hdown

[?25l>[?12l[?25hecho "here var2 is defined with 10:"

[?25lhere var2 is defined with 10:

>[?12l[?25hecho var2

[?25l10

>[?12l[?25hecho "\n- backtrace movements:\n"

[?25l
- backtrace movements:

>[?12l[?25hb

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\nnext command cannot go down, we are on bottom\n"

[?25l
next command cannot go down, we are on bottom

>[?12l[?25hdown

[?25lframe is zero

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nnext command cannot go up, we are on top\n"

[?25l
next command cannot go up, we are on top

>[?12l[?25hup

[?25lframe at highest level: 1

>[?12l[?25hb

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "fil is not frame or finish, it is file"

[?25lfil is not frame or finish, it is file

>[?12l[?25hfil

[?25l"[No Name]" --No lines in buffer--

>[?12l[?25hecho "\n- relative backtrace movement\n"

[?25l
- relative backtrace movement

>[?12l[?25hfr -1

[?25l>[?12l[?25hframe

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hfra +1

[?25l>[?12l[?25hfram

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "\n- go beyond limits does not crash\n"

[?25l
- go beyond limits does not crash

>[?12l[?25hfr 100

[?25lframe at highest level: 1

>[?12l[?25hfra

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hframe -40

[?25lframe is zero

>[?12l[?25hfram

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\n- final result 19:"

[?25l
- final result 19:

>[?12l[?25hcont

[?25l19

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h0debuggreedy
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25h$put =out
[?25l83 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[+][?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 84 lines, 1390 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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! ttest.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']][?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for option autocommand[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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, secoond 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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hfu! AutoCommand(match)
[?25l
:  [?12l[?25h:^Ilet c=g:testcase

[?25l:  [?12l[?25h:       let item=remove(g:options, 0)

[?25l:  [?12l[?25h:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l:  [?12l[?25h:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l:  [?12l[?25h:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l:  [?12l[?25h:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l:  [?12l[?25h:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l:  [?12l[?25h:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l:  [?12l[?25h:endfu
[?25l: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, secoond 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)[?12l[?25h[?25l
:[?12l[?25hau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="1: Setting number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="2: Setting local number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="3: Setting global number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="4: Setting local autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="5: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="6: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ai!
[?25l[?12l[?25h[?25l:[?12l[?25h Should not print anything, use :noa
[?25lE492: Not an editor command: Should not print anything, use :noa[?12l[?25h[?25l:[?12l[?25hnoa :set nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="7: Setting several global list and number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset list nu
[?25l     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 invallid, 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$[?12l[?25h[?25l:[?12l[?25hnoa set nolist nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="8: Setting global acd\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal acd
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="9: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="10: Setting local autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="11: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal invar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="12: Setting option backspace through :let\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hlet &bs="eol,indent,start"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backup', '', '1', 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25h "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hcall setbufvar(1, '&l:bk', 1)
[?25lE355: Unknown option: l:bk[?12l[?25h[?25l:[?12l[?25h "should trigger, use correct option name
[?25l[?12l[?25h[?25l:[?12l[?25hcall setbufvar(1, '&backup', 1)
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hcall setwinvar(0, '&number', 1)
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25h" Write register now, because next test shouldn't output anything.
[?25l[?12l[?25h[?25l:[?12l[?25h$put r
[?25l60 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>, Scoope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scoope: <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>[?12l[?25h[?25l:[?12l[?25hlet @r=''
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=blah
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:testcase
[?25l    138 
    139 15: Setting key option, shouldn't trigger[?12l[?25h[?25l
:[?12l[?25h$put r
[?25l
    140 [?12l[?25h[?25l
:[?12l[?25h/^dummy text/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for setting the '[,'] marks when joining lines.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^\t\t/
[?25l[?12l[?25h[?25lattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h/^This line/;'}-join
[?25lThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='First test: Start/End '.string(a)
[?25lFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?12l[?25h[?25l:[?12l[?25h$put ='Second test: Start/End '.string(b)
[?25lSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?12l[?25h[?25l:[?12l[?25h/^\t\t/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l11[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l22[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l:[?12l[?25hvsplit
[?25l|
 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 [+]                 [?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  normal g;

[?25l:  [?12l[?25h:  normal ggVGcpass
[?25l21 fewer lines
:  

:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  normal ggVGcfail

[?25l:  

:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  %w! test.out

[?25l"test.out" [New File] 1 line, 5 characters written

:  [?12l[?25h:endtry
[?25lpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                           pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :[count]close! and :[count]hide     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hclose!
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 7 lines, 39 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l"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 = [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                       test_close_count.in                                                              [?12l[?25h[?25l:[?12l[?25h.hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?12l[?25h[?25l12 9
15 12 9
15 12[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 15 lines, 106 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[?12l[?25h[?25l:[?12l[?25h$ hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$-1 close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h.+close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[+][?12l[?25h[?25l15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 19 lines, 143 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:.+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l25 24 23 21 124 23 21 124 23 2124 21[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 23 lines, 183 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l" Test for expression comparators.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let oldisident=&isident

[?25l:  [?12l[?25h:  set isident+=#

[?25l:  [?12l[?25h:  if 1 is#1

[?25l:    [?12l[?25h:    $put ='ok'

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    $put ='ng'

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  let &isident=oldisident

[?25l:  [?12l[?25h:endtry
[?25l" 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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^marker/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for erasing backword[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h

[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25lド[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h/^test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:rreg, 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, aa:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for various eval features.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:$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:[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun AppendRegContents(reg)
[?25l
:  [?12l[?25h  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:  [?12l[?25h:endfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l
:  [?12l[?25h  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:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hcommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?12l[?25h[?25l:[?12l[?25hfun SetReg(...)
[?25l
:  [?12l[?25h    call call('setreg', a:000)

[?25l:  [?12l[?25h    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l:  [?12l[?25h    call AppendRegContents(a:1)

[?25l:  [?12l[?25h    if a:1 isnot# '='

[?25l:    [?12l[?25h        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun ErrExe(str)
[?25l
:  [?12l[?25h    call append('$', 'Executing '.a:str)

[?25l:  [?12l[?25h    try

[?25l:    [?12l[?25h        execute a:str

[?25l:    [?12l[?25h    catch

[?25l:    [?12l[?25h        $put =v:exception

[?25l:    [?12l[?25h    endtry

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h$put ='{{{1 let tests'

[?25l:  [?12l[?25hlet @" = 'abc'

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\n"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\<C-m>"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @= = '"abc"'

[?25l:  [?12l[?25hAR =

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Basic setreg tests'

[?25l:  [?12l[?25hcall SetReg('a', 'abcA', 'c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcB', 'v')

[?25l:  [?12l[?25hcall SetReg('c', 'abcC', 'l')

[?25l:  [?12l[?25hcall SetReg('d', 'abcD', 'V')

[?25l:  [?12l[?25hcall SetReg('e', 'abcE', 'b')

[?25l:  [?12l[?25hcall SetReg('f', 'abcF', "\<C-v>")

[?25l:  [?12l[?25hcall SetReg('g', 'abcG', 'b10')

[?25l:  [?12l[?25hcall SetReg('h', 'abcH', "\<C-v>10")

[?25l:  [?12l[?25hcall SetReg('I', 'abcI')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending single lines with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc', 'c')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAl', 'l')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc2','c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc', 'ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb', 'ba')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc2','ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb2','b50a')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('C', 'abcCl', 'l')

[?25l:  [?12l[?25hcall SetReg('C', 'abcCc', 'c')

[?25l:  [?12l[?25hcall SetReg('D', 'abcDb', 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('E', 'abcEb', 'b')

[?25l:  [?12l[?25hcall SetReg('E', 'abcEl', 'l')

[?25l:  [?12l[?25hcall SetReg('F', 'abcFc', 'c')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending NL with setreg()'

[?25l:  [?12l[?25hcall setreg('a', 'abcA2', 'c')

[?25l:  [?12l[?25hcall setreg('b', 'abcB2', 'v')

[?25l:  [?12l[?25hcall setreg('c', 'abcC2', 'l')

[?25l:  [?12l[?25hcall setreg('d', 'abcD2', 'V')

[?25l:  [?12l[?25hcall setreg('e', 'abcE2', 'b')

[?25l:  [?12l[?25hcall setreg('f', 'abcF2', "\<C-v>")

[?25l:  [?12l[?25hcall setreg('g', 'abcG2', 'b10')

[?25l:  [?12l[?25hcall setreg('h', 'abcH2', "\<C-v>10")

[?25l:  [?12l[?25hcall setreg('I', 'abcI2')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', "\n")

[?25l:  [?12l[?25hcall SetReg('B', "\n", 'c')

[?25l:  [?12l[?25hcall SetReg('C', "\n")

[?25l:  [?12l[?25hcall SetReg('D', "\n", 'l')

[?25l:  [?12l[?25hcall SetReg('E', "\n")

[?25l:  [?12l[?25hcall SetReg('F', "\n", 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA3'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3'], 'l')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC3'], 'b')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD3'])

[?25l:  [?12l[?25hcall SetReg('e', [1, 2, 'abc', 3])

[?25l:  [?12l[?25hcall SetReg('f', [1, 2, 3])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ['abcA3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3l'], 'la')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3b'], 'lb')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD32'])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', ['abcA32'])

[?25l:  [?12l[?25hcall SetReg('B', ['abcB3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3l'], 'l')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD3b'], 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with NL with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l:  [?12l[?25hcall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l:  [?12l[?25hcall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with NLs with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l:  [?12l[?25hcall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l:  [?12l[?25hcall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Search and expressions'

[?25l:  [?12l[?25hcall SetReg('/', ['abc/'])

[?25l:  [?12l[?25hcall SetReg('/', ["abc/\n"])

[?25l:  [?12l[?25hcall SetReg('=', ['"abc/"'])

[?25l:  [?12l[?25hcall SetReg('=', ["\"abc/\n\""])

[?25l:  [?12l[?25h$put ='{{{1 System clipboard'

[?25l:  [?12l[?25hif has('clipboard')

[?25l:    [?12l[?25h" Save and restore system clipboard.

[?25l:    [?12l[?25h" If no connection to X-Server is possible, test should succeed.

[?25l:    [?12l[?25hlet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l:    [?12l[?25hlet _clipopt = &cb

[?25l:    [?12l[?25hlet &cb='unnamed'

[?25l:    [?12l[?25h5y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25htabdo :windo :echo "hi"

[?25l:    [?12l[?25h6y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25hlet &cb=_clipopt

[?25l:    [?12l[?25hcall call('setreg', _clipreg)

[?25l:    [?12l[?25helse

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l:    [?12l[?25hendif

[?25l:  [?12l[?25h$put ='{{{1 Errors'

[?25l:  [?12l[?25hcall ErrExe('call setreg()')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, 3, 4)')

[?25l:  [?12l[?25hcall ErrExe('call setreg([], 2)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, {})')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, [])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("/", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("=", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l:  [?12l[?25hendfun
[?25l:$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:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test()
[?25lhi*: 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction SetReg
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction AppendRegContents
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction ErrExe
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hdelcommand AR
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name not starting with capital
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! g:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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 moore linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or moore 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()
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name includes a colon
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! b:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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()[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name folowed by #
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! test2() "#

[?25l:  [?12l[?25h:echo "test2"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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() "#[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name starting with/without "g:", buffer-local funcref.
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! g:Foo(n)
[?25l
:  [?12l[?25h:  $put ='called Foo(' . a:n . ')'

[?25l:  [?12l[?25h:endfunction
[?25lExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?12l[?25h[?25l
:[?12l[?25hlet b:my_func = function('Foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcall b:my_func(1)
[?25l
called Foo(1)[?12l[?25h[?25l
:[?12l[?25hecho g:Foo(2)
[?25l0
called Foo(2)[?12l[?25h[?25l
:[?12l[?25hecho Foo(3)
[?25l0
called Foo(3)[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" script-local function used in Funcref must exist.
[?25l[?12l[?25h[?25l:[?12l[?25hso test_eval_func.vim
[?25ls:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Using $ instead of '$' must give an error
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h: call append($, 'foobar')

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='{{{1 getcurpos/setpos'
[?25l
{{{1 getcurpos/setpos[?12l[?25h[?25l
/[?12l[?25h^012345678
[?25lsearch 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[?12l[?25h012345[?25l:[?12l[?25hlet sp = getcurpos()
[?25l[?12l[?25h
[?25l:[?12l[?25hcall setpos('.', sp)
[?25l[?12l[?25h[?25l:[?12l[?25h$put
[?25lExecuting 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" substring and variable name
[?25l[?12l[?25h[?25l:[?12l[?25hlet str = 'abcdef'
[?25l[?12l[?25h[?25l:[?12l[?25hlet n = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[n:]
[?25l
def[?12l[?25h[?25l
:[?12l[?25h$put =str[:n]
[?25l
abcd[?12l[?25h[?25l
:[?12l[?25h$put =str[n:n]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet n
[?25l[?12l[?25h[?25l:[?12l[?25hlet nn = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[nn:]
[?25ldef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:nn]
[?25labcd[?12l[?25h[?25l:[?12l[?25h$put =str[nn:nn]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet nn
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:nn = 4
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:]
[?25lef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:b:nn]
[?25labcde[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:b:nn]
[?25l
e[?12l[?25h[?25l
:[?12l[?25hunlet b:nn
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'fixeol'vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
2 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" try editing files with 'fixeol' disabled
[?25l[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l
stays eol[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestEol
[?25l"XXTestEol" [New File] 2 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25he! XXNoEol
[?25l"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?12l[?25h[?25l
stays without[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestNoEol
[?25l"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fixeol
[?25l: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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXEol
[?25l"XXEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXNoEol
[?25l"XXNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestEol
[?25l"XXTestEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestNoEol
[?25l"XXTestNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l0[?12l[?25h[?25l:[?12l[?25h$r XXEol
[?25l"XXEol" 2 lines, 13 characterswith eolEND[?12l[?25h[?25l:[?12l[?25h$r XXNoEol
[?25l"XXNoEol" 1 line, 15 characterswithout eolEND[?12l[?25h[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXTestEol
[?25l"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?12l[?25h[?25l:[?12l[?25h$r XXTestNoEol
[?25l"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 84 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xtopdir directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GetCwdInfo(win, tab)
[?25l
:  [?12l[?25h: let tab_changed = 0

[?25l:  [?12l[?25h: let mod = ":t"

[?25l:  [?12l[?25h: if a:tab > 0 && a:tab != tabpagenr()

[?25l:    [?12l[?25h:   let tab_changed = 1

[?25l:    [?12l[?25h:   exec "tabnext " . a:tab

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l:  [?12l[?25h: if tab_changed

[?25l:    [?12l[?25h:   tabprevious

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: if a:win == 0 && a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir()

[?25l:    [?12l[?25h: elseif a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win)

[?25l:    [?12l[?25h: else

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win, a:tab)

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: return bufname . ' ' . dirname . ' ' . lflag

[?25l:  [?12l[?25h:endfunction
[?25l: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
[?12l[?25h[?25l

:[?12l[?25h" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xtopdir')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xtopdir
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir1')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir2')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir3')
[?25l[?12l[?25h[?25l:[?12l[?25hnew a
[?25l"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?12l[?25h[?25l:[?12l[?25hnew b
[?25l"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?12l[?25h[?25l:[?12l[?25hnew c
[?25l"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lc                                                                                a                                                                               [?12l[?25h[?25l:[?12l[?25hlcd Xdir1
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                            b                                                                               ab                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                                               b                                                                                [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lcb                                                                               b                                                            a                                                            /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25htabnew x
[?25l"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hnew y
[?25l"y" [New File]2 y  Xy                                                                                x                                                                                [?12l[?25h[?25l:[?12l[?25hnew z
[?25l"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lz                                                                                x                                                                               x  X[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25ly                                                                               x                                                                                y  X[?12l[?25h[?25l:[?12l[?25hlcd Xdir2
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lzb /                Xz                                                                               yb                                                                               x                                                            [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hlet tp_nr = tabpagenr()
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l 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              [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(3, tp_nr))
[?25l 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              [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(2, tp_nr))
[?25l 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              [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(1, tp_nr))
[?25l 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              [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall writefile(r, test_out, "a")
[?25l[?12l[?25h[?25l:[?12l[?25hq
[?25l 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for repeating insert and replace.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/Second
[?25l[?12l[?25h[?25looooecond line
ooo[?12l[?25h
Las[?25l:[?12l[?25h/^First/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:<[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'listchars' display with 'list' and :list[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:lines = []
[?25l[?12l[?25h[?25l:[?12l[?25hfunction GetScreenCharsForLine(lnum)
[?25l
:  [?12l[?25h:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l:  [?12l[?25h:endfunction
[?25l:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\\<CR>"[?12l[?25h[?25l
:[?12l[?25hnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l:endfunction[?12l[?25h[?25l
:[?12l[?25hset listchars+=tab:>-,space:.,trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset list
[?25l$.<expr>.GG.":call..\\<CR>"$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:$[?12l[?25h[?25l
:[?12l[?25hnormal! jzt
[?25l>-------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<<<<><<$[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset listchars-=trail:<
[?25l.....
.......>..[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hput =g:lines
[?25l10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?12l[?25h[?25l:[?12l[?25h'[,']w! test.out
[?25l"test.out" [New File] 10 lines, 124 characters written[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?12l[?25h[?25l
$[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset listchars+=trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist
[?25l   >>  [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:[?12l[?25h[?25l
:[?12l[?25hredir! >> test.out
[?25l[?12l[?25h[?25l:[?12l[?25h+1,$list
[?25l..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?12l[?25h[?25l
:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option (non-utf8)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25labcd{ef[?12l[?25h[?25l
:[?12l[?25h10new|:vsp|:vert resize 20
[?25l       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                                 [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,4)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: set linebreak"
[?25l[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: set linebreak + set list"
[?25l[?12l[?25h[?25l:[?12l[?25hset linebreak list listchars=
[?25l^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l^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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25labcdef|^Iabcdef hijklmn^I[?12l[?25h[?25l:[?12l[?25hset nolist linebreak ts=8
[?25l    abcdef[?12l[?25h[?25l:[?12l[?25hlet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25l      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l1|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hlet line="_S_\t bla"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l_S_      bla|+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25labbbb[?12l[?25h[?25l:[?12l[?25hsyn match ConcealVar contained /_/ conceal
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match All /.*/ contains=ConcealVar
[?25lSabb[?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: this not"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25labbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE: this not    [?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE:             
+aaaaaaaaaaaaa      [?12l[?25h[?25l:[?12l[?25h1/^REMOVE:
[?25l[?12l[?25h[?25l[?12l[?25h[?25lR[?12l[?25h[?25lEMOVE: 
REMOVE:[?12l[?25h[?25lthis not        
aaaaaaaaaaaaa
~                   [?12l[?25h[?25l:[?12l[?25h$put
[?25l~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?12l[?25h[?25llong line:          [?12l[?25h[?25l foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?12l[?25h+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25lTARGET at
+end[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx at[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak sbr=
[?25lfoobar 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)[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l1111-1111-1111-11-  
1111-1111-1111      [?12l[?25h[?25l[?12l[?25h[?25l111[?12l[?25h[?25l2222[?12l[?25h[?25l2222[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: using redo after block visual mode"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                [?12l[?25h[?25l1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?12l[?25h[?25l[?12l[?25h[?25la
a[?12l[?25h[?25l3 lines changedA
A
A[?12l[?25h[?25lA
AaA[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 10: using normal commands after block-visual"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?12l[?25h[?25l:[?12l[?25hset linebreak
[?25l[?12l[?25h[?25lAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?12l[?25h[?25l[?12l[?25h[?25l[?12l[?25h[?25lpqrs
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?12l[?25h[?25l:[?12l[?25hset linebreak wrap
[?25l[?12l[?25h[?25lA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?12l[?25h[?25l[?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l[?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?12l[?25h[?25l0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25laaaaaaaaaaaaaaaaaaaa|~[?12l[?25h[?25l:[?12l[?25hset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l$[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hlet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25la_|
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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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-$[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 62 lines, 2030 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for search('multi-byte char', 'bce')[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hsource small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hsource mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h/^Test bce:/+1
[?25l[?12l[?25h[?25l:[?12l[?25h$put =search('A', 'bce', line('.'))
[?25l15[?12l[?25h[?25l:[?12l[?25h1;/^Results:/,$wq! test.out
[?25l"test.out" [New File] 5 lines, 27 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for Unicode manipulationsvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:" 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
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Visual block Insert adjusts for multi-byte char
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                    [?12l[?25h[?25l:[?12l[?25hcall setline(1, ["aaa", "あああ", "bbb"])
[?25laaa
あああbbb[+][?12l[?25h[?25l:[?12l[?25hexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25lxaa
xあああ
bxbb[?12l[?25h[?25l:[?12l[?25hlet r = getline(1, '$')
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l:" 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
 [?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
axaa
xあああ
bxbb3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for built-in function strchars()
[?25l[?12l[?25h[?25l:[?12l[?25hfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l
:  [?12l[?25h:^I$put=strchars(str)

[?25l:  [?12l[?25h:^I$put=strchars(str, 0)

[?25l:  [?12l[?25h:^I$put=strchars(str, 1)

[?25l:  [?12l[?25h:endfor
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for customlist completion
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete1(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あ', 'い']

[?25l:  [?12l[?25h:endfunction
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete2(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l:  [?12l[?25h:endfunction
[?25l:/^start:/,$wq! test.out
ENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete3(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l:  [?12l[?25h:endfunction
[?25lENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 _[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for wordcount() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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:
[?12l[?25h[?25l
:[?12l[?25hset selection=inclusive fileformat=unix fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                               [?12l[?25h[?25l:[?12l[?25hfu DoRecordWin(...)
[?25l
:  [?12l[?25h:^Iwincmd k

[?25l:  [?12l[?25h:       if exists("a:1")

[?25l:    [?12l[?25h:           call cursor(a:1)

[?25l:    [?12l[?25h:       endif

[?25l:  [?12l[?25h:       let result=[]

[?25l:  [?12l[?25h:       call add(result, g:test)

[?25l:  [?12l[?25h:       call add(result, getline(1, '$'))

[?25l:  [?12l[?25h:       call add(result, wordcount())

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:       return result

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu PutInWindow(args)
[?25l
:  [?12l[?25h:       wincmd k

[?25l:  [?12l[?25h:       %d _

[?25l:  [?12l[?25h:       call append(1, a:args)

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu Log()
[?25l
:  [?12l[?25h:   $put ='----'

[?25l:  [?12l[?25h:   $put =remove(g:log,0)

[?25l:  [?12l[?25h:   $put =string(g:log)

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu! STL()
[?25l
:  [?12l[?25h:    if mode() =~? 'V'

[?25l:    [?12l[?25h:       let g:visual_stat=wordcount()

[?25l:    [?12l[?25h:    endif

[?25l:  [?12l[?25h:    return string(wordcount())

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: empty window"
[?25l[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin()
[?25l[No Name]                                                                        test_wordcount.in                                                               [?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 00, 'cursor_bytes': 0}][+][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: some words, cursor at start"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25lone two three[+][?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([1,1,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_worrds': 0, 'bytes': 15, 'cursor_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 3: some words, cursor at end"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 15}][?12l[?25h[?25l


:[?12l[?25hset ve=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 5: several lines with words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25lone two threeone two three--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([4,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
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}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 6: one line with BOM set"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25l[No Name] [+]                                                                   test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset bomb
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2 lines, 18 characters writtenXtesta         [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 18, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25hwincmd k
[?25lXtest                                                                           test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset nobomb
[?25l[+][?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtest" 2 lines, 15 characters written    [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 7: one line with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh'])
[?25lÄne M¤ne Müh[+]--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_worrds': 3, 'bytes': 17, 'cursor_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 8: several lines with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25lund raus bist dü!--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'wwords': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 9: visual mode, complete buffer"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}[?12l[?25h[?25lÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 10: visual mode (empty)"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l[?12l[?25h[?25lursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 11: visual mode, single line"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h2
[?25l2,1,3}[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual_2}[?12l[?25h[?25lÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}[?12l[?25h[?25l
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3}[?12l[?25hsor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]s                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^RESULT test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for autocommands:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" drop out when there is no gzip program
[?25l[?12l[?25h[?25l:[?12l[?25hif !executable("gzip")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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/[?12l[?25h[?25l:[?12l[?25hlet $GZIP = ""
[?25l[?12l[?25h[?25l:[?12l[?25hau FileChangedShell * echo "caught FileChangedShell"
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePre    *.gz   '[,']!gzip
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePost   *.gz   undo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?12l[?25h[?25l11 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[?12l[?25h[?25l:[?12l[?25hau FileReadPost    *.gz   '[,']!gzip -d
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$r Xtestfile.gz                " Read and decompress the testfile
[?25l"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?12l[?25h[?25lstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?12l[?25h[?25l
:[?12l[?25h?startstart?,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 29 lines, 788 characters written[?12l[?25h[?25l:[?12l[?25hau BufNewFile      *.c    read Xtest.c
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25lsearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25he! foo.c                       " Will load Xtest.c
[?25l"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hau! FileAppendPre
[?25l/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile.gz                " Edit compressed file
[?25l:!gzip -d 'Xtestfile.gz'

[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?12l[?25h[?25lcaught FileChangedShell

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hset shelltemp                  " need temp files here
[?25lstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out                    " Edit the output file
[?25l"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[?12l[?25h[?25l:[?12l[?25h23,$!cat
[?25l[?12l[?25h[?25l218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h23,$s/\r$//                 " remove CR for when sed adds them
[?25lE486: Pattern not found: \r$
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25lstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?12l[?25h[?25l
:[?12l[?25hau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz             " Read compressed file
[?25l[?12l[?25h[?25l"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw                           " write it, after filtering
[?25l"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau!             " remove all autocommands
[?25lE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he               " Edit test.out again
[?25l"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?12l[?25h[?25l:[?12l[?25hset nobin ff&   " use the default fileformat for writing
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 61 lines, 1599 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for reading and writing files with conversion for Win32.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make this a dummy test for non-Win32 systems
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("win32") | e! test.ok | wq! test.out | endif
[?25l"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Lua interface and luaeval() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso lua.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?12l[?25h[?25l:[?12l[?25hlua h = vim.dict(); h.list = l
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect()
[?25l[?12l[?25h[?25l/[?12l[?25h^1
[?25l[?12l[?25h[?25l:[?12l[?25h" change buffer contents
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf = vim.buffer()
[?25l[?12l[?25h[?25l:[?12l[?25hlua curline = vim.eval"line('.')"
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf[curline] = "1 changed line 1"
[?25lchanged line 1
[?12l[?25h[?25l:[?12l[?25h" scalar test
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_string = luaeval('"string"')
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_1000 = luaeval('1000')
[?25l[?12l[?25h[?25l:[?12l[?25hif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l
:  [?12l[?25h:let scalar_res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let scalar_res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?12l[?25h[?25l


:[?12l[?25hcall append(search("^1"), "scalar test " . scalar_res)
[?25lscalar test OK
2 line 2[?12l[?25h[?25l:[?12l[?25h" dictionary containing a list
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp = luaeval("h").list[1]
[?25l[?12l[?25h[?25l:[?12l[?25h/^2/put =tmp
[?25l
dictionary with list OK[?12l[?25h[?25l
:[?12l[?25h" circular list (at the same time test lists containing lists)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l
[?25l[?12l[?25h[?25l:[?12l[?25hlet l2 = luaeval("h").list
[?25l[?12l[?25h[?25l:[?12l[?25hif l2[2] == l2
[?25l
:  [?12l[?25h:let res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l: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}")[?12l[?25h[?25l
:[?12l[?25hcall setline(search("^3"), "circular test " . res)
[?25l
circular test OK[?12l[?25h[?25l
:[?12l[?25hlet l = []
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.eval("l")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = l[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = l[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = l[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(l)
[?25l
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?12l[?25h[?25l
:[?12l[?25hlet d = {}
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = vim.eval("d")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[4] = d[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[5] = d[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[6] = d[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[7] = d[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(d)
[?25l
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?12l[?25h[?25l
:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 7L, 206C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python') | e! test.ok | wq! test.out | endif
[?25l"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h:py3 import vim

[?25l:  [?12l[?25h:py3 cb = vim.current.buffer

[?25l:  [?12l[?25h:let l = []

[?25l:  [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:  [?12l[?25h:py3 f=vim.bindeval('function("strlen")')

[?25l:  [?12l[?25h:" Extending List directly with different types

[?25l:  [?12l[?25h:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-4])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:13]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List assignment

[?25l:  [?12l[?25h:py3 l[0]=0

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:py3 l[-2]=f

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Extending Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:fun d.f()

[?25l:    [?12l[?25h:  return 1

[?25l:    [?12l[?25h:endfun

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hd=vim.bindeval('d')

[?25l:    [?12l[?25hd['1']='asd'

[?25l:    [?12l[?25hd.update()  # Must not do anything, including throwing errors

[?25l:    [?12l[?25hd.update(b=[1, 2, f])

[?25l:    [?12l[?25hd.update((('-1', {'a': 1}),))

[?25l:    [?12l[?25hd.update({'0': -1})

[?25l:    [?12l[?25hdk = d.keys()

[?25l:    [?12l[?25hdv = d.values()

[?25l:    [?12l[?25hdi = d.items()

[?25l:    [?12l[?25hdk.sort(key=repr)

[?25l:    [?12l[?25hdv.sort(key=repr)

[?25l:    [?12l[?25hdi.sort(key=repr)

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =py3eval('d[''f''](self={})')

[?25l:    [?12l[?25h:$put =py3eval('repr(dk)')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:for [key, Val] in sort(items(d))

[?25l:      [?12l[?25h:  $put =string(key) . ' : ' . string(Val)

[?25l:      [?12l[?25h:  unlet key Val

[?25l:      [?12l[?25h:endfor

[?25l:    [?12l[?25h:py3 del dk

[?25l:    [?12l[?25h:py3 del di

[?25l:    [?12l[?25h:py3 del dv

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items with del

[?25l:    [?12l[?25h:py3 del l[2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:try

[?25l:      [?12l[?25h:   py3 del l[:3]

[?25l:      [?12l[?25h:   py3 del l[1:]

[?25l:      [?12l[?25h:catch

[?25l:      [?12l[?25h:   $put =v:exception

[?25l:      [?12l[?25h:endtry

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:py3 del d['-1']

[?25l:    [?12l[?25h:py3 del d['f']

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''b'')'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''1''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(''0'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(''1'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:$put =string(d)

[?25l:    [?12l[?25h:$put =py3eval('repr(d.popitem())')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.get(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[2:1]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:3]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:5]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:6]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[-1:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-3:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-4:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-5:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-6:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[::2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[3:0:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Slice assignment to a list

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['a']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[1:2]=['b']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:4]=['c']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[4:4]=['d']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-1:2]=['e']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-10:2]=['f']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:-10]=['g']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = []

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['h']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:6:2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:-2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Locked variables

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:lockvar! l

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hdef emsg(ei):

[?25l:    [?12l[?25h    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l:    [?12l[?25h

[?25l:    [?12l[?25htry:

[?25l:    [?12l[?25h    l[2]='i'

[?25l:    [?12l[?25hexcept vim.error:

[?25l:    [?12l[?25h    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:unlockvar! l

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Function calls

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25himport sys

[?25l:    [?12l[?25himport re

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hdef ee(expr, g=globals(), l=locals()):

[?25l:    [?12l[?25h    cb = vim.current.buffer

[?25l:    [?12l[?25h    try:

[?25l:    [?12l[?25h        try:

[?25l:    [?12l[?25h            exec(expr, g, l)

[?25l:    [?12l[?25h        except Exception as e:

[?25l:    [?12l[?25h            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:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l:    [?12l[?25h                m = py33_type_error_pattern.search(str(e))

[?25l:    [?12l[?25h                if m:

[?25l:    [?12l[?25h                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l:    [?12l[?25h                else:

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l:    [?12l[?25h            else:

[?25l:    [?12l[?25h                msg = repr((e.__class__, e))

[?25l:    [?12l[?25h                # Some Python versions say can't, others cannot.

[?25l:    [?12l[?25h                if msg.find('can\'t') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('can\'t', 'cannot')

[?25l:    [?12l[?25h                # Some Python versions use single quote, some double quote

[?25l:    [?12l[?25h                if msg.find('"cannot ') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l:    [?12l[?25h                if msg.find(' attributes"') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l:    [?12l[?25h                cb.append(expr + ':' + msg)

[?25l:    [?12l[?25h        else:

[?25l:    [?12l[?25h            cb.append(expr + ':NOT FAILED')

[?25l:    [?12l[?25h    except Exception as e:

[?25l:    [?12l[?25h        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:fun New(...)

[?25l:      [?12l[?25h:   return ['NewStart']+a:000+['NewEnd']

[?25l:      [?12l[?25h:endfun

[?25l:      [?12l[?25h:fun DictNew(...) dict

[?25l:[?12l[?25h:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:let l=[function('New'), function('DictNew')]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:py3 l.extend(list(l[0](1, 2, 3)))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l+=[l[0].name]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 ee('l[1](1, 2, 3)')

[?25l:[?12l[?25h:py3 f=l[0]

[?25l:[?12l[?25h:delfunction New

[?25l:[?12l[?25h:py3 ee('f(1, 2, 3)')

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let l=[0.0]

[?25l:[?12l[?25h:   py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:   py3 l.extend([0.0])

[?25l:[?12l[?25h:   $put =string(l)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='[0.0, 0.0]'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:let messages=[]

[?25l:[?12l[?25h:delfunction DictNew

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25hd=vim.bindeval('{}')

[?25l:[?12l[?25hm=vim.bindeval('messages')

[?25l:[?12l[?25hdef em(expr, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l:[?12l[?25h            m.extend([TypeError.__name__])

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            m.extend([e.__class__.__name__])

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d["abc1"]')

[?25l:[?12l[?25hem('d["abc1"]="\\0"')

[?25l:[?12l[?25hem('d["abc1"]=vim')

[?25l:[?12l[?25hem('d[""]=1')

[?25l:[?12l[?25hem('d["a\\0b"]=1')

[?25l:[?12l[?25hem('d[b"a\\0b"]=1')

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d.pop("abc1")')

[?25l:[?12l[?25hem('d.popitem()')

[?25l:[?12l[?25hdel em

[?25l:[?12l[?25hdel m

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =messages

[?25l:[?12l[?25h:unlet messages

[?25l:[?12l[?25h:" locked and scope attributes

[?25l:[?12l[?25h:let d={} | let dl={} | lockvar dl

[?25l:[?12l[?25h:for s in split("d dl v: g:")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! let d.abc2=1

[?25l:[?12l[?25h:silent! let dl.abc3=1

[?25l:[?12l[?25h:py3 d.locked=True

[?25l:[?12l[?25h:py3 dl.locked=False

[?25l:[?12l[?25h:silent! let d.def=1

[?25l:[?12l[?25h:silent! let dl.def=1

[?25l:[?12l[?25h:put ='d:'.string(d)

[?25l:[?12l[?25h:put ='dl:'.string(dl)

[?25l:[?12l[?25h:unlet d dl

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:let l=[] | let ll=[] | lockvar ll

[?25l:[?12l[?25h:for s in split("l ll")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! call extend(l, [0])

[?25l:[?12l[?25h:silent! call extend(ll, [0])

[?25l:[?12l[?25h:py3 l.locked=True

[?25l:[?12l[?25h:py3 ll.locked=False

[?25l:[?12l[?25h:silent! call extend(l, [1])

[?25l:[?12l[?25h:silent! call extend(ll, [1])

[?25l:[?12l[?25h:put ='l:'.string(l)

[?25l:[?12l[?25h:put ='ll:'.string(ll)

[?25l:[?12l[?25h:unlet l ll

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" py3eval()

[?25l:[?12l[?25h:let l=py3eval('[0, 1, 2]')

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l:[?12l[?25h:$put =sort(items(d))

[?25l:[?12l[?25h:let v:errmsg = ''

[?25l:[?12l[?25h:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let f=py3eval('0.0')

[?25l:[?12l[?25h:   $put =string(f)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='0.0'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:" Invalid values:

[?25l:[?12l[?25h:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l:[?12l[?25h:   try

[?25l:[?12l[?25h:      let v=py3eval(e)

[?25l:[?12l[?25h:   catch

[?25l:[?12l[?25h:      let toput=e.":\t".v:exception[:13]

[?25l:[?12l[?25h:      $put =toput

[?25l:[?12l[?25h:   endtry

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" threading

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport threading

[?25l:[?12l[?25himport time

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass T(threading.Thread):

[?25l:[?12l[?25h    def __init__(self):

[?25l:[?12l[?25h        threading.Thread.__init__(self)

[?25l:[?12l[?25h        self.t = 0

[?25l:[?12l[?25h        self.running = True

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def run(self):

[?25l:[?12l[?25h        while self.running:

[?25l:[?12l[?25h            self.t += 1

[?25l:[?12l[?25h            time.sleep(0.1)

[?25l:[?12l[?25h

[?25l:[?12l[?25ht = T()

[?25l:[?12l[?25hdel T

[?25l:[?12l[?25ht.start()

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:sleep 1

[?25l:[?12l[?25h:py3 t.running = False

[?25l:[?12l[?25h:py3 t.join()

[?25l:[?12l[?25h:" Check if the background thread is working.  Count should be 10, but

on a

[?25l:[?12l[?25h:" busy system (AppVeyor) it can be much lower.

[?25l:[?12l[?25h:py3 l[0] = t.t > 4

[?25l:[?12l[?25h:py3 del time

[?25l:[?12l[?25h:py3 del threading

[?25l:[?12l[?25h:py3 del t

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" settrace

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef traceit(frame, event, arg):

[?25l:[?12l[?25h    global l

[?25l:[?12l[?25h    if event == "line":

[?25l:[?12l[?25h        l += [frame.f_lineno]

[?25l:[?12l[?25h    return traceit

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef trace_main():

[?25l:[?12l[?25h    for i in range(5):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:py3 sys.settrace(traceit)

[?25l:[?12l[?25h:py3 trace_main()

[?25l:[?12l[?25h:py3 sys.settrace(None)

[?25l:[?12l[?25h:py3 del traceit

[?25l:[?12l[?25h:py3 del trace_main

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Slice

[?25l:[?12l[?25h:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l:[?12l[?25h:py3 l = ll[:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-4:-2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[0:6]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-10:10]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:-1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[::2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 del l

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Vars

[?25l:[?12l[?25h:let g:foo = 'bac'

[?25l:[?12l[?25h:let w:abc3 = 'def'

[?25l:[?12l[?25h:let b:baz = 'bar'

[?25l:[?12l[?25h:let t:bar = 'jkl'

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  throw "Abc"

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  put =py3eval('vim.vvars[''exception'']')

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:put =py3eval('vim.vars[''foo'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Options

[?25l:[?12l[?25h:" paste:          boolean, global

[?25l:[?12l[?25h:" previewheight   number,  global

[?25l:[?12l[?25h:" operatorfunc:   string,  global

[?25l:[?12l[?25h:" number:         boolean, window-local

[?25l:[?12l[?25h:" numberwidth:    number,  window-local

[?25l:[?12l[?25h:" colorcolumn:    string,  window-local

[?25l:[?12l[?25h:" statusline:     string,  window-local/global

[?25l:[?12l[?25h:" autoindent:     boolean, buffer-local

[?25l:[?12l[?25h:" shiftwidth:     number,  buffer-local

[?25l:[?12l[?25h:" omnifunc:       string,  buffer-local

[?25l:[?12l[?25h:" preserveindent: boolean, buffer-local/global

[?25l:[?12l[?25h:" path:           string,  buffer-local/global

[?25l:[?12l[?25h:let g:bufs=[bufnr('%')]

[?25l:[?12l[?25h:new

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd j

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd l

[?25l:[?12l[?25h:fun RecVars(opt)

[?25l:[?12l[?25h:  let gval =string(eval('&g:'.a:opt))

[?25l:[?12l[?25h:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  put ='  G: '.gval

[?25l:[?12l[?25h:  put ='  W: '.wvals

[?25l:[?12l[?25h:  put ='  B: '.wvals

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef e(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('return ' + repr(e.__class__.__name__))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef ev(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        return eval(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l:[?12l[?25h        return 0

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:fun E(s)

[?25l:[?12l[?25h:   python3 e(vim.eval('a:s'))

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun Ev(s)

[?25l:[?12l[?25h:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l:[?12l[?25h:   if exists('exc')

[?25l:[?12l[?25h:       throw exc

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   return r

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:py3 gopts1=vim.options

[?25l:[?12l[?25h:py3 wopts1=vim.windows[2].options

[?25l:[?12l[?25h:py3 wopts2=vim.windows[0].options

[?25l:[?12l[?25h:py3 wopts3=vim.windows[1].options

[?25l:[?12l[?25h:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l:[?12l[?25h:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l:[?12l[?25h:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l:[?12l[?25h:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l:[?12l[?25h:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l:[?12l[?25h:py3 gset=set(iter(gopts1))

[?25l:[?12l[?25h:py3 wset=set(iter(wopts1))

[?25l:[?12l[?25h:py3 bset=set(iter(bopts1))

[?25l:[?12l[?25h:set path=.,..,,

[?25l:[?12l[?25h:let lst=[]

[?25l:[?12l[?25h:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l:[?12l[?25h:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l:[?12l[?25h:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l:[?12l[?25h:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l:[?12l[?25h:   py3 oname=vim.eval('oname')

[?25l:[?12l[?25h:   py3 oval1=vim.bindeval('oval1')

[?25l:[?12l[?25h:   py3 oval2=vim.bindeval('oval2')

[?25l:[?12l[?25h:   py3 oval3=vim.bindeval('oval3')

[?25l:[?12l[?25h:   if invval is 0 || invval is 1

[?25l:[?12l[?25h:       py3 invval=bool(vim.bindeval('invval'))

[?25l:[?12l[?25h:   else

[?25l:[?12l[?25h:       py3 invval=vim.bindeval('invval')

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   if bool

[?25l:[?12l[?25h:       py3 oval1=bool(oval1)

[?25l:[?12l[?25h:       py3 oval2=bool(oval2)

[?25l:[?12l[?25h:       py3 oval3=bool(oval3)

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   put ='>>> '.oname

[?25l:[?12l[?25h:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l:[?12l[?25h:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l:[?12l[?25h:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l:[?12l[?25h:       try

[?25l:[?12l[?25h:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l:[?12l[?25h:       catch

[?25l:[?12l[?25h:           put ='  p/'.v.'! '.v:exception

[?25l:[?12l[?25h:       endtry

[?25l:[?12l[?25h:       let r=E(v.'['''.oname.''']=invval')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  inv: '.string(invval).'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l:[?12l[?25h:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l:[?12l[?25h:           let r=E(vv.'['''.oname.''']='.val)

[?25l:[?12l[?25h:           if r isnot 0

[?25l:[?12l[?25h:               put ='  '.vv.'! '.r

[?25l:[?12l[?25h:           endif

[?25l:[?12l[?25h:       endfor

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:   for v in ['wopts3', 'bopts3']

[?25l:[?12l[?25h:       let r=E('del '.v.'["'.oname.'"]')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  del '.v.'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:delfunction RecVars

[?25l:[?12l[?25h:delfunction E

[?25l:[?12l[?25h:delfunction Ev

[?25l:[?12l[?25h:py3 del ev

[?25l:[?12l[?25h:py3 del e

[?25l:[?12l[?25h:only

[?25l:[?12l[?25h:for buf in g:bufs[1:]

[?25l:[?12l[?25h:   execute 'bwipeout!' buf

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:py3 del gopts1

[?25l:[?12l[?25h:py3 del wopts1

[?25l:[?12l[?25h:py3 del wopts2

[?25l:[?12l[?25h:py3 del wopts3

[?25l:[?12l[?25h:py3 del bopts1

[?25l:[?12l[?25h:py3 del bopts2

[?25l:[?12l[?25h:py3 del bopts3

[?25l:[?12l[?25h:py3 del oval1

[?25l:[?12l[?25h:py3 del oval2

[?25l:[?12l[?25h:py3 del oval3

[?25l:[?12l[?25h:py3 del oname

[?25l:[?12l[?25h:py3 del invval

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test buffer object

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:put ='First line'

[?25l:[?12l[?25h:put ='Second line'

[?25l:[?12l[?25h:put ='Third line'

[?25l:[?12l[?25h:1 delete _

[?25l:[?12l[?25h:py3 b=vim.current.buffer

[?25l:[?12l[?25h:wincmd w

[?25l:[?12l[?25h:mark a

[?25l:[?12l[?25h:augroup BUFS

[?25l:[?12l[?25h:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:augroup END

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Tests BufferAppend and BufferItem

[?25l:[?12l[?25hcb.append(b[0])

[?25l:[?12l[?25h# Tests BufferSlice and BufferAssSlice

[?25l:[?12l[?25hcb.append('abc5') # Will be overwritten

[?25l:[?12l[?25hcb[-1:] = b[:-2]

[?25l:[?12l[?25h# Test BufferLength and BufferAssSlice

[?25l:[?12l[?25hcb.append('def') # Will not be overwritten

[?25l:[?12l[?25hcb[len(cb):] = b[:]

[?25l:[?12l[?25h# Test BufferAssItem and BufferMark

[?25l:[?12l[?25hcb.append('ghi') # Will be overwritten

[?25l:[?12l[?25hcb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l:[?12l[?25h# Test BufferRepr

[?25l:[?12l[?25hcb.append(repr(cb) + repr(b))

[?25l:[?12l[?25h# Modify foreign buffer

[?25l:[?12l[?25hb.append('foo')

[?25l:[?12l[?25hb[0]='bar'

[?25l:[?12l[?25hb[0:0]=['baz']

[?25l:[?12l[?25hvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l:[?12l[?25h# Test assigning to name property

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hold_name = cb.name

[?25l:[?12l[?25hcb.name = 'foo'

[?25l:[?12l[?25hcb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hb.name = 'bar'

[?25l:[?12l[?25hcb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hcb.name = old_name

[?25l:[?12l[?25hcb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel old_name

[?25l:[?12l[?25h# Test CheckBuffer

[?25l:[?12l[?25hfor _b in vim.buffers:

[?25l:[?12l[?25h    if _b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(_b.number))

[?25l:[?12l[?25hdel _b

[?25l:[?12l[?25hcb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l:[?12l[?25hfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr)

[?25l:[?12l[?25h    except vim.error:

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        # Usually a SEGV here

[?25l:[?12l[?25h        # Should not happen in any case

[?25l:[?12l[?25h        cb.append('No exception for ' + expr)

[?25l:[?12l[?25hvim.command('cd .')

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.buffers object

[?25l:[?12l[?25h:set hidden

[?25l:[?12l[?25h:edit a

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit b

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit c

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Check GCing iterator that was not fully exhausted

[?25l:[?12l[?25hi = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# and also check creating more than one iterator at a time

[?25l:[?12l[?25hi2 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i2:' + str(next(i2)))

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# The following should trigger GC and not cause any problems

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hdel i2

[?25l:[?12l[?25hi3 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i3:' + str(next(i3)))

[?25l:[?12l[?25hdel i3

[?25l:[?12l[?25h

[?25l:[?12l[?25hprevnum = 0

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    # Check buffer order

[?25l:[?12l[?25h    if prevnum >= b.number:

[?25l:[?12l[?25h        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l:[?12l[?25h    # Check indexing: vim.buffers[number].number == number

[?25l:[?12l[?25h    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l:[?12l[?25h    prevnum = b.number

[?25l:[?12l[?25hdel prevnum

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append(str(len(vim.buffers)))

[?25l:[?12l[?25h

[?25l:[?12l[?25hbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Test wiping out buffer with existing iterator

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept vim.error:

[?25l:[?12l[?25h    pass

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h    cb.append('!!!! No vim.error')

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept StopIteration:

[?25l:[?12l[?25h    cb.append('StopIteration')

[?25l:[?12l[?25hdel i4

[?25l:[?12l[?25hdel bnums

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l:[?12l[?25h:tabnew 0

[?25l:[?12l[?25h:tabnew 1

[?25l:[?12l[?25h:vnew a.1

[?25l:[?12l[?25h:tabnew 2

[?25l:[?12l[?25h:vnew a.2

[?25l:[?12l[?25h:vnew b.2

[?25l:[?12l[?25h:vnew c.2

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hcb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l:[?12l[?25hcb.append('Current tab pages:')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef W(w):

[?25l:[?12l[?25h    if '(unknown)' in repr(w):

[?25l:[?12l[?25h        return '<window object (unknown)>'

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef Cursor(w, start=len(cb)):

[?25l:[?12l[?25h    if w.buffer is cb:

[?25l:[?12l[?25h        return repr((start - w.cursor[0], w.cursor[1]))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w.cursor)

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor t in vim.tabpages:

[?25l:[?12l[?25h    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l:[?12l[?25h    cb.append('  Windows:')

[?25l:[?12l[?25h    for w in t.windows:

[?25l:[?12l[?25h        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l:[?12l[?25h        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l:[?12l[?25h        for attr in ('height', 'row', 'width', 'col'):

[?25l:[?12l[?25h            try:

[?25l:[?12l[?25h                aval = getattr(w, attr)

[?25l:[?12l[?25h                if type(aval) is not int:

[?25l:[?12l[?25h                    raise TypeError

[?25l:[?12l[?25h                if aval < 0:

[?25l:[?12l[?25h                    raise ValueError

[?25l:[?12l[?25h            except Exception as e:

[?25l:[?12l[?25h                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l:[?12l[?25h        del aval

[?25l:[?12l[?25h        del attr

[?25l:[?12l[?25h        w.cursor = (len(w.buffer), 0)

[?25l:[?12l[?25hdel W

[?25l:[?12l[?25hdel Cursor

[?25l:[?12l[?25hcb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l:[?12l[?25hif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l:[?12l[?25h    cb.append('!!!!!! Windows differ')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.current

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef H(o):

[?25l:[?12l[?25h    return repr(o)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l:[?12l[?25hcb.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:[?12l[?25hdel H

[?25l:[?12l[?25h# Assigning: fails

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    vim.current.window = vim.tabpages[0].window

[?25l:[?12l[?25hexcept ValueError:

[?25l:[?12l[?25h    cb.append('ValueError at assigning foreign tab window')

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor attr in ('window', 'tabpage', 'buffer'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        setattr(vim.current, attr, None)

[?25l:[?12l[?25h    except TypeError:

[?25l:[?12l[?25h        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Assigning: success

[?25l:[?12l[?25hvim.current.tabpage = vim.tabpages[-2]

[?25l:[?12l[?25hvim.current.buffer = cb

[?25l:[?12l[?25hvim.current.window = vim.windows[0]

[?25l:[?12l[?25hvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window))

[?25l:[?12l[?25hcb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l:[?12l[?25hcb.append('Current line: ' + repr(vim.current.line))

[?25l:[?12l[?25hws = list(vim.windows)

[?25l:[?12l[?25hts = list(vim.tabpages)

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    if b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(b.number))

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hcb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l:[?12l[?25hcb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l:[?12l[?25hdel w

[?25l:[?12l[?25hdel t

[?25l:[?12l[?25hdel ts

[?25l:[?12l[?25hdel ws

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:tabonly!

[?25l:[?12l[?25h:only!

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test types

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor expr, attr in (

[?25l:[?12l[?25h    ('vim.vars',                         'Dictionary'),

[?25l:[?12l[?25h    ('vim.options',                      'Options'),

[?25l:[?12l[?25h    ('vim.bindeval("{}")',               'Dictionary'),

[?25l:[?12l[?25h    ('vim.bindeval("[]")',               'List'),

[?25l:[?12l[?25h    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l:[?12l[?25h    ('vim.current.buffer',               'Buffer'),

[?25l:[?12l[?25h    ('vim.current.range',                'Range'),

[?25l:[?12l[?25h    ('vim.current.window',               'Window'),

[?25l:[?12l[?25h    ('vim.current.tabpage',              'TabPage'),

[?25l:[?12l[?25h):

[?25l:[?12l[?25h    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l:[?12l[?25hdel expr

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test __dir__() method

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor name, o in (

[?25l:[?12l[?25h        ('current',    vim.current),

[?25l:[?12l[?25h        ('buffer',     vim.current.buffer),

[?25l:[?12l[?25h        ('window',     vim.current.window),

[?25l:[?12l[?25h        ('tabpage',    vim.current.tabpage),

[?25l:[?12l[?25h        ('range',      vim.current.range),

[?25l:[?12l[?25h        ('dictionary', vim.bindeval('{}')),

[?25l:[?12l[?25h        ('list',       vim.bindeval('[]')),

[?25l:[?12l[?25h        ('function',   vim.bindeval('function("tr")')),

[?25l:[?12l[?25h        ('output',     sys.stdout),

[?25l:[?12l[?25h    ):

[?25l:[?12l[?25h    cb.append(name + ':' + ','.join(dir(o)))

[?25l:[?12l[?25hdel name

[?25l:[?12l[?25hdel o

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.*.__new__

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary({})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List()'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'')'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l:[?12l[?25h:$put ='auto_rebind'

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.Function

[?25l:[?12l[?25h:function Args(...)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:function SelfArgs(...) dict

[?25l:[?12l[?25h:   return [a:000, self]

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:" The following four lines should not crash

[?25l:[?12l[?25h:let Pt = function('tr', [[]], {'l': []})

[?25l:[?12l[?25h:py3 Pt = vim.bindeval('Pt')

[?25l:[?12l[?25h:unlet Pt

[?25l:[?12l[?25h:py3 del Pt

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef ecall(out_prefix, func, *args, **kwargs):

[?25l:[?12l[?25h    line = out_prefix + ': '

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        ret = func(*args, **kwargs)

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        line += '!exception: ' + emsg(sys.exc_info())

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l:[?12l[?25h    cb.append(line)

[?25l:[?12l[?25ha = vim.Function('Args')

[?25l:[?12l[?25hpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l:[?12l[?25hpa2 = vim.Function('Args', args=[])

[?25l:[?12l[?25hpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l:[?12l[?25hpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l:[?12l[?25hcb.append('a: ' + repr(a))

[?25l:[?12l[?25hcb.append('pa1: ' + repr(pa1))

[?25l:[?12l[?25hcb.append('pa2: ' + repr(pa2))

[?25l:[?12l[?25hcb.append('pa3: ' + repr(pa3))

[?25l:[?12l[?25hcb.append('pa4: ' + repr(pa4))

[?25l:[?12l[?25hsa = vim.Function('SelfArgs')

[?25l:[?12l[?25hpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l:[?12l[?25hpsa2 = vim.Function('SelfArgs', args=[])

[?25l:[?12l[?25hpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l:[?12l[?25hpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l:[?12l[?25hpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l:[?12l[?25hpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l:[?12l[?25hpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l:[?12l[?25hpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l:[?12l[?25hpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l:[?12l[?25hpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l:[?12l[?25hpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l:[?12l[?25hpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l:[?12l[?25hcb.append('sa: ' + repr(sa))

[?25l:[?12l[?25hcb.append('psa1: ' + repr(psa1))

[?25l:[?12l[?25hcb.append('psa2: ' + repr(psa2))

[?25l:[?12l[?25hcb.append('psa3: ' + repr(psa3))

[?25l:[?12l[?25hcb.append('psa4: ' + repr(psa4))

[?25l:[?12l[?25hcb.append('psa5: ' + repr(psa5))

[?25l:[?12l[?25hcb.append('psa6: ' + repr(psa6))

[?25l:[?12l[?25hcb.append('psa7: ' + repr(psa7))

[?25l:[?12l[?25hcb.append('psa8: ' + repr(psa8))

[?25l:[?12l[?25hcb.append('psa9: ' + repr(psa9))

[?25l:[?12l[?25hcb.append('psaA: ' + repr(psaA))

[?25l:[?12l[?25hcb.append('psaB: ' + repr(psaB))

[?25l:[?12l[?25hcb.append('psaC: ' + repr(psaC))

[?25l:[?12l[?25h

[?25l:[?12l[?25hpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l:[?12l[?25hpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l:[?12l[?25hpsar.self['rec'] = psar

[?25l:[?12l[?25hpsar.self['self'] = psar.self

[?25l:[?12l[?25hpsar.self['args'] = psar.args

[?25l:[?12l[?25h

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    cb.append('psar: ' + repr(psar))

[?25l:[?12l[?25hexcept Exception:

[?25l:[?12l[?25h    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put ='s(a): '.string(py3eval('a'))

[?25l:[?12l[?25h:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l:[?12l[?25h:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l:[?12l[?25h:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l:[?12l[?25h:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l:[?12l[?25h:$put ='s(sa): '.string(py3eval('sa'))

[?25l:[?12l[?25h:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l:[?12l[?25h:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l:[?12l[?25h:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l:[?12l[?25h:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l:[?12l[?25h:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l:[?12l[?25h:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l:[?12l[?25h:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l:[?12l[?25h:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l:[?12l[?25h:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l:[?12l[?25h:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l:[?12l[?25h:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l:[?12l[?25h:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l:[?12l[?25h:   let d = {'f': py3eval(v)}

[?25l:[?12l[?25h:   $put ='d.'.v.'(): '.string(d.f())

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a()', a, )

[?25l:[?12l[?25h:py3 ecall('pa1()', pa1, )

[?25l:[?12l[?25h:py3 ecall('pa2()', pa2, )

[?25l:[?12l[?25h:py3 ecall('pa3()', pa3, )

[?25l:[?12l[?25h:py3 ecall('pa4()', pa4, )

[?25l:[?12l[?25h:py3 ecall('sa()', sa, )

[?25l:[?12l[?25h:py3 ecall('psa1()', psa1, )

[?25l:[?12l[?25h:py3 ecall('psa2()', psa2, )

[?25l:[?12l[?25h:py3 ecall('psa3()', psa3, )

[?25l:[?12l[?25h:py3 ecall('psa4()', psa4, )

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, 43)', a, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l:[?12l[?25h:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef s(v):

[?25l:[?12l[?25h    if v is None:

[?25l:[?12l[?25h        return repr(v)

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return str(vim.Function('string')(v), 'utf-8')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.args: ' + s(a.args))

[?25l:[?12l[?25hcb.append('pa1.args: ' + s(pa1.args))

[?25l:[?12l[?25hcb.append('pa2.args: ' + s(pa2.args))

[?25l:[?12l[?25hcb.append('pa3.args: ' + s(pa3.args))

[?25l:[?12l[?25hcb.append('pa4.args: ' + s(pa4.args))

[?25l:[?12l[?25hcb.append('sa.args: ' + s(sa.args))

[?25l:[?12l[?25hcb.append('psa1.args: ' + s(psa1.args))

[?25l:[?12l[?25hcb.append('psa2.args: ' + s(psa2.args))

[?25l:[?12l[?25hcb.append('psa3.args: ' + s(psa3.args))

[?25l:[?12l[?25hcb.append('psa4.args: ' + s(psa4.args))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.self: ' + s(a.self))

[?25l:[?12l[?25hcb.append('pa1.self: ' + s(pa1.self))

[?25l:[?12l[?25hcb.append('pa2.self: ' + s(pa2.self))

[?25l:[?12l[?25hcb.append('pa3.self: ' + s(pa3.self))

[?25l:[?12l[?25hcb.append('pa4.self: ' + s(pa4.self))

[?25l:[?12l[?25hcb.append('sa.self: ' + s(sa.self))

[?25l:[?12l[?25hcb.append('psa1.self: ' + s(psa1.self))

[?25l:[?12l[?25hcb.append('psa2.self: ' + s(psa2.self))

[?25l:[?12l[?25hcb.append('psa3.self: ' + s(psa3.self))

[?25l:[?12l[?25hcb.append('psa4.self: ' + s(psa4.self))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.name: ' + s(a.name))

[?25l:[?12l[?25hcb.append('pa1.name: ' + s(pa1.name))

[?25l:[?12l[?25hcb.append('pa2.name: ' + s(pa2.name))

[?25l:[?12l[?25hcb.append('pa3.name: ' + s(pa3.name))

[?25l:[?12l[?25hcb.append('pa4.name: ' + s(pa4.name))

[?25l:[?12l[?25hcb.append('sa.name: ' + s(sa.name))

[?25l:[?12l[?25hcb.append('psa1.name: ' + s(psa1.name))

[?25l:[?12l[?25hcb.append('psa2.name: ' + s(psa2.name))

[?25l:[?12l[?25hcb.append('psa3.name: ' + s(psa3.name))

[?25l:[?12l[?25hcb.append('psa4.name: ' + s(psa4.name))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l:[?12l[?25hcb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l:[?12l[?25hcb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l:[?12l[?25hcb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l:[?12l[?25hcb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l:[?12l[?25hcb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l:[?12l[?25hcb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l:[?12l[?25hcb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l:[?12l[?25hcb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l:[?12l[?25hcb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l:[?12l[?25hcb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l:[?12l[?25hcb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l:[?12l[?25hcb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l:[?12l[?25hcb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l:[?12l[?25hcb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l:[?12l[?25hcb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l:[?12l[?25hcb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l:[?12l[?25hcb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel s

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel a

[?25l:[?12l[?25hdel pa1

[?25l:[?12l[?25hdel pa2

[?25l:[?12l[?25hdel pa3

[?25l:[?12l[?25hdel pa4

[?25l:[?12l[?25hdel sa

[?25l:[?12l[?25hdel psa1

[?25l:[?12l[?25hdel psa2

[?25l:[?12l[?25hdel psa3

[?25l:[?12l[?25hdel psa4

[?25l:[?12l[?25hdel psa5

[?25l:[?12l[?25hdel psa6

[?25l:[?12l[?25hdel psa7

[?25l:[?12l[?25hdel psa8

[?25l:[?12l[?25hdel psa9

[?25l:[?12l[?25hdel psaA

[?25l:[?12l[?25hdel psaB

[?25l:[?12l[?25hdel psaC

[?25l:[?12l[?25hdel psar

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel ecall

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test stdout/stderr

[?25l:[?12l[?25h:redir => messages

[?25l:[?12l[?25h:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l:[?12l[?25h:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l:[?12l[?25h:py3 sys.stdout.writelines(iter('abcA'))

[?25l:[?12l[?25h:py3 sys.stderr.writelines(iter('abcB'))

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l:[?12l[?25h:" Test subclassing

[?25l:[?12l[?25h:fun Put(...)

[?25l:[?12l[?25h:   $put =string(a:000)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hclass DupDict(vim.Dictionary):

[?25l:[?12l[?25h    def __setitem__(self, key, value):

[?25l:[?12l[?25h        super(DupDict, self).__setitem__(key, value)

[?25l:[?12l[?25h        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l:[?12l[?25hdd = DupDict()

[?25l:[?12l[?25hdd['a'] = 'b'

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupList(vim.List):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        return [super(DupList, self).__getitem__(idx)] * 2

[?25l:[?12l[?25h

[?25l:[?12l[?25hdl = DupList()

[?25l:[?12l[?25hdl2 = DupList(iter('abcC'))

[?25l:[?12l[?25hdl.extend(dl2[0])

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupFun(vim.Function):

[?25l:[?12l[?25h    def __call__(self, arg):

[?25l:[?12l[?25h        return super(DupFun, self).__call__(arg, arg)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdf = DupFun('Put')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =string(sort(keys(py3eval('dd'))))

[?25l:[?12l[?25h:$put =string(py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dl2'))

[?25l:[?12l[?25h:$put =string(py3eval('df(2)'))

[?25l:[?12l[?25h:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l:[?12l[?25h:$put =string(py3eval('df'))

[?25l:[?12l[?25h:delfunction Put

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel DupDict

[?25l:[?12l[?25hdel DupList

[?25l:[?12l[?25hdel DupFun

[?25l:[?12l[?25hdel dd

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel dl2

[?25l:[?12l[?25hdel df

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test chdir

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hfnamemodify = vim.Function('fnamemodify')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hos.chdir('..')

[?25l:[?12l[?25hpath = fnamemodify('.', ':p:h:t')

[?25l:[?12l[?25hif path != b'src':

[?25l:[?12l[?25h  # Running tests from a shadow directory, so move up anot

her level

[?25l:[?12l[?25h  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l:[?12l[?25h  # slicing to remove the leading path and path separator

[?25l:[?12l[?25h  os.chdir('..')

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l:[?12l[?25h  os.chdir(path)

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel path

[?25l:[?12l[?25hos.chdir('testdir')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hdel fnamemodify

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test errors

[?25l:[?12l[?25h:fun F() dict

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun D()

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hd = vim.Dictionary()

[?25l:[?12l[?25hned = vim.Dictionary(foo='bar', baz='abcD')

[?25l:[?12l[?25hdl = vim.Dictionary(a=1)

[?25l:[?12l[?25hdl.locked = True

[?25l:[?12l[?25hl = vim.List()

[?25l:[?12l[?25hll = vim.List('abcE')

[?25l:[?12l[?25hll.locked = True

[?25l:[?12l[?25hnel = vim.List('abcO')

[?25l:[?12l[?25hf = vim.Function('string')

[?25l:[?12l[?25hfd = vim.Function('F')

[?25l:[?12l[?25hfdel = vim.Function('D')

[?25l:[?12l[?25hvim.command('delfunction D')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef subexpr_test(expr, name, subexprs):

[?25l:[?12l[?25h    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l:[?12l[?25h    for subexpr in subexprs:

[?25l:[?12l[?25h        ee(expr % subexpr)

[?25l:[?12l[?25h    cb.append('<<< Finished')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef stringtochars_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, 'StringToChars', (

[?25l:[?12l[?25h        '1',       # Fail type checks

[?25l:[?12l[?25h        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l:[?12l[?25h        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass Mapping(object):

[?25l:[?12l[?25h    def __init__(self, d):

[?25l:[?12l[?25h        self.d = d

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __getitem__(self, key):

[?25l:[?12l[?25h        return self.d[key]

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return self.d.keys()

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def items(self):

[?25l:[?12l[?25h        return self.d.items()

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompyobject_test(expr, recurse=True):

[?25l:[?12l[?25h    # pydict_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % '{%s : 1}')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l:[?12l[?25h    # pymap_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l:[?12l[?25h    # pyseq_to_tv

[?25l:[?12l[?25h    iter_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l:[?12l[?25h        'None',                 # Not conversible

[?25l:[?12l[?25h        '{b"": 1}',             # Empty key not allowe

d
[?25l:[?12l[?25h        '{"": 1}',              # Same, but with unico

de object

[?25l:[?12l[?25h        'FailingMapping()',     #

[?25l:[?12l[?25h        'FailingMappingKey()',  #

[?25l:[?12l[?25h        'FailingNumber()',      #

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompymapping_test(expr):

[?25l:[?12l[?25h    convertfrompyobject_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef iter_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, '*Iter*', (

[?25l:[?12l[?25h        'FailingIter()',

[?25l:[?12l[?25h        'FailingIterNext()',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef number_test(expr, natural=False, unsigned=False):

[?25l:[?12l[?25h    if natural:

[?25l:[?12l[?25h        unsigned = True

[?25l:[?12l[?25h    return subexpr_test(expr, 'NumberToLong', (

[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h        'None',

[?25l:[?12l[?25h    ) + (('-1',) if unsigned else ())

[?25l:[?12l[?25h    + (('0',) if natural else ()))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingTrue(object):

[?25l:[?12l[?25h    def __bool__(self):

[?25l:[?12l[?25h        raise NotImplementedError('bool')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIter(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        raise NotImplementedError('iter')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNext(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        raise NotImplementedError('next')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNextN(object):

[?25l:[?12l[?25h    def __init__(self, n):

[?25l:[?12l[?25h        self.n = n

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        if self.n:

[?25l:[?12l[?25h            self.n -= 1

[?25l:[?12l[?25h            return 1

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            raise NotImplementedError('next N')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMappingKey(object):

[?25l:[?12l[?25h    def __getitem__(self, item):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mappingkey'

)
[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return list("abcH")

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMapping(object):

[?25l:[?12l[?25h    def __getitem__(self):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mapping')

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        raise NotImplementedError('keys')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingList(list):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        if i == 2:

[?25l:[?12l[?25h            raise NotImplementedError('getitem:list')

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            return super(FailingList, self).__getitem_

_(idx)

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass NoArgsCall(object):

[?25l:[?12l[?25h    def __call__(self):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingCall(object):

[?25l:[?12l[?25h    def __call__(self, path):

[?25l:[?12l[?25h        raise NotImplementedError('call')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingNumber(object):

[?25l:[?12l[?25h    def __int__(self):

[?25l:[?12l[?25h        raise NotImplementedError('int')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append("> Output")

[?25l:[?12l[?25hcb.append(">> OutputSetattr")

[?25l:[?12l[?25hee('del sys.stdout.softspace')

[?25l:[?12l[?25hnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hee('assert sys.stdout.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stdout.seekable()==False')

[?25l:[?12l[?25hee('sys.stdout.close()')

[?25l:[?12l[?25hee('sys.stdout.flush()')

[?25l:[?12l[?25hee('assert sys.stderr.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stderr.seekable()==False')

[?25l:[?12l[?25hee('sys.stderr.close()')

[?25l:[?12l[?25hee('sys.stderr.flush()')

[?25l:[?12l[?25hee('sys.stdout.attr = None')

[?25l:[?12l[?25hcb.append(">> OutputWrite")

[?25l:[?12l[?25hee('assert sys.stdout.writable()==True')

[?25l:[?12l[?25hee('assert sys.stdout.readable()==False')

[?25l:[?12l[?25hee('assert sys.stderr.writable()==True')

[?25l:[?12l[?25hee('assert sys.stderr.readable()==False')

[?25l:[?12l[?25hee('assert sys.stdout.closed()==False')

[?25l:[?12l[?25hee('assert sys.stderr.closed()==False')

[?25l:[?12l[?25hee('assert sys.stdout.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stderr.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l:[?12l[?25hee('sys.stdout.write(None)')

[?25l:[?12l[?25hcb.append(">> OutputWriteLines")

[?25l:[?12l[?25hee('sys.stdout.writelines(None)')

[?25l:[?12l[?25hee('sys.stdout.writelines([1])')

[?25l:[?12l[?25hiter_test('sys.stdout.writelines(%s)')

[?25l:[?12l[?25hcb.append("> VimCommand")

[?25l:[?12l[?25hstringtochars_test('vim.command(%s)')

[?25l:[?12l[?25hee('vim.command("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimToPython")

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEval")

[?25l:[?12l[?25hstringtochars_test('vim.eval(%s)')

[?25l:[?12l[?25hee('vim.eval("", FailingTrue())')

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEvalPy")

[?25l:[?12l[?25hstringtochars_test('vim.bindeval(%s)')

[?25l:[?12l[?25hee('vim.eval("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimStrwidth")

[?25l:[?12l[?25hstringtochars_test('vim.strwidth(%s)')

[?25l:[?12l[?25hcb.append("> VimForeachRTP")

[?25l:[?12l[?25hee('vim.foreach_rtp(None)')

[?25l:[?12l[?25hee('vim.foreach_rtp(NoArgsCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(FailingCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(int, 2)')

[?25l:[?12l[?25hcb.append('> import')

[?25l:[?12l[?25hold_rtp = vim.options['rtp']

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l:[?12l[?25hee('import xxx_no_such_module_xxx')

[?25l:[?12l[?25hee('import failing_import')

[?25l:[?12l[?25hee('import failing')

[?25l:[?12l[?25hvim.options['rtp'] = old_rtp

[?25l:[?12l[?25hdel old_rtp

[?25l:[?12l[?25hcb.append("> Options")

[?25l:[?12l[?25hcb.append(">> OptionsItem")

[?25l:[?12l[?25hee('vim.options["abcQ"]')

[?25l:[?12l[?25hee('vim.options[""]')

[?25l:[?12l[?25hstringtochars_test('vim.options[%s]')

[?25l:[?12l[?25hcb.append(">> OptionsContains")

[?25l:[?12l[?25hstringtochars_test('%s in vim.options')

[?25l:[?12l[?25hcb.append("> Dictionary")

[?25l:[?12l[?25hcb.append(">> DictionaryConstructor")

[?25l:[?12l[?25hee('vim.Dictionary("abcI")')

[?25l:[?12l[?25h##! Not checked: py_dict_alloc failure

[?25l:[?12l[?25hcb.append(">> DictionarySetattr")

[?25l:[?12l[?25hee('del d.locked')

[?25l:[?12l[?25hee('d.locked = FailingTrue()')

[?25l:[?12l[?25hee('vim.vvars.locked = False')

[?25l:[?12l[?25hee('d.scope = True')

[?25l:[?12l[?25hee('d.xxx = True')

[?25l:[?12l[?25hcb.append(">> _DictionaryItem")

[?25l:[?12l[?25hee('d.get("a", 2, 3)')

[?25l:[?12l[?25hstringtochars_test('d.get(%s)')

[?25l:[?12l[?25hee('d.pop("a")')

[?25l:[?12l[?25hee('dl.pop("a")')

[?25l:[?12l[?25hcb.append(">> DictionaryContains")

[?25l:[?12l[?25hee('"" in d')

[?25l:[?12l[?25hee('0 in d')

[?25l:[?12l[?25hcb.append(">> DictionaryIterNext")

[?25l:[?12l[?25hee('for i in ned: ned["a"] = 1')

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hcb.append(">> DictionaryAssItem")

[?25l:[?12l[?25hee('dl["b"] = 1')

[?25l:[?12l[?25hstringtochars_test('d[%s] = 1')

[?25l:[?12l[?25hconvertfrompyobject_test('d["a"] = %s')

[?25l:[?12l[?25hcb.append(">> DictionaryUpdate")

[?25l:[?12l[?25hcb.append(">>> kwargs")

[?25l:[?12l[?25hcb.append(">>> iter")

[?25l:[?12l[?25hee('d.update(FailingMapping())')

[?25l:[?12l[?25hee('d.update([FailingIterNext()])')

[?25l:[?12l[?25hee('d.update([FailingIterNextN(1)])')

[?25l:[?12l[?25hiter_test('d.update(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update(%s)')

[?25l:[?12l[?25hstringtochars_test('d.update(((%s, 0),))')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update((("a", %s),))')

[?25l:[?12l[?25hcb.append(">> DictionaryPopItem")

[?25l:[?12l[?25hee('d.popitem(1, 2)')

[?25l:[?12l[?25hcb.append(">> DictionaryHasKey")

[?25l:[?12l[?25hee('d.has_key()')

[?25l:[?12l[?25hcb.append("> List")

[?25l:[?12l[?25hcb.append(">> ListConstructor")

[?25l:[?12l[?25hee('vim.List(1, 2)')

[?25l:[?12l[?25hee('vim.List(a=1)')

[?25l:[?12l[?25hiter_test('vim.List(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('vim.List([%s])')

[?25l:[?12l[?25hcb.append(">> ListItem")

[?25l:[?12l[?25hee('l[1000]')

[?25l:[?12l[?25hcb.append(">> ListAssItem")

[?25l:[?12l[?25hee('ll[1] = 2')

[?25l:[?12l[?25hee('l[1000] = 3')

[?25l:[?12l[?25hcb.append(">> ListAssSlice")

[?25l:[?12l[?25hee('ll[1:100] = "abcJ"')

[?25l:[?12l[?25hiter_test('l[:] = %s')

[?25l:[?12l[?25hee('nel[1:10:2]  = "abcK"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:10:2]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:1:-1]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[:] = FailingIterNextN(2)')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hconvertfrompyobject_test('l[:] = [%s]')

[?25l:[?12l[?25hcb.append(">> ListConcatInPlace")

[?25l:[?12l[?25hiter_test('l.extend(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('l.extend([%s])')

[?25l:[?12l[?25hcb.append(">> ListSetattr")

[?25l:[?12l[?25hee('del l.locked')

[?25l:[?12l[?25hee('l.locked = FailingTrue()')

[?25l:[?12l[?25hee('l.xxx = True')

[?25l:[?12l[?25hcb.append("> Function")

[?25l:[?12l[?25hcb.append(">> FunctionConstructor")

[?25l:[?12l[?25hcb.append(">>> FunctionConstructor")

[?25l:[?12l[?25hee('vim.Function("123")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx#non#existent#function#xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l:[?12l[?25hcb.append(">>> FunctionNew")

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf")')

[?25l:[?12l[?25hee('vim.Function("tr", args=427423)')

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l:[?12l[?25hee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l:[?12l[?25hee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l:[?12l[?25hee('vim.Function("tr", "")')

[?25l:[?12l[?25hcb.append(">> FunctionCall")

[?25l:[?12l[?25hconvertfrompyobject_test('f(%s)')

[?25l:[?12l[?25hconvertfrompymapping_test('fd(self=%s)')

[?25l:[?12l[?25hcb.append("> TabPage")

[?25l:[?12l[?25hcb.append(">> TabPageAttr")

[?25l:[?12l[?25hee('vim.current.tabpage.xxx')

[?25l:[?12l[?25hcb.append("> TabList")

[?25l:[?12l[?25hcb.append(">> TabListItem")

[?25l:[?12l[?25hee('vim.tabpages[1000]')

[?25l:[?12l[?25hcb.append("> Window")

[?25l:[?12l[?25hcb.append(">> WindowAttr")

[?25l:[?12l[?25hee('vim.current.window.xxx')

[?25l:[?12l[?25hcb.append(">> WindowSetattr")

[?25l:[?12l[?25hee('vim.current.window.buffer = 0')

[?25l:[?12l[?25hee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l:[?12l[?25hee('vim.current.window.cursor = True')

[?25l:[?12l[?25hnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l:[?12l[?25hnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l:[?12l[?25hee('vim.current.window.xxxxxx = True')

[?25l:[?12l[?25hcb.append("> WinList")

[?25l:[?12l[?25hcb.append(">> WinListItem")

[?25l:[?12l[?25hee('vim.windows[1000]')

[?25l:[?12l[?25hcb.append("> Buffer")

[?25l:[?12l[?25hcb.append(">> StringToLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = "\\na"')

[?25l:[?12l[?25hee('vim.current.buffer[0] = b"\\na"')

[?25l:[?12l[?25hcb.append(">> SetBufferLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = True')

[?25l:[?12l[?25hcb.append(">> SetBufferLineList (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[:] = True')

[?25l:[?12l[?25hee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l:[?12l[?25hcb.append(">> InsertBufferLines (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer.append(None)')

[?25l:[?12l[?25hee('vim.current.buffer.append(["\\na", "bc"])')

[?25l:[?12l[?25hee('vim.current.buffer.append("\\nbc")')

[?25l:[?12l[?25hcb.append(">> RBItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000]')

[?25l:[?12l[?25hcb.append(">> RBAsItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000] = ""')

[?25l:[?12l[?25hcb.append(">> BufferAttr")

[?25l:[?12l[?25hee('vim.current.buffer.xxx')

[?25l:[?12l[?25hcb.append(">> BufferSetattr")

[?25l:[?12l[?25hee('vim.current.buffer.name = True')

[?25l:[?12l[?25hee('vim.current.buffer.xxx = True')

[?25l:[?12l[?25hcb.append(">> BufferMark")

[?25l:[?12l[?25hee('vim.current.buffer.mark(0)')

[?25l:[?12l[?25hee('vim.current.buffer.mark("abcM")')

[?25l:[?12l[?25hee('vim.current.buffer.mark("!")')

[?25l:[?12l[?25hcb.append(">> BufferRange")

[?25l:[?12l[?25hee('vim.current.buffer.range(1, 2, 3)')

[?25l:[?12l[?25hcb.append("> BufMap")

[?25l:[?12l[?25hcb.append(">> BufMapItem")

[?25l:[?12l[?25hee('vim.buffers[100000000]')

[?25l:[?12l[?25hnumber_test('vim.buffers[%s]', natural=True)

[?25l:[?12l[?25hcb.append("> Current")

[?25l:[?12l[?25hcb.append(">> CurrentGetattr")

[?25l:[?12l[?25hee('vim.current.xxx')

[?25l:[?12l[?25hcb.append(">> CurrentSetattr")

[?25l:[?12l[?25hee('vim.current.line = True')

[?25l:[?12l[?25hee('vim.current.buffer = True')

[?25l:[?12l[?25hee('vim.current.window = True')

[?25l:[?12l[?25hee('vim.current.tabpage = True')

[?25l:[?12l[?25hee('vim.current.xxx = True')

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ned

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdel ll

[?25l:[?12l[?25hdel nel

[?25l:[?12l[?25hdel f

[?25l:[?12l[?25hdel fd

[?25l:[?12l[?25hdel fdel

[?25l:[?12l[?25hdel subexpr_test

[?25l:[?12l[?25hdel stringtochars_test

[?25l:[?12l[?25hdel Mapping

[?25l:[?12l[?25hdel convertfrompyobject_test

[?25l:[?12l[?25hdel convertfrompymapping_test

[?25l:[?12l[?25hdel iter_test

[?25l:[?12l[?25hdel number_test

[?25l:[?12l[?25hdel FailingTrue

[?25l:[?12l[?25hdel FailingIter

[?25l:[?12l[?25hdel FailingIterNext

[?25l:[?12l[?25hdel FailingIterNextN

[?25l:[?12l[?25hdel FailingMapping

[?25l:[?12l[?25hdel FailingMappingKey

[?25l:[?12l[?25hdel FailingList

[?25l:[?12l[?25hdel NoArgsCall

[?25l:[?12l[?25hdel FailingCall

[?25l:[?12l[?25hdel FailingNumber

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction F

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test import

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hsys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l:[?12l[?25hsys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l:[?12l[?25hl = []

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    l.append(os.path.relpath(path))

[?25l:[?12l[?25hvim.foreach_rtp(callback)

[?25l:[?12l[?25hcb.append(repr(l))

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    return os.path.relpath(path)

[?25l:[?12l[?25hcb.append(repr(vim.foreach_rtp(callback)))

[?25l:[?12l[?25hdel callback

[?25l:[?12l[?25hfrom module import dir as d

[?25l:[?12l[?25hfrom modulex import ddir

[?25l:[?12l[?25hcb.append(d + ',' + ddir)

[?25l:[?12l[?25himport before

[?25l:[?12l[?25hcb.append(before.dir)

[?25l:[?12l[?25himport after

[?25l:[?12l[?25hcb.append(after.dir)

[?25l:[?12l[?25himport topmodule as tm

[?25l:[?12l[?25himport topmodule.submodule as tms

[?25l:[?12l[?25himport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l:[?12l[?25hcb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l:[?12l[?25hdel before

[?25l:[?12l[?25hdel after

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ddir

[?25l:[?12l[?25hdel tm

[?25l:[?12l[?25hdel tms

[?25l:[?12l[?25hdel tmsss

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test exceptions

[?25l:[?12l[?25h:fun Exe(e)

[?25l:[?12l[?25h:   execute a:e

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hExe = vim.bindeval('function("Exe")')

[?25l:[?12l[?25hee('vim.command("throw \'abcN\'")')

[?25l:[?12l[?25hee('Exe("throw \'def\'")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l:[?12l[?25hee('vim.eval("xxx_unknown_function_xxx()")')

[?25l:[?12l[?25hee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l:[?12l[?25hdel Exe

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction Exe

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef test_keyboard_interrupt():

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('while 1 | endwhile')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('Caught KeyboardInterrupt')

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('!!!!!!!! No exception')

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('$ put =\'Running :put\'')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('No exception')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:debuggreedy

[?25l:[?12l[?25h:call inputsave()

[?25l:[?12l[?25h:call feedkeys("s\ns\ns\ns\nq\n")

[?25l:[?12l[?25h:redir => output

[?25l:[?12l[?25h:debug silent! py3 test_keyboard_interrupt()

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:0 debuggreedy

[?25l:[?12l[?25h:call inputrestore()

[?25l:[?12l[?25h:silent $put =output

[?25l:[?12l[?25h:unlet output

[?25l:[?12l[?25h:py3 del test_keyboard_interrupt

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Cleanup

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel cb

[?25l:[?12l[?25hdel ee

[?25l:[?12l[?25hdel emsg

[?25l:[?12l[?25hdel sys

[?25l:[?12l[?25hdel os

[?25l:[?12l[?25hdel vim

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:endfun
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfun RunTest()
[?25l
:  [?12l[?25h:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l:  [?12l[?25h:let start = getline(1, '$')

[?25l:  [?12l[?25h:for i in range(checkrefs ? 10 : 1)

[?25l:    [?12l[?25h:   if i != 0

[?25l:      [?12l[?25h:       %d _

[?25l:      [?12l[?25h:       call setline(1, start)

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:   call Test()

[?25l:    [?12l[?25h:   if i == 0

[?25l:      [?12l[?25h:       let result = getline(1, '$')

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:if checkrefs

[?25l:    [?12l[?25h:   %d _

[?25l:    [?12l[?25h:   call setline(1, result)

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h:endfun
[?25l:   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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall RunTest()
[?25l8 more lin
3 more lines[?12l[?25h

[?25l"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):jkll',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vimm:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unnknown 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[?12l[?25h[?25l:[?12l[?25hdelfunction RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'directory' option.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset dir=.,~
[?25l[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest1
[?25l"Xtest1" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25h" do an ls of the current dir to find the swap file (should not be there)
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:  !ls .X*.swp >test.out

[?25l:!ls .X*.swp >test.out[?1l>[?12l[?25h[?1049l
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25helse

[?25l:  [?12l[?25h:  r !ls X*.swp >test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25h!echo first line >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l:  [?12l[?25h:" to make the result the same for all systems.

[?25l:  [?12l[?25h:  r!ls .X*.swp

[?25l:  [?12l[?25h:  s/\.*X/X/

[?25l:  [?12l[?25h:  .w >>test.out
[?25l"test.out" 1L, 11C appended

:  [?12l[?25h:  undo

[?25l1 line less; before #1  0 seconds ago

:  [?12l[?25h:else

[?25l:  [?12l[?25h:  !ls X*.swp >>test.out

[?25l:  [?12l[?25h:endif
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest2
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hset dir=./Xtest2,.,~
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25h!ls X*.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l
ls: cannot access 'X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under under >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest.je
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25lsearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest2/Xtest3" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25hset dir=Xtest.je,~
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest2/Xtest3
[?25l"Xtest2/Xtest3" 4L, 70C[?12l[?25h[?25l:[?12l[?25hswap
[?25lXtest.je/Xtest3.swp[?12l[?25h[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest.je >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" Create a link from test25.dir to the current directory.
[?25l[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ln -s . test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h" Create tags.text, with the current directory name inserted.
[?25lTest 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
[?12l[?25h[?25l
/[?12l[?25htags line
[?25lhis 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:
[?12l[?25h[?25l:[?12l[?25hr !pwd
[?25l[?12l[?25h[?25lSTARTTEST
: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
[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25htest
[?25l
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?12l[?25h[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test25.dir/t@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test25.dir/ttest25.in/^#define  SECTION_OFF  3$/[?12l[?25h[?25l

:[?12l[?25h.w! tags.test
[?25l"tags.test" [New File] 1 line, 113 characters written[?12l[?25h[?25l:[?12l[?25h" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?12l[?25h[?25l:[?12l[?25h" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?12l[?25h[?25l:[?12l[?25h" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?12l[?25h[?25l:[?12l[?25hset tags=tags.test
[?25l[?12l[?25h[?25l/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?12l[?25h#[?25lefine  SECTION_OFF  3[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 23 characters written[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir tags.test
[?25l[?1l>[?12l[?25h[?1049l
[No write since last change]

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of the script language.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp nomore viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hso test49.vim
[?25lError 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"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"/tmp/vUIHoND/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/1[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/2[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/2"' -c 'breakad

dfile 8 /tmp/vUIHoND/1' -S /tmp/vUIHoND/1[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/3[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/4[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/4"' -c 'breakad

dfile 4 /tmp/vUIHoND/3' -S /tmp/vUIHoND/3[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/5[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/6[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/6"' -c 'breakad

dfunc 7 F' -S /tmp/vUIHoND/5[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/7[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/8[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/8"' -c 'breakad

dfunc 3 G' -S /tmp/vUIHoND/7[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/9[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/10[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/10"' -S /tmp/vUIHo

ND/9[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/11[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/12[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/12"' -S /tmp/vUIHo

ND/11[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/13[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/14[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/14"' -S /tmp/vUIHo

ND/13[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/15[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/16[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/16"' -S /tmp/vUIHo

ND/15[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/17[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/18[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/18"' -S /tmp/vUIHo

ND/17[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/19[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/20[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/20"' -S /tmp/vUIHo

ND/19[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/21[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/22[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/22"' -S /tmp/vUIHo

ND/21[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/23[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/24[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/24"' -S /tmp/vUIHo

ND/23[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/25[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/26[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/26"' -S /tmp/vUIHo

ND/25[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/27[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/28[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/28"' -S /tmp/vUIHo

ND/27[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/29[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/30[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/30"' -S /tmp/vUIHo

ND/29[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/31[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/32[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/32"' -S /tmp/vUIHo

ND/31[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/33[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/34[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/34"' -S /tmp/vUIHo

ND/33[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/36[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/36"' -S /tmp/vUIHo

ND/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/37[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/38[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/38"' -S /tmp/vUIHo

ND/37[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/39[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/40[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vUIHoND/39[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/41[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/42[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/42"' -S /tmp/vUIHo

ND/41[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/43[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/44[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/44"' -S /tmp/vUIHo

ND/43[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/46[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/46"' -S /tmp/vUIHo

ND/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vUIHoND/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/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/vUIHoND/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/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/vUIHoND/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/50[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vUIHoND/51[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/51"' -S /tmp/vUIHoND/50[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669Ctest49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/52[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/53[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/53"' -S /tmp/vUIHo

ND/52[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/54[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/55[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHoND/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vUIHoND/54' -c 'breakadd file 31

/tmp/vUIHoND/54' -S /tmp/vUIHoND/54[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/56[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/57[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/57"' -S /tmp/vUIHo

ND/56[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/59[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHo

ND/59"' -c 'breakadd func 16 C' -S /tmp/vUIHoND/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/61[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHo

ND/61"' -c 'breakadd func 16 B' -S /tmp/vUIHoND/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/63[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHoND/

63"' -c 'breakadd func 16 R' -S /tmp/vUIHoND/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/65[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/65"' -c 'breakadd

func 16 F' -S /tmp/vUIHoND/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/66[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/67[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHo

ND/67"' -c 'breakadd func 16 E' -S /tmp/vUIHoND/66[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/68[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/69[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHoND/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vUIHoND/68[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/70[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/71[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHo

ND/71"' -c 'breakadd func 16 T' -S /tmp/vUIHoND/70[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vUIHoND/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/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/vUIHoND/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/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/vUIHoND/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/76[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vUIHoND/77[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/77"' -S /tmp/vUIHoND/76[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/78[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/79[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/79"' -S /tmp/vUIHoND/78[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/80[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/81[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/81"' -S /tmp/vUIHoND/80[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/82[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/83[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/83"' -S /tmp/vUIHoND/82[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/84[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/85[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vUIHoND/85"' -c 'breakadd file 4 /tmp/vUIHoND

/84' -S /tmp/vUIHoND/84[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/86[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/87[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/87"' -S /tmp/vUIHoND/86[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/88[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/89[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/89"' -S /tmp/vUIHoND/88[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/91[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/92[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/92"' -S /tmp/vUIHoND/91[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/93[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vUIHoND/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/94[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/94"' -S /tmp/vUIHoND/93[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/95[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vUIHoND/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/96[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/96"' -S /tmp/vUIHoND/95[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/97[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vUIHoND/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/98[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/98"' -S /tmp/vUIHoND/97[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/99[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vUIHoND/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/100[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/100"' -S /tmp/vUIHoND/99[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/101[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/102[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/102"' -S /tmp/vUIHoND/101[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/103[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vUIHoND/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/104[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/104"' -S /tmp/vUIHoND/103[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/105[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vUIHoND/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/106[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/106"' -S /tmp/vUIHoND/105[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/107[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vUIHoND/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/108[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/108"' -S /tmp/vUIHoND/107[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/109[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vUIHoND/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/110[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/110"' -S /tmp/vUIHoND/109[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/111[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/112[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/112"' -S /tmp/vUIHoND/111[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/113[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vUIHoND/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/114[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/114"' -S /tmp/vUIHoND/113[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/115[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vUIHoND/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/116[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/116"' -S /tmp/vUIHoND/115[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/117[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vUIHoND/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/118[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/118"' -S /tmp/vUIHoND/117[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/119[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vUIHoND/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/120[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/120"' -S /tmp/vUIHoND/119[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/121[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vUIHoND/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/122[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/122"' -S /tmp/vUIHoND/121[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/123[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vUIHoND/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/124[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vUIHoND/124"' -S /tmp/vUIHoND/123[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/126[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/127[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/127"' -S /tmp/vUIHoND/126[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/128[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vUIHoND/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/129[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/129"' -S /tmp/vUIHoND/128[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/130[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vUIHoND/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/131[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/131"' -S /tmp/vUIHoND/130[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/132[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vUIHoND/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/133[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/133"' -S /tmp/vUIHoND/132[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/134[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vUIHoND/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/135[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/135"' -S /tmp/vUIHoND/134[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/136[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vUIHoND/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/137[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/137"' -S /tmp/vUIHoND/136[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/138[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vUIHoND/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/139[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/139"' -S /tmp/vUIHoND/138[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/140[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vUIHoND/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/141[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/141"' -S /tmp/vUIHoND/140[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/142[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vUIHoND/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/143[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/143"' -S /tmp/vUIHoND/142[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/144[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vUIHoND/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/145[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/145"' -S /tmp/vUIHoND/144[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/146[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vUIHoND/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/147[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/147"' -S /tmp/vUIHoND/146[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/149[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/150[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/150"' -S /tmp/vUIHoND/149[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/151[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vUIHoND/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/152[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/152"' -S /tmp/vUIHoND/151[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/153[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vUIHoND/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/154[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/154"' -S /tmp/vUIHoND/153[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/155[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vUIHoND/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/156[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/156"' -S /tmp/vUIHoND/155[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/157[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vUIHoND/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/158[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/158"' -S /tmp/vUIHoND/157[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/159[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/160[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/160"' -S /tmp/vUIHoND/159[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/161[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vUIHoND/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/162[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/162"' -S /tmp/vUIHoND/161[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/163[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vUIHoND/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/164[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/164"' -S /tmp/vUIHoND/163[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/165[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vUIHoND/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/166[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/166"' -S /tmp/vUIHoND/165[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/167[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vUIHoND/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/168[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/168"' -S /tmp/vUIHoND/167[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/170[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/171[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/171"' -S /tmp/vUIHoND/170[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/172[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vUIHoND/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/173[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/173"' -S /tmp/vUIHoND/172[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/174[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vUIHoND/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/175[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/175"' -S /tmp/vUIHoND/174[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/176[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vUIHoND/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/177[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/177"' -S /tmp/vUIHoND/176[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/178[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vUIHoND/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/179[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/179"' -S /tmp/vUIHoND/178[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/180[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vUIHoND/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/181[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/181"' -S /tmp/vUIHoND/180[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/182[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vUIHoND/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/183[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/183"' -S /tmp/vUIHoND/182[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/184[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vUIHoND/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/185[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/185"' -S /tmp/vUIHoND/184[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/186[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vUIHoND/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/187[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vUIHoND/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vUIHoND/187"' -S /tmp/vUIHoND/186[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vUIHoND/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vUIHoND/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vUIHoND/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vUIHoND/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vUIHoND/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/vUIHoND/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vUIHoND/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vUIHoND/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vUIHoND/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vUIHoND/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vUIHoND/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/194[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/194"' -c 'break

add func 4 T' -S /tmp/vUIHoND/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vUIHoND/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/196[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/196"' -c 'br

eakadd file 115 /tmp/vUIHoND/195' -c 'breakadd file 225 /tmp/vUIHoND/195' -S /tm

p/vUIHoND/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/198[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/198"' -c 'break

add file 7 /tmp/vUIHoND/197' -S /tmp/vUIHoND/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/200[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vUIHoND/

200"' -c 'breakadd file 8 /tmp/vUIHoND/199' -c 'breakadd file 36 /tmp/vUIHoND/19

9' -c 'breakadd file 40 /tmp/vUIHoND/199' -c 'breakadd file 69 /tmp/vUIHoND/199'

-c 'breakadd file 95 /tmp/vUIHoND/199' -c 'breakadd file 97 /tmp/vUIHoND/199' -

S/tmp/vUIHoND/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vUIHoND/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vUIHoND/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test49.vim:

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"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vUIHoND/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/203[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/203"' -c 'break

add file 63 /tmp/vUIHoND/202' -S /tmp/vUIHoND/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/204[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/205[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/205"' -c 'break

add func 8 F' -S /tmp/vUIHoND/204[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vUIHoND/206" [New File]
"test49.in" 32L, 705C
"/tmp/vUIHoND/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/208[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/209[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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

/vUIHoND/209"' -c 'breakadd func 2 INT' -S /tmp/vUIHoND/208[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"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-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/210[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/211[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/211"' -S /tmp/vUIH

oND/210[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/212[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/213[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/213"' -S /tmp/vUIH

oND/212[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/214[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/215[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/215"' -c 'break

add file 8 /tmp/vUIHoND/214' -S /tmp/vUIHoND/214[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/216[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/217[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/217"' -S /tmp/vUIH

oND/216[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/218[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/219[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/219"' -S /tmp/vUIH

oND/218[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/220[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/221[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/221"' -c 'break

add file 7 /tmp/vUIHoND/220' -S /tmp/vUIHoND/220[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/222[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/223[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/223"' -c 'break

add func 6 I' -S /tmp/vUIHoND/222[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/224[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/225[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/225"' -S /tmp/vUIH

oND/224[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/226[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/227[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/227"' -c 'break

add file 8 /tmp/vUIHoND/226' -S /tmp/vUIHoND/226[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/229[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/229"' -c 'br

eakadd func 1 INT' -S /tmp/vUIHoND/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vUIHoND/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vUIHoND/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vUIHoND/233[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test49.vim:

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/vUIHoND/235" c[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/vUIHoND/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vUIHoND/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"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vUIHoND/0' >/tmp/vUIHoND/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vUIHoND/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vUIHoND/237[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vUIHoND/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vUIHoND/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vUIHoND/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<tlTJJ2/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9008L, 206669C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue:[?12l[?25h" Go back to this file and append the results from register r.
[?25l#
# 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 \[?12l[?25h[?25l:[?12l[?25hbuf test49.in
[?25l"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:[?12l[?25h
[?25l
83 more lines
*** Test  16: OK (8722)83 more lines[?12l[?25h[?25l:[?12l[?25h/^Results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" make valgrind happy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => funclist
[?25l[?12l[?25h[?25l:[?12l[?25hsilent func
[?25l[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hfor line in split(funclist, "\n")
[?25l
:  [?12l[?25h:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l:  [?12l[?25h:  if name != ''

[?25l:    [?12l[?25h:    exe "delfunc " . name

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?12l[?25h[?25l
:[?12l[?25hfor v in keys(g:)
[?25l
:  [?12l[?25h:  silent! exe "unlet " . v

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in[?12l[?25h[?25l
:[?12l[?25hunlet v
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest whether glob()/globpath() return correct results with certain escaped[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure glob() doesn't use the shell
[?25l[?12l[?25h[?25l:[?12l[?25hset shell=doesnotexist
[?25l[?12l[?25h[?25l:[?12l[?25h" consistent sorting of file names
[?25l[?12l[?25h[?25l:[?12l[?25hset nofileignorecase
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25l[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xxx{
[?25l
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! Xxx\$
[?25l"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25lXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25lXxx$[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim'))
[?25l'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 8 lines, 138 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option in utf-8 mode[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l:set list nolinebreak cc=3[?12l[?25h[?25l
:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?12l[?25h[?25l:[?12l[?25h10new|:vsp|:vert resize 20
[?25l                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                            [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width, lines)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,a:lines)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?12l[?25h[?25l:[?12l[?25hexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l▕———abcdef|▕———␣ˑ¶[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 2: set nolinebreak list"
[?25l[?12l[?25h[?25l:[?12l[?25hset list nolinebreak
[?25lhijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶                
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶          
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\t*mask = nil;\"
[?25l▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~ [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l      
    [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l*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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?12l[?25h[?25l:[?12l[?25hlet 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*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l#define             
+ABCDE      1       [?12l[?25h[?25l:[?12l[?25hvert resize 40
[?25l                    |                    |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] [+][?12l[?25h[?25l:[?12l[?25h$-7
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l#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
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset list linebreak listchars=tab:>- cole=1
[?25l>-->--->->--->>--->--->-->--->--->--->--->-->-[?12l[?25h[?25l:[?12l[?25hsyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25lAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l#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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),7)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l>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>
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?12l[?25h[?25l:[?12l[?25hlet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l[?12l[?25h[?25l:[?12l[?25h$
[?25l@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        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[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25lbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l>;>some text      [?12l[?25h[?25l:[?12l[?25hsyn clear
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match meaning    /;\s*\zs.*/
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match hasword    /^\x\{8}/    contains=word
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match beginword  /\<\x\x/     contained conceal
[?25leeeeee>--[?12l[?25h[?25l:[?12l[?25hsyn match endword    /\x\{6}\>/   contained
[?25l[?12l[?25h[?25l:[?12l[?25hhi meaning   guibg=blue
[?25lsome text[?12l[?25h[?25l:[?12l[?25hhi beginword guibg=green
[?25l[?12l[?25h[?25l:[?12l[?25hhi endword   guibg=red
[?25leeeeee[?12l[?25h[?25l:[?12l[?25hredraw!
[?25leeeeee>--->-;>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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),1)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l                                        
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                + [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: Screenattributes for comment"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 6: Screenattributes for comment    [?12l[?25h[?25l:[?12l[?25hcall append('$', ' /*^I^I and some more */')
[?25l /*>>- and some more */                 [?12l[?25h[?25l:[?12l[?25hexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25leeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?12l[?25h[?25l:[?12l[?25hsyntax on
[?25lbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?12l[?25h[?25l:[?12l[?25hhi SpecialKey term=underline ctermfg=red guifg=red
[?25l▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25lbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt0
[?25l /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['107']
[?12l[?25h[?25l:let attr += ['107']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:let attr += ['69']
[?12l[?25h[?25l:[?12l[?25hcall append('$', ['ScreenAttributes for test6:'])
[?25lScreenAttributes for test6:¶            [?12l[?25h[?25l:[?12l[?25hif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l
:  [?12l[?25h:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Not all attributes are different")

[?25l:  [?12l[?25h:endif
[?25l/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak selection=exclusive
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set linebreak with visual block [?12l[?25h[?25llong line:ˑ¶                            [?12l[?25h[?25l¶                                
¶                            
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?12l[?25h[?25l
foobar foobar TARGET¶               [?12l[?25h[?25lÃ' at end¶[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx' at end¶[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=[]
[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l /*▕———▕—————— 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
¶                                       [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25hset list nolinebreak cc=3
[?25l*
Scr
Att
Tesn 
a b
a b[?12l[?25h[?25l:[?12l[?25hsign define foo text=^+
[?25l[?12l[?25h[?25l:[?12l[?25hsign place 1 name=foo line=50 buffer=2
[?25l   /*▕———▕—————— 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  +[?12l[?25h[?25l:[?12l[?25hnorm! 2kztj
[?25l  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?12l[?25h[?25l:[?12l[?25hlet line1=line('.')
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['92']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hlet line2=line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=attr
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['92']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l  ¶ |
+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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),3)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l3 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¶               [?12l[?25h[?25l:[?12l[?25h" expected: attr[2] is different because of colorcolumn
[?25l[?12l[?25h[?25l:[?12l[?25hif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l
:  [?12l[?25h:   call append('$', "Screen attributes are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Screen attributes are the same!")

[?25l:  [?12l[?25h:endif
[?25l  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 57 lines, 1882 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.oout
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lSome tests for buffer-local autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25he xx
[?25l"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !del test.out.*

[?25l:  [?12l[?25h: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !rm -f test.out

[?25l:!rm -f test.out[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25he somefile           " here, autocommand for xx shall write test.out 
[?25l:!echo buffer-local autommand in xx>> test.out

[?12l[?25h[?25l"somefile" [New File]

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h                     " but autocommand shall not apply to buffer named <buffer

>[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?12l[?25h[?25l:[?12l[?25he xx                 " nothing shall be written
[?25l"xx" [New File][?12l[?25h[?25l:[?12l[?25he somefile           " nothing shall be written
[?25l"somefile" [New File][?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
:  [?12l[?25h: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:endif
[?25l:"
:if has("unix")
:let $CDIR = "."
/CDIR[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:let $CDIR = "."

[?25l:  [?12l[?25h/CDIR

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:if has("amiga")

[?25l:    [?12l[?25h:let $TDIR = "/testdir"

[?25l:    [?12l[?25h:else

[?25l:    [?12l[?25h:let $TDIR = "."

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h/TDIR

[?25l:  [?12l[?25h:endif
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?12l[?25h[?25l:[?12l[?25h" file is modified. It can be occurred when executing the following command
[?25l[?12l[?25h[?25l:[?12l[?25h" directly on Windows without fixing the 'fileformat':
[?25l[?12l[?25h[?25l:[?12l[?25h"  > nmake -f Make_dos.mak test17.out
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 135 lines, 2431 characters written[?12l[?25h[?25l
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/./test17a.in" 3 lines, 88

characters

Press ENTER or type command to continue[?12l[?25h[?25lThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 3 lines, 88 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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"^[:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' without \zs or \ze
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.a")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he! Xdir1/dir2/foo.a
[?25l"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l#include   "bar.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.a
[?25l"Xdir1/dir2/bar.a" [New File][?12l[?25h[?25l#include      "baz.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.a
[?25l"Xdir1/dir2/baz.a" [New File][?12l[?25h[?25l#include"foo.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.a
[?25l"Xbase.a" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l#include    <foo.a>[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.a" [New File] 1 line, 20 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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()'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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][?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.b")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l: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][?12l[?25h[?25l:[?12l[?25hfunction! DotsToSlashes()
[?25l
:  [?12l[?25h:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l:  [?12l[?25h:endfunction
[?25l:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?12l[?25h[?25l:[?12l[?25hlet &includeexpr='DotsToSlashes()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.b
[?25l"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   /bar/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.b
[?25l"Xdir1/dir2/bar.b" [New File][?12l[?25h[?25l%inc      /baz/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.b
[?25l"Xdir1/dir2/baz.b" [New File][?12l[?25h[?25l%inc/foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.b
[?25l"Xbase.b" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    /foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.b" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and no \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.c")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hfunction! StripNewlineChar()
[?25l
:  [?12l[?25h:  if v:fname =~ '\n$'

[?25l:    [?12l[?25h:    return v:fname[:-2]

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  return v:fname

[?25l:  [?12l[?25h:endfunction
[?25l:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='StripNewlineChar()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.c
[?25l"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   bar.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.c
[?25l"Xdir1/dir2/bar.c" [New File][?12l[?25h[?25l%inc      baz.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.c
[?25l"Xdir1/dir2/baz.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/FALSE.c
[?25l"Xdir1/dir2/FALSE.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.c
[?25l"Xbase.c" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    FALSE.c foo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l:[?12l[?25h" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?12l[?25h[?25l:[?12l[?25he test.out
[?25l"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)[?12l[?25h[?25l:[?12l[?25h%s#\\#/#g
[?25lE486: Pattern not found: \\[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 33 lines, 655 characters written[?12l[?25h[?25l:[?12l[?25hq
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for a lot of variations of the 'fileformats' option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" first write three test files, one in each format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=
[?25l[?12l[?25h[?25l:[?12l[?25h/^unix/;/eof/-1w! XXUnix
[?25l"XXUnix" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^dos/;/eof/-1w! XXDos
[?25l"XXDos" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25hset bin noeol
[?25l[?12l[?25h[?25l:[?12l[?25h$w! XXMac
[?25l"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?12l[?25h[?25l
noeol[?12l[?25h[?25l
:[?12l[?25h$w! XXEol
[?25l"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?12l[?25h[?25l:[?12l[?25hset nobin eol
[?25l[?12l[?25h[?25l:[?12l[?25henew!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l3 buffers wiped out[?12l[?25h[?25l:[?12l[?25h" create mixed format files
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !copy XXUnix,XXDos XXUxDs.

[?25l:  [?12l[?25h: !copy XXUnix,XXMac XXUxMac.

[?25l:  [?12l[?25h: !copy XXDos,XXMac  XXDosMac.

[?25l:  [?12l[?25h: !copy XXMac,XXEol  XXMacEol.

[?25l:  [?12l[?25h: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l:  [?12l[?25h:elseif has("win32")

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos XXUxDs

[?25l:  [?12l[?25h: !copy /b XXUnix+XXMac XXUxMac

[?25l:  [?12l[?25h: !copy /b XXDos+XXMac XXDosMac

[?25l:  [?12l[?25h: !copy /b XXMac+XXEol XXMacEol

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !cat XXUnix XXDos >XXUxDs

[?25l:!cat XXUnix XXDos >XXUxDs[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXMac >XXUxMac

[?25l:!cat XXUnix XXMac >XXUxMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXDos XXMac >XXDosMac

[?25l:!cat XXDos XXMac >XXDosMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXMac XXEol >XXMacEol

[?25l:!cat XXMac XXEol >XXMacEol[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l:!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25hendif
[?25l:[?12l[?25h"
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' empty
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" 2 lines, 10 charactersdos^M
dos^M[?12l[?25h[?25l:[?12l[?25hw! XXtt01
[?25l"XXtt01" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt02
[?25l"XXtt02" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=dos
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt11
[?25l"XXtt11" [New File][dos format] 2 lines, 12 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [dos format] 2 lines, 10 charactersdosdos[?12l[?25h[?25l:[?12l[?25hw! XXtt12
[?25l"XXtt12" [New File][dos format] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt13
[?25l"XXtt13" [New File][dos format] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=mac
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt21
[?25l"XXtt21" [New File][mac format] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?12l[?25h[?25l:[?12l[?25hw! XXtt22
[?25l"XXtt22" [New File][mac format] 3 lines, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt23
[?25l"XXtt23" [New File][mac format] 2 lines, 8 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l^Jdos
^Jeof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to one format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt31
[?25l"XXtt31" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt32
[?25l"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt33
[?25l"XXtt33" [New File][mac format] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to two formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt41
[?25l"XXtt41" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt42
[?25l"XXtt42" [New File] 3 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt43
[?25l"XXtt43" [New File][dos format] 3 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt51
[?25l"XXtt51" [New File] 4 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt52
[?25l"XXtt52" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt53
[?25l"XXtt53" [New File][mac format] 4 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt54
[?25l"XXtt54" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt61
[?25l"XXtt61" [New File][dos format] 4 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:dos[?12l[?25h[?25l:[?12l[?25hw! XXtt62
[?25l"XXtt62" [New File][dos format] 4 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt63
[?25l"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25he! XXMacEol
[?25l"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt64
[?25l"XXtt64" [New File][mac format] 4 lines, 26 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXMacEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to three formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt71
[?25l"XXtt71" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,dos,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt72
[?25l"XXtt72" [New File] 2 lines, 24 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,dos,unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt81
[?25l"XXtt81" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lmac,dos,unix:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt82
[?25l"XXtt82" [New File][mac format] 2 lines, 23 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h" try with 'binary' set
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt91
[?25l"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt92
[?25l"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt93
[?25l"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix nobin
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXtt01
[?25l"XXtt01" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt02
[?25l"XXtt02" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt11
[?25l"XXtt11" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt12
[?25l"XXtt12" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt13
[?25l"XXtt13" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt21
[?25l"XXtt21" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt22
[?25l"XXtt22" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt23
[?25l"XXtt23" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt31
[?25l"XXtt31" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt32
[?25l"XXtt32" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt33
[?25l"XXtt33" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt41
[?25l"XXtt41" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt42
[?25l"XXtt42" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt43
[?25l"XXtt43" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt51
[?25l"XXtt51" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt52
[?25l"XXtt52" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt53
[?25l"XXtt53" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt54
[?25l"XXtt54" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt61
[?25l"XXtt61" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt62
[?25l"XXtt62" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt63
[?25l"XXtt63" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt64
[?25l"XXtt64" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt71
[?25l"XXtt71" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt72
[?25l"XXtt72" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt81
[?25l"XXtt81" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt82
[?25l"XXtt82" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt91
[?25l"XXtt91" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt92
[?25l"XXtt92" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt93
[?25l"XXtt93" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results.
[?25l[?12l[?25h[?25l:[?12l[?25h" Make fileformat of test.out the native fileformat.
[?25l[?12l[?25h[?25l:[?12l[?25h" Add a newline at the end.
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25h$r XXtt01
[?25l"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt02
[?25l"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?12l[?25h
[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXtt11
[?25l"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt12
[?25l"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt13
[?25l"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?12l[?25h
[?25l
2[?12l[?25h[?25l:[?12l[?25h$r XXtt21
[?25l"XXtt21" 3 lines, 15 charactersunixunix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt22
[?25l"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt23
[?25l"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?12l[?25h[?25l
3[?12l[?25h[?25l
:[?12l[?25h$r XXtt31
[?25l"XXtt31" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt32
[?25l"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt33
[?25l"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
4[?12l[?25h[?25l
:[?12l[?25h$r XXtt41
[?25l"XXtt41" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt42
[?25l"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt43
[?25l"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
5[?12l[?25h[?25l
:[?12l[?25h$r XXtt51
[?25l"XXtt51" 5 lines, 24 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt52
[?25l"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt53
[?25l"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt54
[?25l"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
6[?12l[?25h[?25l
:[?12l[?25h$r XXtt61
[?25l"XXtt61" 5 lines, 26 characters
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt62
[?25l"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt63
[?25l"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt64
[?25l"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?12l[?25h[?25l
7[?12l[?25h[?25l
:[?12l[?25h$r XXtt71
[?25l"XXtt71" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt72
[?25l"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
8[?12l[?25h[?25l
:[?12l[?25h$r XXtt81
[?25l"XXtt81" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt82
[?25l"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?12l[?25h[?25l
9[?12l[?25h[?25l
:[?12l[?25h$r XXtt91
[?25l"XXtt91" 5 lines, 32 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt92
[?25l"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt93
[?25l"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
10[?12l[?25h[?25l
:[?12l[?25h$r XXUnix
[?25l"XXUnix" 2 lines, 10 characters
unix[?12l[?25h[?25l
:[?12l[?25hset nobinary ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 130 lines, 786 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for insert expansion[?12l[?25h[?25l/^STARTTEST
[?12l[?25h[?25l
:so small.vim[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l"Xtestfile" [New] 3L, 57C written[?12l[?25h[?25l:[?12l[?25hse cot=
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile"
run1 run2[+][?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h[?25l3[?12l[?25h
[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 115-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)
-- INSERTe --^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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3

run1 run2[?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h
[?25l:[?12l[?25hse cpt=.,w,i
[?25l[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)^ U-- Searching...
Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 57INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 57Addinge Whole line completion (^L^N^P) -- Searching...
Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=kXtestfile
[?25l[?12l[?25h[?25l:[?12l[?25hw Xtest11.one
[?25l"Xtest11.one" [New] 9L, 104C writtenXtest11.one+   [?12l[?25h[?25l:[?12l[?25hw Xtest11.two
[?25l"Xtest11.two" [New] 9L, 104C written[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?12l[?25h [?25l-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?12l[?25h[?25l-- INSERT --Xtest11
[?12l[?25h[?25l-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25h" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?12l[?25h[?25l:[?12l[?25h" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 4.INSERTa -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 445.
Make_all.mak
run1 run2d[?12l[?25h [?25l-- INSERT --[?12l[?25h[?25l
run1 run2~                                                                               [?12l[?25h
[?25l:[?12l[?25hse cpt=w
[?25l[?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=u nohid
[?25l[?12l[?25h[?25l

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only matchENDTEST
unless[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Definition completion (^D^N^P)^ U-- Searching...
Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching...
Scanning tags.pincluded file: Xtestfile
-- Keyword completion (^N^P) The only matchtest11file      36Gepeto/Tag/ asd
asd[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h
ru[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New] 15L, 175C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l:"
:" 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?12l[?25h[?25l:[?12l[?25hset maxmem=512 spell
[?25lvim

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[?12l[?25h[?25lasdTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25lChange "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): [?12l[?25h[?25l:[?12l[?25h"
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.latin1.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 151 lines, 3412 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.latin1.add
[?25lasdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?12l[?25h[?25l/[?12l[?25h^test2:
[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.latin1.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.latin1.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.latin1.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.latin1.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" NOSLITSUGS
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('8', '8')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Numbers
[?25lNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?12l[?25h[?25l:[?12l[?25hcall TestOne('9', '9')
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 289 lines, 3844 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?12l[?25h[?25l:[?12l[?25h" text is in latin1, the test text is utf-8.
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l:[?12l[?25hset enc=utf-8
[?25lTests 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[?12l[?25h[?25l:[?12l[?25hset fenc=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.utf-8.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 153 lines, 3426 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.utf-8.add
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?12l[?25h[?25l/[?12l[?25h^test2:
[?25ltomato 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 !![?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.utf-8.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.utf-8.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.utf-8.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.utf-8.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25laddstart
/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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 270 lines, 3685 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for undo file.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile': first a simple one-line change.
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset ul=100 undofile nomore
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --this is one line[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hs/one/ONE/
[?25lONE
[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 change; before #2  0 seconds agoone
[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', change in original file fails check
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 1L, 17CONE
[?12l[?25h[?25l:[?12l[?25hs/line/Line/
[?25lL
[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 1L, 17C written[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" TODO: this beeps
[?25l[?12l[?25h[?5h[?5l[?25lAlready at oldest change[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 17C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --one
twothreefourfivesixseveneightnineten[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 4L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 more line; before #7  0 seconds agoeight[?12l[?25h[?25l1 more line; before #6  0 seconds agoseven[?12l[?25h[?25l1 more line; before #5  0 seconds agosix[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 7L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that reading the undofiles when setting undofile works
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile ul=0
[?25l[?12l[?25h[?25l-- INSERT --six
u[?12l[?25hs[?25l[?12l[?25h[?25l1 line less; before #8  0 seconds ago
~                                                                               [?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile ul=100
[?25l[?12l[?25h[?25l1 more line; before #7  0 seconds agoeight[?12l[?25h[?25l1 more line; before #6  0 seconds agoseven[?12l[?25h[?25l1 more line; before #5  0 seconds agosix[?12l[?25h[?25l1 more line; before #4  0 seconds agofive[?12l[?25h[?25l1 more line; before #3  0 seconds agofour[?12l[?25h[?25l1 more line; before #2  0 seconds agothree[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 10L, 49C appended[?12l[?25h[?25l:[?12l[?25h" And now with encryption, cryptmethod=zip
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile cm=zip
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l-- INSERT --monday
tuesdaywednesdaythursdayfriday[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25lmonday
friday
~                                                                               [?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [crypted] 2L, 14C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l1 more line; before #11  0 seconds agothursday[?12l[?25h[?25l1 more line; before #10  0 seconds agowednesday[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 4L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25ljan
feb
bar apr[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #15  1 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #14  1 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #13  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish2 ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lEnter encryption key: [?12l[?25h*******

[?25lEnter same key again: [?12l[?25h*******

[?25ljan
feb[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish2] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?12l[?25h*******

[?25l"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #19  2 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #18  2 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #17  2 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Rename the undo file so that it gets cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: call rename("_un_Xtestfile", "Xtestundo")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: call rename(".Xtestfile.un~", "Xtestundo")

[?25l:  [?12l[?25h:endif
[?25ljan
feb
mar
apr[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01223456789abcdefghijklmnoparstuvwxyz0123456789"
: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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lInserts 10000 lines with text to fill the swap file with two levels of pointer[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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 linnecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appendd(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet linecount = 10000
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789[?12l[?25h[?25l:[?12l[?25hpreserve
[?25lFile preserved[?12l[?25h[?25l:[?12l[?25h" get the name of the swap file
[?25l[?12l[?25h[?25l:[?12l[?25hredir => swapname
[?25l[?12l[?25h[?25l:[?12l[?25hswapname
[?25l.Xtest.swp[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hlet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899a[?12l[?25h[?25l
:[?12l[?25h" make a copy of the swap file in Xswap
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hexe 'sp ' . swapname
[?25l".Xtest.swp"[noeol] 611L, 1224704Cb0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@~Z}^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@bm-wb-03^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-gtk3/testtdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      799a
999899a
999999a
1000099a~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw! Xswap
[?25l"Xswap" [New][noeol] 611L, 1224704C written[?12l[?25h[?25l:[?12l[?25hecho swapname
[?25l.Xtest.sw[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       b0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@~Z}^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@bm-wb-03^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-gtk3/testtdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe! Xtest
[?25l[?12l[?25h[?25l:[?12l[?25hcall rename('Xswap', swapname)
[?25l[?12l[?25h[?25l:[?12l[?25hrecover Xtest
[?25lUsing 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[?12l[?25h[?25l:[?12l[?25hcall delete(swapname)
[?25l1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       199a
299a
399a
4 99a
5 99a
Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hcall append(0, 'recovery start')
[?25lrecovery start[+][?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name] [+]                                                                    Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hlet linedollar = line('$')
[?25l[?12l[?25h[?25l:[?12l[?25hif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hq!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'recovery end')
[?25lrecovery end[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New] 3L, 29C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for tag search with !_TAG_FILE_ENCODING.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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[?12l[?25h[?25l:[?12l[?25hif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l"Xtags1.txt" [New File] 2 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l"Xtags2.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l"Xtags3.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l"Xtags1" [New File] 2 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hcall setline('.', 'Results of test83')
[?25lResults of test83
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case1:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l[No Name]                                                                       Results of test83test83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=Xtags1
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abcdefghijklmnopqrs
[?25l"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case2:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags2
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag /.BC
[?25l"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case3:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags3
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abc50
[?25l"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 4 lines, 48 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l- Some tests for setting 'number' and 'relativenumber'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden nocp nu rnu viminfo+=nviminfo
[?25l 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 donee     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  [?12l[?25h[?25l:[?12l[?25hredir @a | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! xx
[?25l"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir @b | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! #
[?25l"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 donee     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[?12l[?25h[?25l:[?12l[?25h$put ='results:'
[?25l
1
 20
 19
 18
 17ee 
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?12l[?25h[?25l
:[?12l[?25h$put a
[?25l3 more lines21
 20ee 
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?12l[?25h[?25l:[?12l[?25h$put b
[?25l3 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @c | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @d | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setlocal must NOT reset the other global value'
[?25l
 79 :setlocal must NOT reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put c
[?25l 80 
 81   number[?12l[?25h[?25l
:[?12l[?25h$put d
[?25l 82 
 83   relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l: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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @e | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @f | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setglobal MUST reset the other global value'
[?25l
:setglobal MUST reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put e
[?25lnumber[?12l[?25h[?25l
:[?12l[?25h$put f
[?25lrelativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?12l[?25h[?25l:[?12l[?25hredir @g | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:$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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset nu
[?25l88    [?12l[?25h[?25l:[?12l[?25hredir @h | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':set MUST reset the other global value'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put g
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?12l[?25h[?25l
:[?12l[?25h$put h
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3[?12l[?25h[?25l:[?12l[?25h" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?12l[?25h[?25l:[?12l[?25h" get above src/
[?25l[?12l[?25h[?25l:[?12l[?25hif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l/<<PKGBUILDDIR>>[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?12l[?25h[?25l
:[?12l[?25h$put ='Testing findfile'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?12l[?25h[?25l
:[?12l[?25hset ssl
[?25l[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','src/test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =findfile('test19.in','testdir')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-gtk3/testdir[?12l[?25h[?25l:[?12l[?25h/^results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?12l[?25h[?25lExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest86.in

test1.oktest86.ok

test1.outtest86.out

test103.intest87.in

test103.oktest87.ok

test103.outtest87.out

test104.intest88.in

test104.oktest88.ok

test104.outtest88.out

test107.intest89.in

test107.oktest89.ok

test107.outtest89.out

test108.intest9.in

test108.oktest9.ok

test108.outtest9.out

test11.intest90.in

test11.oktest90.ok

test11.outtest90.out

test12.intest91.in

test12.oktest91.ok

test12.outtest91.out

test14.intest94.in

test14.oktest94.ok

test14.outtest94.out

test15.intest95.in

test15.oktest95.ok

test15.outtest95.out

test17.intest97.in

test17.oktest97.ok

test17.outtest97.out

test17a.intest98.in

test19.intest98.ok

test19.oktest98.out

test19.outtest99.in

test20.intest99.ok

test20.oktest99.out

test20.outtest_alot.vim

test22.intest_alot_latin.vim

test22.oktest_alot_utf8.vim

test22.outtest_arglist.res

test23.intest_arglist.vim

test23.oktest_assert.res

test23.outtest_assert.vim

test24.intest_assign.vim

test24.oktest_autochdir.res

test24.outtest_autochdir.vim

test25.intest_autocmd.vim

test25.oktest_autocmd_option.in

test25.outtest_autocmd_option.ok

test26.intest_autocmd_option.out

test26.oktest_autoformat_join.in

test26.outtest_autoformat_join.ok

test28.intest_autoformat_join.out

test28.oktest_backspace_opt.res

test28.outtest_backspace_opt.vim

test29.intest_breakindent.res

test29.oktest_breakindent.vim

test29.outtest_bufwintabinfo.res

test3.intest_bufwintabinfo.vim

test3.oktest_cdo.res

test3.outtest_cdo.vim

test30.intest_changelist.in

test30.oktest_changelist.ok

test30.outtest_changelist.out

test31.intest_channel.py

test31.oktest_channel.res

test31.outtest_channel.vim

test32.intest_channel_pipe.py

test32.oktest_charsearch.res

test32.outtest_charsearch.vim

test33.intest_close_count.in

test33.oktest_close_count.ok

test33.outtest_close_count.out

test34.intest_cmdline.vim

test34.oktest_command_count.vim

test34.outtest_comparators.in

test36.intest_comparators.ok

test36.oktest_comparators.out

test36.outtest_crypt.vim

test37.intest_cscope.vim

test37.oktest_cursor_func.vim

test37.outtest_delete.vim

test38.intest_diffmode.vim

test38.oktest_digraph.vim

test38.outtest_display.vim

test39.intest_erasebackword.in

test39.oktest_erasebackword.ok

test39.outtest_erasebackword.out

test4.intest_eval.in

test4.oktest_eval.ok

test4.outtest_eval.out

test40.intest_eval_func.vim

test40.oktest_ex_undo.vim

test40.outtest_execute_func.vim

test41.intest_expand.vim

test41.oktest_expand_dllpath.vim

test41.outtest_expr.vim

test42.intest_expr_utf8.vim

test42.oktest_farsi.vim

test42.outtest_feedkeys.vim

test43.intest_file_perm.vim

test43.oktest_fileformat.vim

test43.outtest_filter_cmd.vim

test44.intest_filter_map.vim

test44.oktest_fixeol.in

test44.outtest_fixeol.ok

test45.intest_fixeol.out

test45.oktest_float_func.vim

test45.outtest_fnameescape.vim

test48.intest_fnamemodify.vim

test48.oktest_fold.vim

test48.outtest_functions.vim

test49.intest_getcwd.in

test49.oktest_getcwd.ok

test49.outtest_getcwd.out

test49.vimtest_gf.vim

test5.intest_glob2regpat.vim

test5.oktest_gn.vim

test5.outtest_goto.vim

test50.intest_gui.vim

test50.oktest_hardcopy.vim

test51.intest_help_tagjump.vim

test51.oktest_hide.vim

test51.outtest_history.vim

test52.intest_hlsearch.vim

test52.oktest_increment.vim

test52.outtest_increment_dbcs.vim

test53.intest_insertcount.in

test53.oktest_insertcount.ok

test53.outtest_insertcount.out

test54.intest_job_fails.vim

test54.oktest_join.vim

test54.outtest_json.vim

test55.intest_jumps.vim

test55.oktest_lambda.vim

test55.outtest_langmap.vim

test56.intest_largefile.vim

test56.oktest_lispwords.vim

test56.outtest_listchars.in

test57.intest_listchars.ok

test57.oktest_listchars.out

test57.outtest_listlbr.in

test58.intest_listlbr.ok

test58.oktest_listlbr.out

test58.outtest_listlbr_utf8.in

test59.intest_listlbr_utf8.ok

test59.oktest_listlbr_utf8.out

test59.outtest_man.vim

test60.intest_mapping.vim

test60.oktest_marks.vim

test60.outtest_match.vim

test60.vimtest_matchadd_conceal.vim

test64.intest_matchadd_conceal_utf8.vim

test64.oktest_menu.vim

test64.outtest_messages.vim

test65.intest_mksession.vim

test65.oktest_mksession_utf8.vim

test65.outtest_modeline.vim

test66.intest_nested_function.vim

test66.oktest_netbeans.py

test66.outtest_netbeans.vim

test67.intest_normal.vim

test67.oktest_options.vim

test67.outtest_packadd.vim

test68.intest_partial.vim

test68.oktest_perl.vim

test68.outtest_popup.vim

test69.intest_profile.vim

test69.oktest_quickfix.vim

test69.outtest_regexp_latin.vim

test7.intest_regexp_utf8.vim

test7.oktest_reltime.vim

test7.outtest_ruby.vim

test70.intest_search.vim

test70.oktest_search_mbyte.in

test70.outtest_search_mbyte.ok

test72.intest_search_mbyte.out

test72.oktest_searchpos.vim

test72.outtest_set.vim

test73.intest_signs.vim

test73.oktest_smartindent.vim

test73.outtest_sort.vim

test75.intest_source.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_taglist.vim

test8.oktest_textobjects.vim

test8.outtest_timers.vim

test80.intest_true_false.vim

test80.oktest_undo.vim

test80.outtest_unlet.vim

test82.intest_usercommands.vim

test82.oktest_utf8.in

test82.outtest_utf8.ok

test83-tags2test_utf8.out

test83-tags3test_viminfo.vim

test83.intest_viml.vim

test83.oktest_visual.vim

test83.outtest_window_cmd.vim

test84.intest_window_id.vim

test84.oktest_wordcount.in

test84.outtest_wordcount.ok

test85.intest_wordcount.out

test85.oktest_writefile.vim

test85.out

: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
Xtestfile1 file1...Xtestfile1Xtestfile2 2:te 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_display.vim" 39 lines, 849 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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]                                                                  [?12l[?25h[?25l/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?12l[?25h[?25l
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_matchadd_conceal.vim" 289 lines, 9276 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vIFKvw7/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vRaIlvH/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?12l[?25h[?25l:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?12l[?25h[?1l>[?1049lone
[?1049h[?1h=[?25l:.!sed -e 's/^/|    /'
[?12l[?25h[?25l:.!
:!echo one
[?1l>[?12l[?25h[?1049l
[No write since last change]
one

Press ENTER or type command to continue[?1049h[?1h=[?25l:.!!
[?12l[?25h
[?25lExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?12l[?25h[?25l7 lines filtered:.,$!./Xsed_format.sh
[?12l[?25h[?25l7 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/vMoidgf/11removed from /tmp/vMoidgf/11goood' added to /tmp/vMoidgf/11removed from /tmp/vMoidgf/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'[?1l>[?12l[?25h[?1049l
[No write since last change]
stdin not open for reading!

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25lExecuting 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]                                                                  [?12l[?25h[?25l[?12l[?25h[?25l:^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
[?1l>[?12l[?25h[?1049l
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lAlready only one window[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lExecuting 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[?1l>[?12l[?25h[?1049lloclistfoo:1:loclistfoo
[?1049h[?1h=
[?25lAlready 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '  66 their', '  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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l1: /<<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

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_compatible_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25lError detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=
[?25lExecuting Test_file_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l3 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l2 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l4 files to edit
[?1049h[?1h=
[?25lExecuting Test_help_arg()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 1 line, 10 characters[?12;25h[?12l[?25h"Xtestout" [New File] 1 line, 10 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=
[?25lExecuting Test_startup_script()[?1000h

Executing Test_startuptime()[?1l>[?12l[?25h[?1049l[?1000l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1000h[?1049h[?1h=[?25l"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?1000l
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 2 lines, 24 characters[?12;25h[?12l[?25h"Xtestout" [New File] 2 lines, 24 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=[?25l"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?12l[?25h[?25l1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?12l[?25h

[?25lExecuting 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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  2019/06/23 12:16:10

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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viml.vim" 1315 lines, 31693 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/vNs3qoS/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vNs3qoS/0" 13L, 248C written
"test_viml.vim" 1315L, 31693C
   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/vNs3qoS/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vNs3qoS/1" 14L, 281C written
"test_viml.vim" 1315L, 31693C
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/vNs3qoS/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vNs3qoS/2" 17L, 445C written
"test_viml.vim" 1315L, 31693C
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
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_utf8.vim" 11 lines, 440 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot.vim" 49 lines, 1258 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_OptionSet_modeline()

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" 49L, 1258C

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 Fwordfile1

cmd1

  2 Fwordfile2

cmd2

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_modeline.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             tBufReadPre              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      
Octobere        
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      
Octobere        
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      
Octobere        
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()[?12l[?25h[?25lExecuting Test_cursorhold_insert_ctrl_x()[?12l[?25h[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_empty_doau()

No matching autocommands

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" 49L, 1258C

Executing Test_func_sandbox()

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_glob2regpat_invalid()

Executing Test_glob2regpat_valid()

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] 8784L, 372352Cline 7690 of 8784 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1324 of 8784 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

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()[?12l[?25h

[?25l1[?12l[?25h
[?25l2[?12l[?25h
[?25l3[?12l[?25h
[?25l4[?12l[?25h
[?25l5[?12l[?25h
[?25l6[?12l[?25h
[?25l7[?12l[?25h
[?25l8[?12l[?25h
[?25lExecuting 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_modeline_fails_always()
"Xmodeline_fails_backupdir" 2L, 41C

"Xmodeline_fails_cdpath" 2L, 38C

"Xmodeline_fails_charconvert" 2L, 43C

"Xmodeline_fails_completefunc" 2L, 44C

"Xmodeline_fails_cscopeprg" 2L, 41C

"Xmodeline_fails_diffexpr" 2L, 40C

"Xmodeline_fails_directory" 2L, 41C

"Xmodeline_fails_equalprg" 2L, 40C

"Xmodeline_fails_errorfile" 2L, 41C

"Xmodeline_fails_exrc" 2L, 36C

"Xmodeline_fails_formatprg" 2L, 41C

"Xmodeline_fails_fsync" 2L, 37C

"Xmodeline_fails_grepprg" 2L, 39C

"Xmodeline_fails_helpfile" 2L, 40C

"Xmodeline_fails_imactivatefunc" 2L, 46C

"Xmodeline_fails_imstatusfunc" 2L, 44C

"Xmodeline_fails_keywordprg" 2L, 42C

"Xmodeline_fails_langmap" 2L, 39C

"Xmodeline_fails_makeef" 2L, 38C

"Xmodeline_fails_makeprg" 2L, 39C

"Xmodeline_fails_mkspellmem" 2L, 42C

"Xmodeline_fails_modelineexpr" 2L, 32C

"Xmodeline_fails_omnifunc" 2L, 40C

"Xmodeline_fails_operatorfunc" 2L, 44C

"Xmodeline_fails_printdevice" 2L, 43C

"Xmodeline_fails_patchexpr" 2L, 41C

"Xmodeline_fails_printexpr" 2L, 41C

"Xmodeline_fails_runtimepath" 2L, 43C

"Xmodeline_fails_secure" 2L, 38C

"Xmodeline_fails_shell" 2L, 37C

"Xmodeline_fails_shellcmdflag" 2L, 44C

"Xmodeline_fails_shellpipe" 2L, 41C

"Xmodeline_fails_shellquote" 2L, 42C

"Xmodeline_fails_shellredir" 2L, 42C

"Xmodeline_fails_shellxquote" 2L, 43C

"Xmodeline_fails_spellfile" 2L, 41C

"Xmodeline_fails_spellsuggest" 2L, 44C

"Xmodeline_fails_titleold" 2L, 40C

"Xmodeline_fails_viewdir" 2L, 39C

"Xmodeline_fails_viminfo" 2L, 39C

"Xmodeline_fails_undodir" 2L, 39C

"Xmodeline_fails_t_AB" 2L, 36C

"Xmodeline_fails_t_ce" 2L, 36C

"Xmodeline_fails_t_sr" 2L, 36C

"Xmodeline_fails_t_8b" 2L, 36C

Executing Test_modeline_fails_modelineexpr()
"Xmodeline_fails_balloonexpr" 2L, 43C

"Xmodeline_fails_foldexpr" 2L, 40C

"Xmodeline_fails_foldtext" 2L, 40C

"Xmodeline_fails_formatexpr" 2L, 42C

"Xmodeline_fails_guitablabel" 2L, 43C

"Xmodeline_fails_iconstring" 2L, 42C

"Xmodeline_fails_includeexpr" 2L, 43C

"Xmodeline_fails_indentexpr" 2L, 42C

"Xmodeline_fails_rulerformat" 2L, 43C

"Xmodeline_fails_statusline" 2L, 42C

"Xmodeline_fails_tabline" 2L, 39C

"Xmodeline_fails_titlestring" 2L, 43C

Executing Test_modeline_filetype()
"Xmodeline_filetype" 2L, 24C

Executing Test_modeline_filetype_fails()
"Xmodeline_fails_filetype" 2L, 31C

Executing Test_modeline_invalid()
"Xmodeline" 2L, 13C

Executing Test_modeline_keymap()
"Xmodeline_keymap" 2L, 32C

Executing Test_modeline_keymap_fails()
"Xmodeline_fails_keymap" 2L, 35C

Executing Test_modeline_syntax()
"Xmodeline_syntax" 2L, 25C

Executing Test_modeline_syntax_fails()
"Xmodeline_fails_syntax" 2L, 32C

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 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
[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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_repeat_many()[?12l[?25h

[?25lExecuting Test_repeat_three()[?12l[?25h

[?25lExecuting Test_retain_partial()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_stop_in_callback()[?12l[?25h

[?25lExecuting 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[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_dir_delete()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting 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()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=
[?25l"colored" [New File]

Executing Test_trunc()

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()[?12l[?25h[?25ltilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 256 tests"messages" 584L, 15447C

"messages" 845L, 23978C written

[?1l>[?12l[?25h[?1049l

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_OptionSet_modeline()
    Skipped
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_empty_doau()
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_sandbox()
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_glob2regpat_invalid()
Executing Test_glob2regpat_valid()
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_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_modeline_fails_always()
Executing Test_modeline_fails_modelineexpr()
Executing Test_modeline_filetype()
Executing Test_modeline_filetype_fails()
Executing Test_modeline_invalid()
Executing Test_modeline_keymap()
Executing Test_modeline_keymap_fails()
Executing Test_modeline_syntax()
Executing Test_modeline_syntax_fails()
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_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 256 tests
SKIPPED Test_OptionSet_modeline(): test_override() missing

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 -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     
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 -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.
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" If columns or lines are too small, create wrongtermsize.
[?25l[?12l[?25h[?25l:[?12l[?25h" (Some tests will fail. When columns and/or lines are small)
[?25l[?12l[?25h[?25l:[?12l[?25hif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l/* vim: set cin ts=4 sw=4 : */[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo modeline
[?25l[?12l[?25h[?25l:[?12l[?25hedit                " read modeline
[?25l"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?12l[?25h[?25l/[?12l[?25hstart of AUTO
[?25l[?12l[?25h[?25l/[?12l[?25hend of AUTO
[?25l956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?12l[?25h[?25l/^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
 */[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset tw=0 wm=60 columns=80 noai fo=croq
[?25l}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
 */[?12l[?25h[?25l/[?12l[?25hserious/e
[?25l[?12l[?25h[?25l


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

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

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

/[?12l[?25htesting2
[?25lif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?12l[?25h [?25l
/^STARTTEST
}

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

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


[?25l8 lines to indent...
9indented [?12l[?25h
   [?25l/^STARTTEST
n();
}

STARTTEST[?12l[?25h[?25l
:set cino={s,e-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,e-s
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
7 lines to indent...
8indented     {[?12l[?25h[?25l
if ( k() )[?12l[?25h[?25l
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

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

STARTTEST[?12l[?25h[?25l
:set cino= com=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino= com=
[?25l[?12l[?25h[?25l/[?12l[?25hcomment
[?25la()
{
label1:/* hmm */// comment[?12l[?25h[?25l
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set comments& comments^=s:/*,m:**,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/simple
=5j[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset comments& comments^=s:/*,m:**,ex:*/
[?25l[?12l[?25h[?25l/[?12l[?25hsimple
[?25l/*
  * A simple comment[?12l[?25h[?25l
5 lines to indent...
6indented * A simple comment[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
/*
** A different comment
*/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[?25l
69 lines to indent...
50
7indented [?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
/^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};[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l:[?12l[?25hset cino+=l1
[?25l[?12l[?25h[?25l
[?12l[?25h

[?25l22 lines to indent...
23indented [?12l[?25h
[?25l/^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";
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l
[?12l[?25h

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

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

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

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


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


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


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


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


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


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

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


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

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

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

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

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

STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l16 lines to indent...
17indented [?12l[?25h[?25l/^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',[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1,+2
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?12l[?25h[?25l/^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[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin cino&
[?25l[?12l[?25h[?25l/[?12l[?25hstart of define
[?25l[?12l[?25h[?25l/[?12l[?25hend of define
[?25l11 lines to indent...
12indented     BBB\
    CCC[?12l[?25h[?25l/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l226 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 */[?12l[?25h[?25l:[?12l[?25h1;/start of AUTO/,$wq! test.out
[?25l"test.out" [New] 2096L, 20188C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 sset
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes current buffer on BufEnter event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter Xxx brew
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25lstartstart
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25h.,/end of/w! Xxx   " write test file Xxx
[?25l"Xxx" [New] 7L, 124C written[?12l[?25h[?25l:[?12l[?25hset ai modeline modelines=3
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xxx             " split to Xxx, autocmd will do :brew
[?25l"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 ssetGo# 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[?12l[?25h[?25l: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[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --        this should be auto-indented[+][+][?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l:[?12l[?25h                   " Append text with autoindent to this file
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufEnter Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hbuf Xxx            " go to Xxx, no autocmd anymore
[?25l"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~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxxt          [?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --this should be in column 1[+][?12l[?25h[?25l:[?12l[?25hwq " append text without autoindent to Xxx
[?25l"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 ssetGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25hr Xxx             " include Xxx in the current file
[?25l"Xxx" 8L, 151C
start of test file Xxx[?12l[?25h[?25l
:[?12l[?25hset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l:au! BufEnter Xxx[?12l[?25h[?25lvim: 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
[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --
# def[?12l[?25h[?25lINSERTt --defo[?12l[?25hd[?25l[?12l[?25h[?25l
-- INSERT --
# abcdef[?12l[?25h[?25l
-- INSERT --
-- (insert)- --[?12l[?25h[?25l
-- INSERTt --def:[?12l[?25hd[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l:[?12l[?25h?startstart?,$w! test.out
[?25l"test.out" [New] 20L, 330C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that deletes the current buffer on BufLeave event.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave Xxx bwipe
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx               " write test file Xxx
[?25l"Xxx" [New File] 7 lines, 124 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx                         " split to Xxx
[?25l"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                                                                        [?12l[?25h[?25l:[?12l[?25hbwipe                          " delete buffer Xxx, now we're back here
[?25lTest 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[?12l[?25h[?25lvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?12l[?25h[?25l
?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l
this is some more text[?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l
:[?12l[?25h                               " Append some text to this file
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out           " Write current file contents
[?25l"test.out" [New File] 8 lines, 147 characters written[?12l[?25h[?25l:[?12l[?25hbwipe test.out                 " delete alternate buffer
[?25l[?12l[?25h[?25l:[?12l[?25hau bufleave test5.in bwipe
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!                         " delete current buffer, get an empty one
[?25lError 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lthis is another test line[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 26 characters appended[?12l[?25h[?25l:[?12l[?25h                               " append an extra line to the output file
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for autocommand that changes the buffer list, when doing ":ball".[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1   " write test file Xxx1
[?25l"Xxx1" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx1
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2    " write test file Xxx2
[?25l"Xxx2" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx2
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3    " write test file Xxx3
[?25l"Xxx3" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx3
[?25l"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 [+]                                                                    [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest 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[?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 bwipe
[?25l[?12l[?25h[?25l4[?12l[?25h[?25l:[?12l[?25hball                 " open window for all args, close Xxx2
[?25l"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

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

Press ENTER or type command to continue[?12l[?25h[?25l: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                                                                            [?12l[?25h
test7.in [+]                                                                     Xxx1                                                                            [?25l:[?12l[?25hw >>test.out        " Append contents of second window (Xxx1)
[?25l"test.out" 4 lines, 77 characters appended[?12l[?25htest7.in [+]                                                                    Xxx1                                                                             [?25l:[?12l[?25h/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25lsearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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('$')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

E203: Autocommands deleted or unloaded buffer to be written

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

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

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

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! BufWritePre
[?25lstart of Xxx1test
end of Xxx[?12l[?25h[?25l:[?12l[?25hfunc CloseAll()
[?25l
:  [?12l[?25h  let i = 0

[?25l:  [?12l[?25h  while i <= bufnr('$')

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

[?25l:      [?12l[?25h      exe  i . "bunload"

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let i += 1

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfunc WriteToOut()
[?25l
:  [?12l[?25h  edit! test.out

[?25l:  [?12l[?25h  $put ='VimLeave done'

[?25l:  [?12l[?25h  write

[?25l:  [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~                                                                               [?12l[?25h[?25l:[?12l[?25hset viminfo='100,nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufUnload * call CloseAll()
[?25l[?12l[?25h[?25l:[?12l[?25hau VimLeave * call WriteToOut()
[?25l[?12l[?25h[?25l:[?12l[?25he small.vim
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp mbyte.vim
[?25l"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?12l[?25h[?25l:[?12l[?25hq
[?25lError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Bufleave autocommand that deletes the buffer we are about to edit.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave test9.in bwipe yy
[?25l[?12l[?25h[?25l:[?12l[?25he yy
[?25lE143: Autocommands unexpectedly deleted new buffer yy[?12l[?25h[?25l:[?12l[?25h/^start of/,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 2 lines, 42 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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

"
[?25l:  [?12l[?25h:else

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

[?25l:  [?12l[?25h:endif
[?25l:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?12l[?25h[?25l:[?12l[?25hexe "normal " . tt
[?25lABC !a^Og^G8[?12l[?25h[?25l:[?12l[?25hunlet tt
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset vb
[?25l[?12l[?25h[?25l/[?12l[?25h^Piece
[?25l[?12l[?25h[?25l{A[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25ltt m2 {[?12l[?25h[?25l{B[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25lt2;} e2tt m3 {[?12l[?25h[?25l{C[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l{DC[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{EA[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{F[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}G e1[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h
[?25lif (x){t3;}} e3[?12l[?25h[?25l}H e3[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l
}[?12l[?25h[?5h[?5l[?25l}I[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}JH e3[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 8 characters appended[?12l[?25h[?25l}K e2[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l{LF[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^foobar
[?25lfoobar[?12l[?25h[?25l
:[?12l[?25hlet startline = line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('foobar', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25hcall search('^$', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('^$', 'bc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l/[?12l[?25htwo
[?25lsubstitute foo asdf

one two[?12l[?25h[?25l
:[?12l[?25hcall search('.', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hs/foo/bar/
[?25lbar
[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25lsearch()
0
1
1
two
foo[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hkeeppatterns s/asdf/xyz/
[?25lxyz[?12l[?25h[?25l:[?12l[?25h$put =@/
[?25l
^substitute[?12l[?25h[?25l
/[?12l[?25h^substitute
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l
/[?12l[?25hbar /e
[?25l[?12l[?25h[?25l:[?12l[?25h$put =@0
[?25l
substitute bar xyz[?12l[?25h[?25l

:[?12l[?25hkeeppatterns /xyz
[?25l[?12l[?25h[?25l
/bar /exyz[?12l[?25h[?25l:[?12l[?25h/^search()/,$w >>test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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


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


3 more lines
aaaaaa3 more lines[?12l[?25h[?25l
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?12l[?25h
[?25l:[?12l[?25h?test for :left?,$w! test.out
[?25l"test.out"[New] 111L, 2304C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset smarttab expandtab ts=8 sw=4
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lSTARTTEST
: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
[?12l[?25h[?25l
/[?12l[?25hsome
[?25lstart textsome test text[?12l[?25h[?25l    ome test text[?12l[?25h[?25l
:[?12l[?25hset noexpandtab
[?25l[?12l[?25h[?25l/[?12l[?25hother
[?25ltest textother test text[?12l[?25h[?25l    ther test text[?12l[?25h[?25l
a cde[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs and then backspacing to undo it
[?25l[?12l[?25h
    [?25l[?12l[?25h[?25l
f ghi[?12l[?25h[?25l
:[?12l[?25h" Test replacing with Tabs
[?25l[?12l[?25h
    [?25l     hi[?12l[?25h[?25l
test text[?12l[?25h[?25l
:[?12l[?25h" Test that copyindent works with expandtab set
[?25l[?12l[?25h[?25l:[?12l[?25hset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?12l[?25h[?25l{x[?12l[?25h[?25l
:[?12l[?25hset nosol
[?25l[?12l[?25h[?25l/[?12l[?25hSecond line/
[?25l
Second line beginning with whitespace[?12l[?25h[?25l
  with whitespace[?12l[?25h[?25l
:[?12l[?25h?^start?,$w! test.out
[?25l"test.out" [New File] 10 lines, 121 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Ox^[jAy^[kdd[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25ly
Ox^[jAy^[kdd[?12l[?25h[?25l

2 changes; before #1  0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l1 line less; before #1  0 seconds ago    [?12l[?25h[?25l:[?12l[?25hquit!
[?25l: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[?12l[?25h[?25l[?12l[?25h[?25l
Ox^[jAy^[kdd[?12l[?25h[?25l
/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l/[?12l[?25h456$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25l4
234[?12l[?25h[?25l5
345[?12l[?25h[?25l[?12l[?25h[?25lstart here56
234start here67
345start here78[?12l[?25h[?25l:[?12l[?25h/56$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for file with some lines ending in CTRL-M, some not^M[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for regexp with backslash and other special characters inside [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[\t\]]
[?25l[?12l[?25h[?25ltext test tex[?12l[?25h[?25l/[?12l[?25h[]y]
[?25l[?12l[?25h[?25ltest text[?12l[?25h[?25l/[?12l[?25h[\]]
[?25l[?12l[?25h[?25ltext test text[?12l[?25h[?25l/[?12l[?25h[y^]
[?25l[?12l[?25h[?25lst text[?12l[?25h[?25l/[?12l[?25h[$y]
[?25l[?12l[?25h[?25lxt test text[?12l[?25h[?25l/[?12l[?25h[\x61]
[?25l[?12l[?25h[?25lext test text  x61[?12l[?25h[?25l/[?12l[?25h[\x60-\x64]
[?25l[?12l[?25h[?25lext test text  x60-x64[?12l[?25h
[?25l/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text  x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text  o143[?12l[?25h[?25l text test text  o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text  o140-o144[?12l[?25h[?25lt text test text  o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text  o41 7[?12l[?25h[?25l text test text  o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text  \%x42[?12l[?25h[?25lest text  \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text  \%o103[?12l[?25h[?25lst text  \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text  [\x00][?12l[?25h[?25ltest text  [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext  [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text  [\x00-\x10][?12l[?25h[?25l
test \xyztext test text  [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text  [\x-z][?12l[?25h[?25l
test text tev\uyst text  [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text  [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//
[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
 [?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
 [?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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")[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h:  if has("ebcdic")

[?25l:    [?12l[?25h:    execute "normal o" . i . "\047"

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    execute "normal o" . i . "\033"

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i % 2

[?25l:    [?12l[?25h:    normal Ax^^[

[?25l:    [?12l[?25h:    if i == 9

[?25l:      [?12l[?25h:      break

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if i == 5

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      let j = 9

[?25l:      [?12l[?25h:      while j > 0

[?25l:[?12l[?25h:        if has("ebcdic")

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x27"

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          execute "normal" j . "a" . j . "\x1b"

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        let j = j - 1

[?25l:[?12l[?25h:      endwhile

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  if i == 9

[?25l:    [?12l[?25h:    if has("ebcdic")

[?25l:      [?12l[?25h:      execute "normal Az\047"

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      execute "normal Az\033"

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endwhile
[?25l:  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[?12l[?25h[?25l
:[?12l[?25hunlet i j
[?25l[?12l[?25h[?25l:[?12l[?25h't,$w! test.out
[?25l"test.out" [New File] 10 lines, 159 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for sourcing a file with CTRL-V's at the end of the line[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25l
sd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25hd  [?25lsd^[[?12l[?25h^[  [?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l
:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 cpoptionss+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for joining lines and marks in them[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j
[?25l[?12l[?25h[?25l/[?12l[?25hfirstline/
[?25l[?12l[?25h
[?25l/[?12l[?25h^STARTTEST/-1
[?25l+-1
37 fewer linesSTARTTEST
/^{/+1[?12l[?25h[?25lmore linesasdfasdf.
asdf[?12l[?25h[?25lasdf
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop!
ert[?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?12l[?25h  er[?25lt  e[?12l[?25h
zx cv[?25len[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv[?25l
hjkl iop![?12l[?25h
hjkl i[?25l.  as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l


:[?12l[?25hset cpoptions-=j nojoinspaces compatible
[?25l[?12l[?25h
[?25l

37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l  asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.      [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l.  as dfg? hjkl iop! ert[?12l[?25h[?25lt  a[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l
/[?12l[?25hSTARTTEST/-2
[?25l+-2
4 fewer lines[?12l[?25h[?25l/^STARTTEST

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

STARTTEST[?12l[?25h[?25l
:" Test with backspace set to the non-compatible setting
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" Test with backspace set to the non-compatible setting
[?25l[?12l[?25h[?25l/[?12l[?25h^\d\+ this
[?25l[?12l[?25h[?25l:[?12l[?25hset cp bs=2
[?25l[?12l[?25h[?25l[?12l[?25hd    [?25lvim2[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?25ld3[?12l[?25h[?25l:[?12l[?25hiunmap <c-u>
[?25l[?12l[?25h[?25l[?12l[?25h
[?25l:[?12l[?25h" Test with backspace set to the compatible setting
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace= visualbell
[?25l[?12l[?25h[?25lvim5[?12l[?25h[?5h[?5l[?5h[?5l[?25ld vim6[?12l[?25h6    [?25lzwei[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <c-u> <left><c-u>
[?25l[?12l[?25h[?5h[?5l[?5h[?5l[?25lvim7[?12l[?25h
[?25l:[?12l[?25hset compatible novisualbell
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTj3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code!^M// Make sure backspacing does not remove this comment leader.^[0i^HH^[
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?12l[?25h
[?25l/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?12l[?25h
[?25l:[?12l[?25h.,+8join
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?12l[?25h
[?25l/* 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?[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lShould the next comment leader be left alone?  Yes.


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


:[?12l[?25h.,+2join
[?25l/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?12l[?25h
[?25l/* Here the comment leader should be left intact. */ // And so should this one.[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();[?12l[?25h[?25l
[?12l[?25h[?25lif (condition) // Remove the next comment leader!  OK, I will.
[?12l[?25h[?25l
action();
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;[?12l[?25h[?25l
[?12l[?25h[?25lint i = 7 /* foo *// 3 // comment
[?12l[?25h[?25l
;
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+5join
[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25l># 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 brackett) 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 liness. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25lSome code!
// Make sure backspacing does not remove this comment leader.[?12l[?25h
[?25l// Make sure backspacing does not remove this comment leader.
}[?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:?firstline?+1,$w! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l74 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 brackett) 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 liness. This comment should retain its comment leader.># Note that the last character of the ending comment leader (left angle brackett) 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 liness. This comment should retain its comment leader.

Some code!// Make sure backspacing does not remove this comment leader.
}[?12l[?25h[?25l:[?12l[?25h?firstline?+1,$w! test.out
[?25l"test.out" [New File] 97 lines, 3018 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for commands that close windows and/or buffers:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h
[?25l1[?12l[?25h[?25l:[?12l[?25h$w! Xtest1
[?25l"Xtest1" [New File] 1 line, 11 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h$w! Xtest2
[?25l"Xtest2" [New File] 1 line, 11 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h$w! Xtest3
[?25l"Xtest3" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hn! Xtest1 Xtest2
[?25l"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test for working :n when hidden set; write "testtext 2"
[?25l[?12l[?25h[?25l:[?12l[?25hn
[?25l"Xtest2" 1 line, 11 characters2[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25h" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hrew
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hrew
[?25l"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hsp
[?25lXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hn Xtest2 Xtest3
[?25l"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 [?12l[?25h[?25l:[?12l[?25hall
[?25l"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25lXtest1 [+]                                                                      Xtest2 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 2 2" twice
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l1 1[?12l[?25h[?25l:[?12l[?25hq!
[?25ltesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25hunhide
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hhide
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3"
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25ltesttext 3 3[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 1 line, 11 characters1[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3 3"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest3
[?25l"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 1"
[?25l[?12l[?25h[?25l3 3[?12l[?25h[?25l:[?12l[?25hclose!
[?25l1~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest4
[?25l"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?12l[?25h[?25l 4[+][?12l[?25h[?25l:[?12l[?25hall!
[?25l"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[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25ltesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":q!" and hidden buffer.
[?25l[?12l[?25h[?25l:[?12l[?25hbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp Xtest1
[?25l"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[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25lXtest1                                                                           test31.in                                                                       [?12l[?25h[?25l:[?12l[?25hbw!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[?12l[?25h[?25l:[?12l[?25hbot sp Xtest2
[?25l"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hbot sp Xtest3
[?25l"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?12l[?25h[?25l:[?12l[?25hset modified
[?25l[+][?12l[?25h[?25l:[?12l[?25hwincmd t
[?25lXtest1 [+]                                                                      Xtest3 [+]                                                                       [?12l[?25h[?25l:[?12l[?25hhide
[?25ltesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?12l[?25h[?25l:[?12l[?25hq!
[?25l3~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hq!
[?25lE37: No write since last change

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'lisp'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset lisp
[?25l[?12l[?25h[?25l/[?12l[?25h^(defun
[?25l[?12l[?25h[?25l22 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[?12l[?25h[?25l:[?12l[?25h/^(defun/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction Table(title, ...)
[?25l
:  [?12l[?25h:  let ret = a:title

[?25l:  [?12l[?25h:  let idx = 1

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

[?25l:    [?12l[?25h:    exe "let ret = ret . a:" . idx

[?25l:    [?12l[?25h:    let idx = idx + 1

[?25l:    [?12l[?25h:  endwhile

[?25l:  [?12l[?25h:  return ret

[?25l:  [?12l[?25h:endfunction
[?25l: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[?12l[?25h[?25l

:[?12l[?25hfunction Compute(n1, n2, divname)
[?25l
:  [?12l[?25h:  if a:n2 == 0

[?25l:    [?12l[?25h:    return "fail"

[?25l:    [?12l[?25h:  endif

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

[?25l:  [?12l[?25h:  return "ok"

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

:[?12l[?25hfunc Expr1()
[?25l
:  [?12l[?25h:  normal! v

[?25l:  [?12l[?25h:  return "111"

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

:[?12l[?25hfunc Expr2()
[?25l
:  [?12l[?25h:  call search('XX', 'b')

[?25l:  [?12l[?25h:  return "222"

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

:[?12l[?25hfunc ListItem()
[?25l
:  [?12l[?25h:  let g:counter += 1

[?25l:  [?12l[?25h:  return g:counter . '. '

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

:[?12l[?25hfunc ListReset()
[?25l
:  [?12l[?25h:  let g:counter = 0

[?25l:  [?12l[?25h:  return ''

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

:[?12l[?25hfunc FuncWithRef(a)
[?25l
:  [?12l[?25h:  unlet g:FuncRef

[?25l:  [?12l[?25h:  return a:a

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

:[?12l[?25hlet g:FuncRef=function("FuncWithRef")
[?25l[?12l[?25h[?25l:[?12l[?25hlet counter = 0
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> ( ListItem()
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> [ ListReset()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> + Expr1()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> * Expr2()
[?25l[?12l[?25h[?25l:[?12l[?25hlet retval = "nop"
[?25l[?12l[?25h[?25l/[?12l[?25h^here
[?25l[?12l[?25h[?25lher$=[?12l[?25hTable("xxx", 4, "asdf")
[?25l=[?12l[?25hCompute(45, 0, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hCompute(45, 5, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hg:FuncRef(333)

[?25lError detected while processing function Expr1:

line    1:

E523: Not allowed here

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

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

ing

[?25l:  [?12l[?25h:    " rhs of &&.

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

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

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:    $put ='!!! Unexpected exception:'

[?25l:  [?12l[?25h:    $put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l:    $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[?12l[?25h[?25l
:[?12l[?25h$-9,$w! test.out
[?25l"test.out" [New File] 10 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25hdelfunc Table
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Compute
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr1
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr2
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListItem
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListReset
[?25l[?12l[?25h[?25l:[?12l[?25hunlet retval counter
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest character classes in regexp using regexpengine 0, 1, 2.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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







:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567~                                                                               [?12l[?25h[?25l




~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


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


~                                                                               [?12l[?25h[?25l





:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

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

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







:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

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

:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?12l[?25h[?25l







:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l


:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l

:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?12l[?25h[?25l


~                                                                               [?12l[?25h[?25l


[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 --[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt=ver,jump
[?25l[?12l[?25h[?25l:[?12l[?25hset scrolloff=2
[?25l[?12l[?25h[?25l:[?12l[?25hset nowrap
[?25l[?12l[?25h[?25l:[?12l[?25hset noequalalways
[?25l[?12l[?25h[?25l:[?12l[?25hset splitbelow
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST using two windows open to one buffer, one extra empty window
[?25l[?12l[?25h[?25l:[?12l[?25hsplit
[?25l^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                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 8
[?25l:" ***** 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[?12l[?25h[?25l/[?12l[?25h^start of window 1$/
[?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 7
[?25l[?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?12l[?25h[?25l
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h

[?25l. 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[?12l[?25htest37.in                                                                        [No Name]                                                                       [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    


[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?12l[?25htest37.in                                                                        test37.in                                                                       test37.in                                                                       test37.in                                                                        test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       test37.in                                                                        test37.in                                                                        test37.in                                                                       test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    
test37.in                                                                        [No Name] [+]                                                                   [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" ****** tests using two different buffers *****
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        test37.in                                                                       [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25lstart of window 20000000000[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of window 2$/,/^end of window 2$/y
[?25l18 lines yanked[?12l[?25h[?25l:[?12l[?25hnew
[?25ltest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [?12l[?25htest37.in                                                                       [No Name]                                                                        test37.in                                                                        [No Name]                                                                       [?25l4 more lines[+][?12l[?25h


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


[?25l. 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[?12l[?25h[No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?12l[?25h[?25l0[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?12l[?25h[?25l1[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    

[?25l. 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[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?12l[?25h[?25l2[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?12l[?25h[?25l3[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?12l[?25h[?25l4[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?12l[?25h[?25l5[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25lstart 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
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?12l[?25h[?25l6[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l7[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?12l[?25h[?25l
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                    [No Name] [+]                                                                   [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[No Name] [+]                                                                   [No Name] [+]                                                                    [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

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

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST syncbind
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest 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[?12l[?25h


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 201010202[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25h[?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25h[?25l

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


test37.in                                                                        [No Name] [+]                                                                   [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25lzt::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] [+]                                                                   [?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
:set scrollbind
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    [?25lzt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?12l[?25htest37.in                                                                        [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [?25l
^Wj:
[?12l[?25htest37.in                                                                       [No Name] [+]                                                                    test37.in                                                                        [No Name] [+]                                                                   [No Name] [+]                                                                    [No Name] [+]                                                                   [?25l
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?12l[?25h[?25l

:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" ***** done with tests *****
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out             " Write contents of this file
[?25l"test.out" [New File] 33 lines, 1329 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25l^[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
[?12l[?25h[?25lTest 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[?12l[?25h[?25l
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l
abcdefghijk      lmn    opq rstuvwxyz[?12l[?25h[?25l:[?12l[?25hset ai
[?25l[?12l[?25h[?25l:[?12l[?25hset bs=2
[?25l[?12l[?25h[?25l 1
 A BCDEFGHIJ    KL        MNOPQR[?12l[?25h[?25l:[?12l[?25hka
[?25l[?12l[?25h[?25labcdefghijk      lmn    opq rstuvwxyz[?12l[?25h
[?25l 1[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25lab      cdefghi jkl[?12l[?25h
[?25lAB......CDEFGHI.J[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25labcdefghijklmnopqrst[?12l[?25h
[?25lAB      IJKLMNO QR[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 13 lines, 107 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l/[?12l[?25h^abcde
[?25lbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?12l[?25h[?25l
:[?12l[?25h" Test shift-right of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25habcd[?25l[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?12l[?25h     ef[?25l[?12l[?25h[?25lg[?12l[?25h[?25lhg[?12l[?25h[?25lih[?12l[?25h[?25lji[?12l[?25h[?25l        ghijklm        ghijklm[?12l[?25h[?25l:[?12l[?25h" Test shift-left of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25h[?25l[?12l[?25h[?25li[?12l[?25h[?25l [?12l[?25h[?25l


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


abcd[?25l[?12l[?25h[?25le[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lbccf[?12l[?25h[?25lcddg[?12l[?25h[?25ld  h[?12l[?25h[?25lqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?12l[?25h
axyz[?25l:[?12l[?25h" Test block-change
[?25l[?12l[?25h

[?25l[?12l[?25h[?25lj[?12l[?25h[?25li[?12l[?25h[?25l     ghijkl[?12l[?25h[?25lef  gkl[?12l[?25h[?25lmnomnomno[?12l[?25h[?25l:[?12l[?25h$-4,$w! test.out
[?25l"test.out" [New File] 5 lines, 108 characters written[?12l[?25h[?25l:[?12l[?25h" Test block-insert using cursor keys for movement
[?25l[?12l[?25h[?25l/[?12l[?25h^aaaa/
[?25lsearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?12l[?25h[?25l:[?12l[?25h/^aa/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?12l[?25h[?25l/[?12l[?25hxaaa$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?12l[?25h[?25l:[?12l[?25h/xaaa$/,/^$/w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the last <C-v>$
[?25l[?12l[?25h[?25l/[?12l[?25h^A23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?12l[?25h[?25l/[?12l[?25h^B23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25lab
4567ab[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?12l[?25h[?25l/[?12l[?25h^C23$/
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25lab
456ab7[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 3 lines, 14 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all enc=utf-8
[?25laaa  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[?12l[?25h[?25l


:[?12l[?25h/\t\tline
[?25lsearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25lxxx[?12l[?25h[?25l:[?12l[?25h.,/^$/w >> test.out
[?25l"test.out" 4 lines, 49 characters appended[?12l[?25h[?25l:[?12l[?25h" Test for Visual block append when virtualedit=all
[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25lx   line1x   line2x   line3[?12l[?25h[?25l:[?12l[?25hset ve= enc=latin1
[?25lx     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[?12l[?25h[?25l
the [?25l
:[?12l[?25h" VU must uppercase a whole line
[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" same, when it's the last line in the buffer
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
[?25l
:[?12l[?25h" Uppercase two lines
[?25l[?12l[?25h[?25l
blah didoh dut[?12l[?25h[?25l
doh dut [?12l[?25h[?25lblah di t[?12l[?25h[?25l
BLAH DIDOH DUT[?12l[?25h[?25l
:[?12l[?25h" Uppercase part of two lines
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l
333the yo[?12l[?25h[?25lut[?12l[?25h[?25lUTUSSEUU END
333THE YOUTU[?12l[?25h[?25l

:[?12l[?25h" visual replace using Enter or NL
[?25l[?12l[?25h
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^M65
98^M65
98^M65[?12l[?25h
98
[?25l123456789
123456789
123456789[?12l[?25h
12345[?25l[?12l[?25h[?25l66[?12l[?25h[?25l789[?12l[?25h[?25l789
12345
789
[?12l[?25h[?25l98765
98765
98765[?12l[?25h
98[?25l[?12l[?25h[?25l7
987
98[?12l[?25h[?25l^@65
98^@65
98^@65[?12l[?25h[?25l


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


:[?12l[?25h/^the/,$w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for "*Cmd" autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l"Xxx" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestA 0r Xxx|$del
[?25l[?12l[?25h[?25l:[?12l[?25he XtestA^I^I^I" will read text of Xxd instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?12l[?25h[?25l:[?12l[?25hw^I^I^I^I" will append a line to the file
[?25lwrite[?12l[?25h[?25l:[?12l[?25hr XtestA^I^I^I" should not read anything
[?25lE484: Can't open file XtestA[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" now we have:
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileReadCmd XtestB '[r Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWriteCmd XtestC '[,']copy $
[?25l[?12l[?25h[?25ltest401[?12l[?25h[?25l:[?12l[?25h4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l        test401end of Xxx[?12l[?25h[?25l:[?12l[?25hr XtestC^I^I^I" should not read anything
[?25lE484: Can't open file XtestC[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw >>XtestD^I^I^I" will write all lines to test.out
[?25l"test.out" [New File] 9 lines, 91 characters written[?12l[?25h[?25l:[?12l[?25h$r XtestD^I^I^I" should not read anything
[?25lE484: Can't open file XtestD[?12l[?25h[?25l:[?12l[?25h$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestE 0r test.out|$del
[?25l[?12l[?25h[?25l:[?12l[?25hsp XtestE^I^I^I" split window with test.out
[?25l"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?12l[?25h[?25lasdf[+][?12l[?25hXtestE [+]                                                                       XtestA                                                                          [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestE w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hwall^I^I^I^I" will write other window to test.out
[?25l"test.out" 11 lines, 107 characters written   [?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iasdf
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 10^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 11^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file of over 100 Kbyte[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 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[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"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[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for writing and reading a file starting with a BOM[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l: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^@[?12l[?25h[?25l:[?12l[?25hset fileencodings=ucs-bom,latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Write the test files
[?25l[?12l[?25h[?25l:[?12l[?25h/^latin-1$/+1w! Xtest0
[?25l"Xtest0" [New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8$/+1w! Xtest1
[?25l"Xtest1" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8-err$/+1w! Xtest2
[?25l"Xtest2" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2$/+1w! Xtest3
[?25l"Xtest3" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2le$/+1w! Xtest4
[?25l"Xtest4" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add a NUL byte after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4                      " Ignore change from setting 'ff'
[?25l"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hset ffs& nobinary              " Allow default test42.in format
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix                    " Format for files to write
[?25l[?12l[?25h[?25l:[?12l[?25h/^ucs-4$/+1w! Xtest5
[?25l"Xtest5" [converted][New File] 1 line, 30 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-4le$/+1w! Xtest6
[?25l"Xtest6" [converted][New File] 1 line, 35 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add three NUL bytes after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6                      " ! for when setting 'ff' is a change
[?25l"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h
~   [?25l
^@^@^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest0
[?25l"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir! >test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=latin1

nobomb

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

  bomb

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

nobomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8<80>err
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 17 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest2x
[?25l"Xtest2x" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest3
[?25l"Xtest3" [converted] 1 line, 8 charactersucs-2[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest3x
[?25l"Xtest3x" [converted][New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4
[?25l"Xtest4" [converted] 1 line, 10 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest4x
[?25l"Xtest4x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest5
[?25l"Xtest5" [converted] 1 line, 10 characters4[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest5x
[?25l"Xtest5x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6
[?25l"Xtest6" [converted] 1 line, 12 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4le
~                                                                               [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest6x
[?25l"Xtest6x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check the files written with BOM
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25h$r Xtest0x
[?25l"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?12l[?25h[?25l
:[?12l[?25h$r Xtest1x
[?25l"Xtest1x" 1 line, 9 characters
<feff>utf-8[?12l[?25h[?25l
:[?12l[?25h$r Xtest2x
[?25l"Xtest2x" 1 line, 17 characters
utf-8<80>err[?12l[?25h[?25l
:[?12l[?25h$r Xtest3x
[?25l"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest4x
[?25l"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest5x
[?25l"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest6x
[?25l"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l
:[?12l[?25hset nobin ff&               " Write the file in default format
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 44 lines, 409 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

1 more line; before #2  0 seconds agobar[?12l[?25h[?25l
9 foo
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 11L, 137C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
: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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l:[?12l[?25h" c
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
:[?12l[?25h" d
[?25l[?12l[?25h[?25l/[?12l[?25h[\u4f7f\u5929]\+
[?25l
:[?12l[?25h" e
[?25l[?12l[?25h[?25l/[?12l[?25h\%U12345678
[?25l
:[?12l[?25h" f
[?25l[?12l[?25h[?25l/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
:[?12l[?25h" g
[?25l[?12l[?25h[?25l/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" j Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?12l[?25h[?25l:[?12l[?25h$put =['dog(a', 'cat(']
[?25ldog(acat([+][?12l[?25h[?25l/[?12l[?25h(/e+
[?25l/(/e+1
[?12l[?25h[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hbd!
[?25l1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?12l[?25h[?25la[?12l[?25h[?25l
cat(
[?12l[?25h[?25l
:[?12l[?25hw!
[?25l"test.out" 25L, 271C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("."))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for folding. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We also need the +syntax feature here.
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("syntax")
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   w! test.out

[?25l:  [?12l[?25h   qa!

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

[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?12l[?25h[?25l:[?12l[?25hcall append("$", getline(foldclosed(".")))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with markers.
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=marker fdl=1 fdc=3
[?25l   :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[?12l[?25h[?25l/[?12l[?25h^5
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", "marker " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l{{ |  6 ff }}}[?12l[?25h[?25l-{|
|
|
|[?12l[?25h[?25l


:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l6 ff }}}
 7 gg
 8 hh[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test folding with indent
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=indent sw=2
[?25l-++---  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[?12l[?25h[?25l/[?12l[?25h^2 b
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l
-  2 bb[?12l[?25h[?25l
|-    3 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", "indent " . foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h" test syntax folding
[?25l[?12l[?25h[?25l:[?12l[?25hset fdm=syntax fdl=0
[?25l          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[?12l[?25h[?25l:[?12l[?25hsyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hsyn region Fd1 start="ee" end="ff" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd2 start="gg" end="hh" fold contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?12l[?25h[?25l   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?12l[?25h[?25l:[?12l[?25hcall append("$", "folding " . getline("."))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", getline("."))
[?25l[?12l[?25h[?25l
--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[?12l[?25h[?25l commentend- 
|-

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

[?25l:  [?12l[?25h  if l =~ "bb$"

[?25l:    [?12l[?25h    return 2

[?25l:    [?12l[?25h  elseif l =~ "gg$"

[?25l:    [?12l[?25h    return "s1"

[?25l:    [?12l[?25h  elseif l =~ "ii$"

[?25l:    [?12l[?25h    return ">2"

[?25l:    [?12l[?25h  elseif l =~ "kk$"

[?25l:    [?12l[?25h    return "0"

[?25l:    [?12l[?25h  endif

[?25l:  [?12l[?25h  return "="

[?25l:  [?12l[?25hendfun
[?25l   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?12l[?25h[?25l:[?12l[?25hset fdm=expr fde=Flvl()
[?25l++-- 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---------------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l/[?12l[?25hbb$
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hcall append("$", "expr " . foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hhh$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hii$
[?25l-9 ii||a jjb kklastmanual 1 aa-13 cc[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l/[?12l[?25hkk$
[?25l[?12l[?25h[?25l:[?12l[?25hcall append("$", foldlevel("."))
[?25l[?12l[?25h[?25l:[?12l[?25h/^last/+1,$w! test.out
[?25l"test.out" [New File] 18 lines, 96 characters written[?12l[?25h[?25l:[?12l[?25hdelfun Flvl
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l   
   
   
   ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?12l[?25h[?25lTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?12l[?25h[?25l:[?12l[?25hset fdm=indent
[?25l++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?12l[?25h[?25l:[?12l[?25h1m1
[?25l[?12l[?25h[?25l:[?12l[?25hm0
[?25l3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?12l[?25h[?25l:[?12l[?25h%w >> test.out
[?25l"test.out" 5 lines, 77 characters appendedtest.out [+]]  [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of 'virtualedit'.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswf
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


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

"r"     
a^Vb^Msdabcv6efi.him0kl[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   When past the end of a line that ends in a single character "b" skips
[?25l[?12l[?25h[?25l:[?12l[?25h"    that word.
[?25l[?12l[?25h
[?25l$7[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'i' works
[?25l[?12l[?25h
'i'   [?25l<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'C' works
[?25l[?12l[?25h
'C'   [?25l$<-- should be 3 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'a' works
[?25l[?12l[?25h
'a'   [?25l <-- should be 4 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'A' works
[?25l[?12l[?25h
'A'   [?25l<-- should be 0 ' '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Make sure 'D' works
[?25l[?12l[?25h
'D'   [?25l<-- 'D' should be intact[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for yank bug reported by Mark Waggoner.
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=block
[?25l[?12l[?25h
[?25l[?12l[?25h[?25laaa[?12l[?25h[?25laaablock of 4 lines yanked[?12l[?25h[?25l3 more linesa
aa [?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" beyond the end of the line
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l/[?12l[?25h^"r"
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h"r"    [?25lx[?12l[?25h[?25lx<-- should be 'x'[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test "r" on a tab
[?25l[?12l[?25h[?25l:[?12l[?25h" Note that for this test, 'ts' must be 8 (the default).
[?25l[?12l[?25h
"r"  [?25lx[?12l[?25h[?25lx  <-- should be '  x  '[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test to make sure 'x' can delete control characters
[?25l[?12l[?25h[?25l:[?12l[?25hset display=uhex
[?25l<16>b<0d>sd[?12l[?25h
[?25l<16>b<0d>sd[?12l[?25h[?25lb<0d>sd[?12l[?25h[?25l<0d>sd[?12l[?25h[?25lsd[?12l[?25h[?25ld[?12l[?25h[?25l[?12l[?25h[?25l[This line should contain only the text between the brackets.][?12l[?25h[?25l:[?12l[?25hset display=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?12l[?25h[?25l:[?12l[?25h"   Roy <royl@netropolis.net>.
[?25l[?12l[?25h
[?25l[?12l[?25h   [?25lv[?12l[?25hv   [?25li[?12l[?25hi   [?25lm   <-- should show the name of a noted text editor[?12l[?25h
[?25l[?12l[?25h    [?25l6[?12l[?25h6   [?25l.[?12l[?25h.   [?25l0   <-- and its version number[?12l[?25h[?25l
[?12l[?25h
    [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for yanking and pasting using the small delete register
[?25l[?12l[?25h[?25l/[?12l[?25h^foo
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l, bar[?12l[?25h, [?25l[?12l[?25h[?25lba[?12l[?25h[?25l[?12l[?25h[?25lfoo[?12l[?25h
keyw[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 23 lines, 479 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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=#000ff00 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

EndOfBuffer    xxx links to NonText

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

Directory      xxx term=bold ctermfg=4 guifg=Blue

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 guibg=Yellow

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

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline ctermfg=3 guifg=Brown

CursorLineNr   xxx term=bold ctermfg=3 gui=bold guifg=Brown

Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen

StatusLine     xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse

StatusLineNC   xxx term=reverse cterm=reverse gui=reverse

VertSplit      xxx term=reverse cterm=reverse gui=reverse

Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=LightGrey

VisualNOS      xxx cleared

WarningMsg     xxx term=standout ctermfg=1 guifg=Red

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

Foldedxxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue

guibg=LightGrey

FoldColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=LightBlue

DiffChange     xxx term=bold ctermbg=5 guibg=LightMagenta

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

guibg=LightCyan

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

SignColumn     xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue 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=DarkCyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=LightMagenta

PmenuSelxxx ctermfg=0 ctermbg=7 guibg=Grey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=0 guibg=Black

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

gui=underline guibg=LightGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=7 guibg=Grey90

CursorLine     xxx term=underline cterm=underline guibg=Grey90

ColorColumn    xxx term=reverse ctermbg=1 guibg=LightRed

MatchParen     xxx term=reverse ctermbg=6 guibg=Cyan

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Search
[?25l
Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow

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

0ff00 guibg=Cyan
[?25lE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 term= cterm=
[?25lE418: Illegal value: cterm=

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

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group3
[?25l
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear NewGroup
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?12l[?25h[?25l
:[?12l[?25hhi NewGroup
[?25l
NewGroupxxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Group2 NONE
[?25l:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?12l[?25h[?25l
:[?12l[?25hhi Group2
[?25l
Group2xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi clear
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hhi Group3
[?25l
Group3xxx cleared

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hhi Crash term='asdf
[?25lE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l:hi NewGroup
:hi Group2
:hi Group3[?12l[?25h[?25l
:[?12l[?25h" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h%s/ctermfg=\d*/ctermfg=2/
[?25l2
[?12l[?25h[?25l:[?12l[?25h%s/ctermbg=\d*/ctermbg=3/
[?25l3
[?12l[?25h[?25l:[?12l[?25h" filter out possibly translated error message
[?25l[?12l[?25h[?25l:[?12l[?25h%s/E475: [^:]*:/E475:/
[?25lterm='asdf[?12l[?25h[?25l:[?12l[?25h" fix the fileformat
[?25l[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hwq!
[?25l"test.out" 20 lines, 271 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for string and html text objects. vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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>-[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l[?12l[?25h[?25lfo[?12l[?25h
[?25l[?12l[?25h[?25l'foo'[?12l[?25h[?25l 'bar'[?12l[?25h[?25l
xxxxxxxxxxxx
[?12l[?25h
[?25lblah[?12l[?25h
[?25l"[?12l[?25h
[?25l[?12l[?25h[?25l' rep[?12l[?25h[?25lyyyyy[?12l[?25h[?25l:[?12l[?25hset quoteescape=+*-
[?25l[?12l[?25h[?25l` b`la[?12l[?25h[?25l[?12l[?25h[?25l" sdf"[?12l[?25h[?25l" [?12l[?25h[?25l"[?12l[?25h[?25l asdf" sdf [?12l[?25h[?25lah" sdf "
voo "[?12l[?25h[?25lzzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?12l[?25h
[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^<begin
[?25l[?12l[?25h
[?25l</i>asdf</b>-[?12l[?25h[?25l
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?12l[?25h
[?25l</b>-[?12l[?25h[?25l
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?12l[?25h[?25lasdf</b>-[?12l[?25h[?25l
-<b>asdX<i>as<b />df</i>asdf</b>-[?12l[?25h
[?25l
--[?12l[?25h[?25l
-<b>
-[?12l[?25h[?25l<b></b>[?12l[?25h[?25l
</begin>[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l
b[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l
bc[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l
c[?12l[?25h[?25l
:[?12l[?25hput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l
a[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match(\"abcd\", \".\", 0, -1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 0, 4) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '.', 3, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 0, 2) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 1, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 2, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '$', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 1) " 0
[?25l
0[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 2) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 3) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 4) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 0, 5) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 1, 1) " 1
[?25l
1[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 2, 1) " 2
[?25l
2[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 3, 1) " 3
[?25l
3[?12l[?25h[?25l
:[?12l[?25hput =match('abc', '\zs', 4, 1) " -1
[?25l
-1[?12l[?25h[?25l
:[?12l[?25h/^start:/,/^end:/wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test(...)
[?25l
:  [?12l[?25h:lang C

[?25l:  [?12l[?25h:" Creating List directly with different types

[?25l:  [?12l[?25h:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:$put =string(l[-4])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-5])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List slices

[?25l:  [?12l[?25h:$put =string(l[:])

[?25l:  [?12l[?25h:$put =string(l[1:])

[?25l:  [?12l[?25h:$put =string(l[:-2])

[?25l:  [?12l[?25h:$put =string(l[0:8])

[?25l:  [?12l[?25h:$put =string(l[8:-1])

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" List identity

[?25l:  [?12l[?25h:let ll = l

[?25l:  [?12l[?25h:let lx = copy(l)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Creating Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l:  [?12l[?25h:$put =string(d) . d.1

[?25l:  [?12l[?25h:$put =string(sort(keys(d)))

[?25l:  [?12l[?25h:$put =string (values(d))

[?25l:  [?12l[?25h:for [key, val] in items(d)

[?25l:    [?12l[?25h:  $put =key . ':' . string(val)

[?25l:    [?12l[?25h:  unlet key val

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:call extend  (d, {3:33, 1:99})

[?25l:  [?12l[?25h:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  call extend(d, {3:333,4:444}, "error")

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:call filter(d, 'v:key =~ ''[ac391]''')

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary identity

[?25l:  [?12l[?25h:let dd = d

[?25l:  [?12l[?25h:let dx = copy(d)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items with :unlet

[?25l:  [?12l[?25h:unlet l[2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:let l = range(8)

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:unlet l[:3]

[?25l:    [?12l[?25h:unlet l[1:]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:$put =v:exception

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:unlet d.c

[?25l:  [?12l[?25h:unlet d[-1]

[?25l:  [?12l[?25h:$put =string(d)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:1]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:3]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:4]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[2:5]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-1:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-2:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-3:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-4:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-5:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25hlet l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:unlet l[-6:2]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" assignment to a list

[?25l:  [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:  [?12l[?25h:let [va, vb] = l[2:3]

[?25l:  [?12l[?25h:$put =va

[?25l:  [?12l[?25h:$put =vb

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let [va, vb] = l[1:1]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:14]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: let d[i] = 3000 - i

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  let n = d[1500]

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" lookup each items

[?25l:  [?12l[?25h:for i in range(1500)

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h: let i += 1

[?25l:  [?12l[?25h:" delete even items

[?25l:  [?12l[?25h:while i >= 2

[?25l:    [?12l[?25h: let i -= 2

[?25l:    [?12l[?25h: unlet d[i]

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l:  [?12l[?25h:" delete odd items, checking value, one intentionally wrong

[?25l:  [?12l[?25h:let d[33] = 999

[?25l:  [?12l[?25h:let i = 1

[?25l:  [?12l[?25h:while i < 1500

[?25l:    [?12l[?25h: if d[i] != 3000 - i

[?25l:      [?12l[?25h:  $put =i . '=' . d[i]

[?25l:      [?12l[?25h: else

[?25l:      [?12l[?25h:  unlet d[i]

[?25l:      [?12l[?25h: endif

[?25l:    [?12l[?25h: let i += 2

[?25l:    [?12l[?25h:endwhile

[?25l:  [?12l[?25h:$put =string(d)  " must be almost empty now

[?25l:  [?12l[?25h:unlet d

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Dictionary function

[?25l:  [?12l[?25h:let dict = {}

[?25l:  [?12l[?25h:func dict.func(a) dict

[?25l:    [?12l[?25h:  $put =a:a . len(self.data)

[?25l:    [?12l[?25h:endfunc

[?25l:    [?12l[?25h:let dict.data = [1,2,3]

[?25l:    [?12l[?25h:call dict.func("len: ")

[?25l:    [?12l[?25h:let x = dict.func("again: ")

[?25l:    [?12l[?25h:let Fn = dict.func

[?25l:    [?12l[?25h:call Fn('xxx')

[?25l:    [?12l[?25h:" 

[?25l:    [?12l[?25h:" Function in script-local List or Dict

[?25l:    [?12l[?25h:let g:dict = {}

[?25l:    [?12l[?25h:function g:dict.func() dict

[?25l:      [?12l[?25h:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l:      [?12l[?25h:endfunc

[?25l:      [?12l[?25h:let g:dict.foo = ['-', 2, 3]

[?25l:      [?12l[?25h:call insert(g:dict.foo, function('strlen'))

[?25l:      [?12l[?25h:call g:dict.func()

[?25l:      [?12l[?25h:" 

[?25l:      [?12l[?25h:" Nasty: remove func from Dict that's being called (works)

[?25l:      [?12l[?25h:let d = {1:1}

[?25l:      [?12l[?25h:func d.func(a)

[?25l:[?12l[?25h:  return "a:". a:a

[?25l:[?12l[?25h:endfunc

[?25l:[?12l[?25h:$put =d.func(string(remove(d, 'func')))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l:[?12l[?25h:let d = {1:1, 2:2}

[?25l:[?12l[?25h:let l = [4, d, 6]

[?25l:[?12l[?25h:let d[3] = l

[?25l:[?12l[?25h:let dc = deepcopy(d)

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let dc = deepcopy(d, 1)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:let l2 = [0, l, l, 3]

[?25l:[?12l[?25h:let l[1] = l2

[?25l:[?12l[?25h:let l3 = deepcopy(l2)

[?25l:[?12l[?25h:$put ='same list: ' . (l3[1] is l3[2])

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1][0] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1][1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[1] = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2]['6'][7] = 99

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2][6] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l[2] = {99: 99}

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      let l = [99]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Unletting locked variables

[?25l:[?12l[?25h:$put ='Unletting:'

[?25l:[?12l[?25h:for depth in range(5)

[?25l:[?12l[?25h:  $put ='depth is ' . depth

[?25l:[?12l[?25h:  for u in range(3)

[?25l:[?12l[?25h:    unlet l

[?25l:[?12l[?25h:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l:[?12l[?25h:    exe "lockvar " . depth . " l"

[?25l:[?12l[?25h:    if u == 1

[?25l:[?12l[?25h:      exe "unlockvar l"

[?25l:[?12l[?25h:    elseif u == 2

[?25l:[?12l[?25h:      exe "unlockvar " . depth . " l"

[?25l:[?12l[?25h:    endif

[?25l:[?12l[?25h:    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:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:    let ps = ''

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]['6'][7]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2][6]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[2]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1][0]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1][1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l[1]

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    try

[?25l:[?12l[?25h:      unlet l

[?25l:[?12l[?25h:      let ps .= 'p'

[?25l:[?12l[?25h:    catch

[?25l:[?12l[?25h:      let ps .= 'F'

[?25l:[?12l[?25h:    endtry

[?25l:[?12l[?25h:    $put =ps

[?25l:[?12l[?25h:  endfor

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Locked variables and :unlet or list / dict functions

[?25l:[?12l[?25h:$put ='Locks and commands or functions:'

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put =':unlet after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet d.a

[?25l:[?12l[?25h:  $put ='did :unlet'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='filter() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call filter(d, 'v:key != "a"')

[?25l:[?12l[?25h:  $put ='did filter()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='map() after lock on dict:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar 1 d

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call map(d, 'v:val + 200')

[?25l:[?12l[?25h:  $put ='did map()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() after lock on dict item:'

[?25l:[?12l[?25h:unlet! d

[?25l:[?12l[?25h:let d = {'a': 99, 'b': 100}

[?25l:[?12l[?25h:lockvar d.a

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  $put =string(extend(d, {'a': 123}))

[?25l:[?12l[?25h:  $put ='did extend()'

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No remove() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l:[?12l[?25h:    $put ='did remove()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No extend() of write-protected scope-level variable:'

[?25l:[?12l[?25h:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l:[?12l[?25h:  try

[?25l:[?12l[?25h:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l:[?12l[?25h:    $put ='did extend()'

[?25l:[?12l[?25h:  catch

[?25l:[?12l[?25h:    $put =v:exception[:14]

[?25l:[?12l[?25h:  endtry

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:call Tfunc('testval')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :unlet of variable in locked scope:'

[?25l:[?12l[?25h:let b:testvar = 123

[?25l:[?12l[?25h:lockvar 1 b:

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  unlet b:testvar

[?25l:[?12l[?25h:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:16]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:unlockvar 1 b:

[?25l:[?12l[?25h:unlet! b:testvar

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:$put ='No :let += of locked list variable:'

[?25l:[?12l[?25h:let l = ['a', 'b', 3]

[?25l:[?12l[?25h:lockvar 1 l

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let l += ['x']

[?25l:[?12l[?25h:  $put ='did :let +='

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:14]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:lockvar! l

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:unlet l[0:1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l[1:2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlockvar l[1]

[?25l:[?12l[?25h:let l[0:1] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let l[1:2] = [0, 1]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:unlet l

[?25l:[?12l[?25h:" :lockvar/islocked() triggering script autoloading

[?25l:[?12l[?25h:set rtp+=./sautest

[?25l:[?12l[?25h:lockvar g:footest#x

[?25l:[?12l[?25h:unlockvar g:footest#x

[?25l:[?12l[?25h:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l:[?12l[?25h:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l:[?12l[?25h:$put ='g:footest#x: '.g:footest#x

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" a:000 function argument

[?25l:[?12l[?25h:" first the tests that should fail

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000 = [1, 2]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[0] = 9

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[0]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2] = [9, 10]

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[2]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[3] = {9: 10}

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught a:000[3]'

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:" now the tests that should pass

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  let a:000[2][1] = 9

[?25l:[?12l[?25h:  call extend(a:000[2], [5, 6])

[?25l:[?12l[?25h:  let a:000[3][5] = 8

[?25l:[?12l[?25h:  let a:000[3]['a'] = 12

[?25l:[?12l[?25h:  $put =string(a:000)

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put ='caught ' . v:exception

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" reverse(), sort(), uniq()

[?25l:[?12l[?25h:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l:[?12l[?25h:$put =string(uniq(copy(l)))

[?25l:[?12l[?25h:$put =string(reverse(l))

[?25l:[?12l[?25h:$put =string(reverse(reverse(l)))

[?25l:[?12l[?25h:$put =string(sort(l))

[?25l:[?12l[?25h:$put =string(reverse(sort(l)))

[?25l:[?12l[?25h:$put =string(sort(reverse(sort(l))))

[?25l:[?12l[?25h:$put =string(uniq(sort(l)))

[?25l:[?12l[?25h:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'n'))

[?25l:[?12l[?25h:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l:[?12l[?25h:$put =string(sort(copy(l), 1))

[?25l:[?12l[?25h:$put =string(sort(copy(l), 'i'))

[?25l:[?12l[?25h:$put =string(sort(copy(l)))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" splitting a string to a List

[?25l:[?12l[?25h:$put =string(split('  aa  bb '))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l:[?12l[?25h:$put =string(split('  aa  bb  ', '\W', 1))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 0))

[?25l:[?12l[?25h:$put =string(split(':aa::bb:', ':', 1))

[?25l:[?12l[?25h:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs'))

[?25l:[?12l[?25h:$put =string(split('abc', '\zs', 1))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare recursively linked list and dict

[?25l:[?12l[?25h:let l = [1, 2, 3, 4]

[?25l:[?12l[?25h:let d = {'1': 1, '2': l, '3': 3}

[?25l:[?12l[?25h:let l[1] = d

[?25l:[?12l[?25h:$put =(l == l)

[?25l:[?12l[?25h:$put =(d == d)

[?25l:[?12l[?25h:$put =(l != deepcopy(l))

[?25l:[?12l[?25h:$put =(d != deepcopy(d))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" compare complex recursively linked list and dict

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:call add(l, l)

[?25l:[?12l[?25h:let dict4 = {"l": l}

[?25l:[?12l[?25h:call add(dict4.l, dict4)

[?25l:[?12l[?25h:let lcopy = deepcopy(l)

[?25l:[?12l[?25h:let dict4copy = deepcopy(dict4)

[?25l:[?12l[?25h:$put =(l == lcopy)

[?25l:[?12l[?25h:$put =(dict4 == dict4copy)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same List to extend()

[?25l:[?12l[?25h:let l = [1, 2, 3, 4, 5]

[?25l:[?12l[?25h:call extend(l, l)

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend()

[?25l:[?12l[?25h:let d = { 'a': {'b': 'B'}}

[?25l:[?12l[?25h:call extend(d, d)

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Pass the same Dict to extend() with "error"

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  call extend(d, d, "error")

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:$put =string(d)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" test for range assign

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:let l[:] = [1, 2]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:endfun
[?25l:$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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 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]
~                                                                               [?12l[?25h[?25l

:[?12l[?25hdelfunc Test
[?25l[?12l[?25h[?25l:[?12l[?25hunlet dict
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for patch 7.3.637
[?25l[?12l[?25h[?25l:[?12l[?25hlet a = 'No error caught'
[?25l[?12l[?25h[?25l:[?12l[?25htry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?12l[?25h[?25l=[?12l[?25ha
[?25lVim(foldopen):E490:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hredir => a
[?25l[?12l[?25h[?25l:[?12l[?25htry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 122, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?12l[?25h[?25l
=[?12l[?25ha
[?25lError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'))|endtry
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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>delfunnc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for script-local function.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,/^end:/-1w! Xtest.vim
[?25l"Xtest.vim" [New] 7L, 251C written[?12l[?25h[?25l:[?12l[?25hsource Xtest.vim
[?25l[?12l[?25h[?25l:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?12l[?25h[?25lTest for script-local function.     vim: set ft=vim :nothing line[?12l[?25h[?25l:[?12l[?25h$-1,$wq! test.out
[?25l"test.out" [New] 2L, 23C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :sort command.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^t01:/+1,/^t02/-1sort
[?25l 123b2
a123
a
ababc[?12l[?25h[?25l:[?12l[?25h/^t02:/+1,/^t03/-1sort n
[?25lb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?12l[?25h[?25l
:[?12l[?25h/^t03:/+1,/^t04/-1sort x
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?12l[?25h[?25l:[?12l[?25h/^t04:/+1,/^t05/-1sort u
[?25lb321b
b322b
c123d
c321d
t04: alpha, unique[?12l[?25h[?25l
:[?12l[?25h/^t05:/+1,/^t06/-1sort!
[?25la123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?12l[?25h[?25l:[?12l[?25h/^t06:/+1,/^t07/-1sort! n        
[?25la
 123b


t06: numeric, reverse
b322b[?12l[?25h[?25l
:[?12l[?25h/^t07:/+1,/^t08/-1sort! u
[?25l123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?12l[?25h[?25l:[?12l[?25h/^t08:/+1,/^t09/-1sort o         
[?25l123b

t08: octal
abc[?12l[?25h[?25l
:[?12l[?25h/^t09:/+1,/^t10/-1sort! x        
[?25la123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?12l[?25h[?25l:[?12l[?25h/^t10:/+1,/^t11/-1sort/./        
[?25lab
a


t10: alpha, skip first character
a[?12l[?25h[?25l
:[?12l[?25h/^t11:/+1,/^t12/-1sort/../       
[?25l123b
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[?12l[?25h[?25l:[?12l[?25h/^t12:/+1,/^t13/-1sort/../u
[?25lb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?12l[?25h[?25l
:[?12l[?25h/^t13:/+1,/^t14/-1sort/./n
[?25lb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?12l[?25h[?25l:[?12l[?25h/^t14:/+1,/^t15/-1sort/./r
[?25lc321d
b321
b321b
b322b
t14: alpha, sort on first character[?12l[?25h[?25l
:[?12l[?25h/^t15:/+1,/^t16/-1sort/../r
[?25la321
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[?12l[?25h[?25l:[?12l[?25h/^t16:/+1,/^t17/-1sort/./rn
[?25lb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?12l[?25h[?25l
:[?12l[?25h/^t17:/+1,/^t18/-1sort/\d/
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?12l[?25h[?25l:[?12l[?25h/^t18:/+1,/^t19/-1sort/\d/r
[?25la123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t19:/+1,/^t20/-1sort/\d/n
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t20:/+1,/^t21/-1sort/\d/rn
[?25la123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?12l[?25h[?25l
:[?12l[?25h/^t21:/+1,/^t22/-1sort/\d\d/
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t22:/+1,/^t23/-1sort/\d\d/n
[?25la123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t23:/+1,/^t24/-1sort/\d\d/x
[?25lb321
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[?12l[?25h[?25l:[?12l[?25h/^t24:/+1,/^t25/-1sort/\d\d/r
[?25lc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25la122
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[?12l[?25h[?25l:[?12l[?25h/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25lc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?12l[?25h[?25l
:[?12l[?25h/^t27:/+1,/^t28/-1sort no
[?25lE474: Invalid argument[?12l[?25h[?25l:[?12l[?25h/^t28:/+1,/^t29/-1sort b
[?25lb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?12l[?25h[?25l:[?12l[?25h/^t29:/+1,/^t30/-1sort b
[?25l0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?12l[?25h[?25l
:[?12l[?25h/^t30:/+1,/^t31/-1sort f
[?25la0b001000
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[?12l[?25h[?25l:[?12l[?25h/^t01:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! RunTest(str, result)
[?25l
:  [?12l[?25h    if exists(a:str) == a:result

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED: Checking for " . a:str

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfunction
[?25lendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?12l[?25h[?25l
:[?12l[?25hfunction! TestExists()
[?25l
:  [?12l[?25h    augroup myagroup

[?25l:  [?12l[?25h^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l:  [?12l[?25h^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l:  [?12l[?25h    augroup END

[?25l:  [?12l[?25h    set rtp+=./sautest

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    let test_cases = []

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " valid autocmd group

[?25l:  [?12l[?25h    let test_cases += [['#myagroup', 1]]

[?25l:  [?12l[?25h    " valid autocmd group with garbage

[?25l:  [?12l[?25h    let test_cases += [['#myagroup+b', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter', 1]]

[?25l:  [?12l[?25h    " Valid autocmd event and pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#*.my', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd group or event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup', 0]]

[?25l:  [?12l[?25h    " Non-existing autocmd group and valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event with no matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l:  [?12l[?25h    " Valid autocmd group and event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event and non-matching pattern

[?25l:  [?12l[?25h    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group, event and pattern

[?25l:  [?12l[?25h    let test_cases += [['###', 0]]

[?25l:  [?12l[?25h    " Empty autocmd group and event or empty event and pattern

[?25l:  [?12l[?25h    let test_cases += [['##', 0]]

[?25l:  [?12l[?25h    " Valid autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##FileReadCmd', 1]]

[?25l:  [?12l[?25h    " Non-existing autocmd event

[?25l:  [?12l[?25h    let test_cases += [['##MySpecialCmd', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&textwidth', 1]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&tw', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['&tw-', 0]]

[?25l:  [?12l[?25h    " Global option

[?25l:  [?12l[?25h    let test_cases += [['&g:errorformat', 1]]

[?25l:  [?12l[?25h    " Local option

[?25l:  [?12l[?25h    let test_cases += [['&l:errorformat', 1]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['&nojoinspaces', 0]]

[?25l:  [?12l[?25h    " Negative form of existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['&nojs', 0]]

[?25l:  [?12l[?25h    " Non-existing option

[?25l:  [?12l[?25h    let test_cases += [['&myxyzoption', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing and working option (long form)

[?25l:  [?12l[?25h    let test_cases += [['+incsearch', 1]]

[?25l:  [?12l[?25h    " Existing and working option with garbage

[?25l:  [?12l[?25h    let test_cases += [['+incsearch!1', 0]]

[?25l:  [?12l[?25h    " Existing and working option (short form)

[?25l:  [?12l[?25h    let test_cases += [['+is', 1]]

[?25l:  [?12l[?25h    " Existing option that is hidden.

[?25l:  [?12l[?25h    let test_cases += [['+autoprint', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing environment variable

[?25l:  [?12l[?25h    let $EDITOR_NAME = 'Vim Editor'

[?25l:  [?12l[?25h    let test_cases += [['$EDITOR_NAME', 1]]

[?25l:  [?12l[?25h    " Non-existing environment variable

[?25l:  [?12l[?25h    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal function

[?25l:  [?12l[?25h    let test_cases += [['*bufnr', 1]]

[?25l:  [?12l[?25h    " Valid internal function with ()

[?25l:  [?12l[?25h    let test_cases += [['*bufnr()', 1]]

[?25l:  [?12l[?25h    " Non-existing internal function

[?25l:  [?12l[?25h    let test_cases += [['*myxyzfunc', 0]]

[?25l:  [?12l[?25h    " Valid internal function with garbage

[?25l:  [?12l[?25h    let test_cases += [['*bufnr&6', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid user defined function

[?25l:  [?12l[?25h    let test_cases += [['*TestExists', 1]]

[?25l:  [?12l[?25h    " Non-existing user defined function

[?25l:  [?12l[?25h    let test_cases += [['*MyxyzFunc', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function that may be created by FuncUndefined event

[?25l:  [?12l[?25h    let test_cases += [['*UndefFun', 0]]

[?25l:  [?12l[?25h    " Function that may be created by script autoloading

[?25l:  [?12l[?25h    let test_cases += [['*footest#F', 0]]

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    redir! > test.out

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    for [test_case, result] in test_cases

[?25l:    [?12l[?25h        echo test_case . ": " . result

[?25l:    [?12l[?25h        call RunTest(test_case, result)

[?25l:    [?12l[?25h    endfor

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match)

[?25l:  [?12l[?25h    echo ':edit: 2'

[?25l:  [?12l[?25h    if exists(':edit') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (full match) with garbage

[?25l:  [?12l[?25h    echo ':edit/a: 0'

[?25l:  [?12l[?25h    if exists(':edit/a') == 0

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid internal command (partial match)

[?25l:  [?12l[?25h    echo ':q: 1'

[?25l:  [?12l[?25h    if exists(':q') == 1

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing internal command

[?25l:  [?12l[?25h    echo ':invalidcmd: 0'

[?25l:  [?12l[?25h    if !exists(':invalidcmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (full match)

[?25l:  [?12l[?25h    command! MyCmd :echo 'My command'

[?25l:  [?12l[?25h    echo ':MyCmd: 2'

[?25l:  [?12l[?25h    if exists(':MyCmd') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " User defined command (partial match)

[?25l:  [?12l[?25h    command! MyOtherCmd :echo 'Another command'

[?25l:  [?12l[?25h    echo ':My: 3'

[?25l:  [?12l[?25h    if exists(':My') == 3

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Command modifier

[?25l:  [?12l[?25h    echo ':rightbelow: 2'

[?25l:  [?12l[?25h    if exists(':rightbelow') == 2

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (full match)

[?25l:  [?12l[?25h    delcommand MyCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':MyCmd: 0'

[?25l:  [?12l[?25h    if !exists(':MyCmd')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing user defined command (partial match)

[?25l:  [?12l[?25h    delcommand MyOtherCmd

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    echo ':My: 0'

[?25l:  [?12l[?25h    if !exists(':My')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var: 1'

[?25l:  [?12l[?25h    if exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local variable with garbage

[?25l:  [?12l[?25h    let local_var = 1

[?25l:  [?12l[?25h    echo 'local_var%n: 0'

[?25l:  [?12l[?25h    if !exists('local_var%n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local variable

[?25l:  [?12l[?25h    unlet local_var

[?25l:  [?12l[?25h    echo 'local_var: 0'

[?25l:  [?12l[?25h    if !exists('local_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing autoload variable that may be autoloaded

[?25l:  [?12l[?25h    echo 'footest#x: 0'

[?25l:  [?12l[?25h    if !exists('footest#x')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list

[?25l:  [?12l[?25h    let local_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'local_list: 1'

[?25l:  [?12l[?25h    if exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item

[?25l:  [?12l[?25h    echo 'local_list[1]: 1'

[?25l:  [?12l[?25h    if exists('local_list[1]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local list item with garbage

[?25l:  [?12l[?25h    echo 'local_list[1]+5: 0'

[?25l:  [?12l[?25h    if !exists('local_list[1]+5')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Invalid local list item

[?25l:  [?12l[?25h    echo 'local_list[2]: 0'

[?25l:  [?12l[?25h    if !exists('local_list[2]')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local list

[?25l:  [?12l[?25h    unlet local_list

[?25l:  [?12l[?25h    echo 'local_list: 0'

[?25l:  [?12l[?25h    if !exists('local_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Valid local dictionary

[?25l:  [?12l[?25h    let local_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'local_dict: 1'

[?25l:  [?12l[?25h    if exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local dictionary

[?25l:  [?12l[?25h    unlet local_dict

[?25l:  [?12l[?25h    echo 'local_dict: 0'

[?25l:  [?12l[?25h    if !exists('local_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing local curly-brace variable

[?25l:  [?12l[?25h    let str = "local"

[?25l:  [?12l[?25h    let curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing local curly-brace variable

[?25l:  [?12l[?25h    unlet curly_{str}_var

[?25l:  [?12l[?25h    echo 'curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable

[?25l:  [?12l[?25h    let g:global_var = 1

[?25l:  [?12l[?25h    echo 'g:global_var: 1'

[?25l:  [?12l[?25h    if exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global variable with garbage

[?25l:  [?12l[?25h    echo 'g:global_var-n: 1'

[?25l:  [?12l[?25h    if !exists('g:global_var-n')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global variable

[?25l:  [?12l[?25h    unlet g:global_var

[?25l:  [?12l[?25h    echo 'g:global_var: 0'

[?25l:  [?12l[?25h    if !exists('g:global_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global list

[?25l:  [?12l[?25h    let g:global_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'g:global_list: 1'

[?25l:  [?12l[?25h    if exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global list

[?25l:  [?12l[?25h    unlet g:global_list

[?25l:  [?12l[?25h    echo 'g:global_list: 0'

[?25l:  [?12l[?25h    if !exists('g:global_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global dictionary

[?25l:  [?12l[?25h    let g:global_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'g:global_dict: 1'

[?25l:  [?12l[?25h    if exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global dictionary

[?25l:  [?12l[?25h    unlet g:global_dict

[?25l:  [?12l[?25h    echo 'g:global_dict: 0'

[?25l:  [?12l[?25h    if !exists('g:global_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing global curly-brace variable

[?25l:  [?12l[?25h    let str = "global"

[?25l:  [?12l[?25h    let g:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing global curly-brace variable

[?25l:  [?12l[?25h    unlet g:curly_{str}_var

[?25l:  [?12l[?25h    echo 'g:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('g:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window variable

[?25l:  [?12l[?25h    echo 'w:window_var: 1'

[?25l:  [?12l[?25h    let w:window_var = 1

[?25l:  [?12l[?25h    if exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window variable

[?25l:  [?12l[?25h    unlet w:window_var

[?25l:  [?12l[?25h    echo 'w:window_var: 0'

[?25l:  [?12l[?25h    if !exists('w:window_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window list

[?25l:  [?12l[?25h    let w:window_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'w:window_list: 1'

[?25l:  [?12l[?25h    if exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window list

[?25l:  [?12l[?25h    unlet w:window_list

[?25l:  [?12l[?25h    echo 'w:window_list: 0'

[?25l:  [?12l[?25h    if !exists('w:window_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window dictionary

[?25l:  [?12l[?25h    let w:window_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'w:window_dict: 1'

[?25l:  [?12l[?25h    if exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window dictionary

[?25l:  [?12l[?25h    unlet w:window_dict

[?25l:  [?12l[?25h    echo 'w:window_dict: 0'

[?25l:  [?12l[?25h    if !exists('w:window_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing window curly-brace variable

[?25l:  [?12l[?25h    let str = "window"

[?25l:  [?12l[?25h    let w:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing window curly-brace variable

[?25l:  [?12l[?25h    unlet w:curly_{str}_var

[?25l:  [?12l[?25h    echo 'w:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('w:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer variable

[?25l:  [?12l[?25h    echo 'b:buffer_var: 1'

[?25l:  [?12l[?25h    let b:buffer_var = 1

[?25l:  [?12l[?25h    if exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer variable

[?25l:  [?12l[?25h    unlet b:buffer_var

[?25l:  [?12l[?25h    echo 'b:buffer_var: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer list

[?25l:  [?12l[?25h    let b:buffer_list = ["blue", "orange"]

[?25l:  [?12l[?25h    echo 'b:buffer_list: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer list

[?25l:  [?12l[?25h    unlet b:buffer_list

[?25l:  [?12l[?25h    echo 'b:buffer_list: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_list')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer dictionary

[?25l:  [?12l[?25h    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 1'

[?25l:  [?12l[?25h    if exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer dictionary

[?25l:  [?12l[?25h    unlet b:buffer_dict

[?25l:  [?12l[?25h    echo 'b:buffer_dict: 0'

[?25l:  [?12l[?25h    if !exists('b:buffer_dict')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing buffer curly-brace variable

[?25l:  [?12l[?25h    let str = "buffer"

[?25l:  [?12l[?25h    let b:curly_{str}_var = 1

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 1'

[?25l:  [?12l[?25h    if exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing buffer curly-brace variable

[?25l:  [?12l[?25h    unlet b:curly_{str}_var

[?25l:  [?12l[?25h    echo 'b:curly_' . str . '_var: 0'

[?25l:  [?12l[?25h    if !exists('b:curly_{str}_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Script-local tests

[?25l:  [?12l[?25h    source test60.vim

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:version: 1'

[?25l:  [?12l[?25h    if exists('v:version')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Non-existing Vim internal variable

[?25l:  [?12l[?25h    echo 'v:non_exists_var: 0'

[?25l:  [?12l[?25h    if !exists('v:non_exists_var')

[?25l:    [?12l[?25h^Iecho "OK"

[?25l:    [?12l[?25h    else

[?25l:    [?12l[?25h^Iecho "FAILED"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h    " Function arguments

[?25l:  [?12l[?25h    function TestFuncArg(func_arg, ...)

[?25l:    [?12l[?25h        echo 'a:func_arg: 1'

[?25l:    [?12l[?25h        if exists('a:func_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:non_exists_arg: 0'

[?25l:    [?12l[?25h        if !exists('a:non_exists_arg')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:1: 1'

[?25l:    [?12l[?25h        if exists('a:1')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h        echo 'a:2: 0'

[?25l:    [?12l[?25h        if !exists('a:2')

[?25l:      [?12l[?25h            echo "OK"

[?25l:      [?12l[?25h        else

[?25l:      [?12l[?25h            echo "FAILED"

[?25l:      [?12l[?25h        endif

[?25l:    [?12l[?25h    endfunction

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    call TestFuncArg("arg1", "arg2")

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    echo ' g:footest#x =' g:footest#x

[?25l:    [?12l[?25h    echo '   footest#F()' footest#F()

[?25l:    [?12l[?25h    echo 'UndefFun()' UndefFun()

[?25l:    [?12l[?25h

[?25l:    [?12l[?25h    redir END

[?25l:    [?12l[?25hendfunction
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hcall TestExists()
[?25l#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[?12l[?25h[?25l:[?12l[?25h"
[?25lendif
    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
[?12l[?25h[?25l
:[?12l[?25hdelfunc TestExists
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestFuncArg
[?25l[?12l[?25h[?25l:[?12l[?25hedit! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 206 lines, 1941 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns without multi-byte support.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp engine
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"operator \|
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a*', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x', 'abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search single groups
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', 'baced'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Search multi-modifiers
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" no match here
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h" empty match is good
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a\{0,1}'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" leading star as normal char when \{} follows
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?12l[?25h[?25l:[?12l[?25h" same thing as 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a?'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" anti-greedy version of 'a*'
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test groups of characters and submatches
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test greedy-ness and lazy-ness
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test Character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test collections and character range []
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-a]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-]', '-', '-'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?12l[?25h[?25l:[?12l[?25h" filename regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?12l[?25h[?25l:[?12l[?25h" special chars
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?12l[?25h[?25l:[?12l[?25h" collation elem
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" middle of regexp
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test start/end of line, start/end of file
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^a.', "b a \na_"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%^a', " a \na "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n "])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Test recognition of character classes
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \z features
[?25l[?12l[?25h[?25l:[?12l[?25h" match ends at \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?12l[?25h[?25l:[?12l[?25h" match starts at \zs
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Tests for \@= and \& features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match, no matter the input text
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?12l[?25h[?25l:[?12l[?25h" will never match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Combining different tests and features
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '', 'abcd', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" \%u and friends
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \%[abc]
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Alternatives, must use first longest match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Look-behind with limit
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" look-behind match in front of a zero-width item
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" complicated look-behind match
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" \@>
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?12l[?25h[?25l:[?12l[?25h" TODO: BT engine does not restore submatch after failure
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" "\_" prepended negated collection matches EOL
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Requiring lots of states.
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Skip adding state twice
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l:for pat in [' \ze*', ' \zs*'][?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""" Test \%V atom
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l:for pat in [' \ze*', ' \zs*']
:  try[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""""" multi-line tests """"""""""""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" back references
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" line breaks
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25lOK 0 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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', '']])
[?25lOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a line break and ^ and $
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"""" Run the multi-line tests
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='multi-line tests'
[?25l
multi-line tests[?12l[?25h[?25l
:[?12l[?25hfor t in tl
[?25l
:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let before = t[2]

[?25l:  [?12l[?25h:  let after = t[3]

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    new

[?25l:    [?12l[?25h:    call setline(1, before)

[?25l:    [?12l[?25h:    exe '%s/' . pat . '/XX/'

[?25l:    [?12l[?25h:    let result = getline(1, '$')

[?25l:    [?12l[?25h:    q!

[?25l:    [?12l[?25h:    if result != after

[?25l:      [?12l[?25h:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
:[?12l[?25hunlet t tl
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?12l[?25h[?25l:[?12l[?25h" matchstr() with \ze in between.
[?25l[?12l[?25h[?25l:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25h.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l5">Ta 5</Title>
<T="7">Ac 7</Title>
[?12l[?25h[?25l/[?12l[?25h^Substitute here
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25h.+1,.+2yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
<T="5">Ta 5</Title>
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check a pattern with a look beind crossing a line boundary
[?25l[?12l[?25h[?25l/[?12l[?25h^Behind:
[?25lsearch 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[?12l[?25h[?25l/[?12l[?25h\(<\_[xy]\+\)\@3<=start
[?25l[?12l[?25h[?25l:[?12l[?25h.yank
[?25l[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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>
[?12l[?25h[?25l
[?12l[?25h[?25l
xxstart3
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching Visual area
[?25l[?12l[?25h[?25l/[?12l[?25h^Visual:
[?25lsearch 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[?12l[?25h
the[?25l[?12l[?25h[?25lxe the the[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Ve/E/g
[?25l3 substitutions on 1 linexE thE thE
[?12l[?25h
[?25landaxand andaxand 
[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Va/A/g
[?25l6 substitutions on 1 lineAndAxAnd AndAxAnd[?12l[?25h
ooo[?25l[?12l[?25h[?25lxofor foro[?12l[?25h[?25lx
oooxofor foro[?12l[?25h[?25l:'<,'>[?12l[?25hs/\%Vo/O/g
[?25l8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?12l[?25h[?25l:[?12l[?25h/^Visual/+1,/^Visual/+4yank
[?25lsearch hit BOTTOM, continuing at TOP
4 lines yanked[?12l[?25h[?25lOK 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\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
4 more lines
thexE thE thExethe4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check matching marks
[?25l[?12l[?25h[?25l/[?12l[?25h^Marks:
[?25lsearch 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[?12l[?25h
asdf[?25l:[?12l[?25h.-4,.+6s/.\%>'s.*\%<'e../here/
[?25lhereasdf[?12l[?25h
asdf
dfsa
dfsadf[?25l:[?12l[?25h.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l
asdfagainasdfOK 0 - bc*[?12l[?25h[?25l:[?12l[?25h/^Marks:/+1,/^Marks:/+3yank
[?25lsearch hit BOTTOM, continuing at TOP
3 lines yanked[?12l[?25h[?25lOK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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\}\(255\_[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
[?12l[?25h[?25l
[?12l[?25h[?25l
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check patterns matching cursor position.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! Postest()
[?25l
:  [?12l[?25h new

[?25l:  [?12l[?25h 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:  [?12l[?25h call setpos('.', [0, 1, 0, 0])

[?25l:  [?12l[?25h s/\%>3c.//g

[?25l:  [?12l[?25h call setpos('.', [0, 2, 4, 0])

[?25l:  [?12l[?25h s/\%#.*$//g

[?25l:  [?12l[?25h call setpos('.', [0, 3, 0, 0])

[?25l:  [?12l[?25h s/\%<3c./_/g

[?25l:  [?12l[?25h %s/\%4l\%>5c./_/g

[?25l:  [?12l[?25h %s/\%6l\%>25v./_/g

[?25l:  [?12l[?25h %s/\%>6l\%3c./!/g

[?25l:  [?12l[?25h %s/\%>7l\%12c./?/g

[?25l:  [?12l[?25h %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l:  [?12l[?25h $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l:  [?12l[?25h 1,$yank

[?25l:  [?12l[?25h quit!

[?25l:  [?12l[?25hendfunc
[?25lOK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(255\_[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\}\(255\_[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[?12l[?25h[?25l255\
OK 0 - 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~                                                                               [?12l[?25h[?25l
-0-[?12l[?25h[?25l
:[?12l[?25hset re=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25loooxOfOr 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 xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?12l[?25h[?25l
-1-[?12l[?25h[?25l
:[?12l[?25hset re=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-2-[?12l[?25h[?25l:[?12l[?25hset re=2
[?25l[?12l[?25h[?25l:[?12l[?25hcall Postest()
[?25l4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hput
[?25l10 more lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l-2-
ffo
bob~                                                                               [?12l[?25h[?25l:[?12l[?25h" start and end of buffer
[?25l[?12l[?25h[?25l/[?12l[?25h\%^
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%^..
[?25lsearch 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[?12l[?25h[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l[?12l[?25h[?25lTest[?12l[?25h[?25lt END[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lOK 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}[?12l[?25h[?25l/[?12l[?25h\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:" 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'])[?12l[?25h[?25l/[?12l[?25h..\%$
[?25l-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx  xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?12l[?25h
[?25l[?12l[?25h[?25lEN[?12l[?25h[?25l[?12l[?25h[?25lE[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check for detecting error
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=2
[?25l[?12l[?25h[?25l:[?12l[?25hfor pat in [' \ze*', ' \zs*']
[?25l
:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    let l = matchlist('x x', pat)

[?25l:    [?12l[?25h:    $put ='E888 NOT detected for ' . pat

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='E888 detected for ' . pat

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor
[?25lffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx xxxxxx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx  xxxxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxxxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx   xxxxxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h""""" Write the results """""""""""""
[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("float")
[?25l
:  [?12l[?25h:  e! test.ok

[?25l:  [?12l[?25h:  wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%f', 123.456)
[?25l
123.456000[?12l[?25h[?25l
:[?12l[?25h$put =printf('%e', 123.456)
[?25l
1.234560e+02[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 123.456)
[?25l
123.456[?12l[?25h[?25l
:[?12l[?25h" check we don't crash on division by zero
[?25l[?12l[?25h[?25l:[?12l[?25hecho 1.0 / 0.0
[?25linf[?12l[?25h[?25l:[?12l[?25h$put ='+='
[?25l
+=[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 6.543
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
7.777[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25hlet v += 5
[?25l[?12l[?25h[?25l:[?12l[?25h$put =printf('%g', v)
[?25l
6.234[?12l[?25h[?25l
:[?12l[?25hlet a = 5
[?25l[?12l[?25h[?25l:[?12l[?25hlet a += 3.333
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(a)
[?25l
8.333[?12l[?25h[?25l
:[?12l[?25h$put ='=='
[?25l
==[?12l[?25h[?25l
:[?12l[?25hlet v = 1.234
[?25l[?12l[?25h[?25l:[?12l[?25h$put =v == 1.234
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =v == 1.2341
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='add-subtract'
[?25l
add-subtract[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 + 1.234)
[?25l
5.234[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 1.234 - 8)
[?25l
-6.766[?12l[?25h[?25l
:[?12l[?25h$put ='mult-div'
[?25l
mult-div[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4 * 1.234)
[?25l
4.936[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', 4.0 / 1234)
[?25l
0.003241[?12l[?25h[?25l
:[?12l[?25h$put ='dict'
[?25l
dict[?12l[?25h[?25l
:[?12l[?25h$put =string({'x': 1.234, 'y': -2.0e20})
[?25l
{'x': 1.234, 'y': -2.0e20}[?12l[?25h[?25l
:[?12l[?25h$put ='list'
[?25l
list[?12l[?25h[?25l
:[?12l[?25h$put =string([-123.4, 2.0e-20])
[?25l
[-123.4, 2.0e-20][?12l[?25h[?25l
:[?12l[?25h$put ='abs'
[?25l
abs[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(1456))
[?25l
1456[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs(-4))
[?25l
4[?12l[?25h[?25l
:[?12l[?25h$put =printf('%d', abs([1, 2, 3]))
[?25lE745: Using a List as a Number
-1[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(14.56))
[?25l
14.56[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', abs(-54.32))
[?25l
54.32[?12l[?25h[?25l
:[?12l[?25h$put ='ceil'
[?25l
ceil[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(1.456))
[?25l
2.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', ceil(-4.000))
[?25l
-4.0[?12l[?25h[?25l
:[?12l[?25h$put ='floor'
[?25l
floor[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(1.856))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(-5.456))
[?25l
-6.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', floor(4.0))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='log10'
[?25l
log10[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(1000))
[?25l
3.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', log10(0.01000))
[?25l
-2.0[?12l[?25h[?25l
:[?12l[?25h$put ='pow'
[?25l
pow[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(3, 3.0))
[?25l
27.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', pow(2, 16))
[?25l
65536.0[?12l[?25h[?25l
:[?12l[?25h$put ='round'
[?25l
round[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(0.456))
[?25l
0.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(4.5))
[?25l
5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', round(-4.50))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put ='sqrt'
[?25l
sqrt[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', sqrt(100))
[?25l
10.0[?12l[?25h[?25l
:[?12l[?25hecho sqrt(-4.01)
[?25lnan[?12l[?25h[?25l:[?12l[?25h$put ='str2float'
[?25l
str2float[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', str2float('1e40'))
[?25l
1.0e40[?12l[?25h[?25l
:[?12l[?25h$put ='trunc'
[?25l
trunc[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(1.456))
[?25l
1.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(-5.456))
[?25l
-5.0[?12l[?25h[?25l
:[?12l[?25h$put =printf('%g', trunc(4.000))
[?25l
4.0[?12l[?25h[?25l
:[?12l[?25h$put ='float2nr'
[?25l
float2nr[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(123.456)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put =float2nr(-123.456)
[?25l
-123[?12l[?25h[?25l
:[?12l[?25h$put ='AND'
[?25l
AND[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 127)
[?25l
127[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 16)
[?25l
16[?12l[?25h[?25l
:[?12l[?25h$put =and(127, 128)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put ='OR'
[?25l
OR[?12l[?25h[?25l
:[?12l[?25h$put =or(16, 7)
[?25l
23[?12l[?25h[?25l
:[?12l[?25h$put =or(8, 7)
[?25l
15[?12l[?25h[?25l
:[?12l[?25h$put =or(0, 123)
[?25l
123[?12l[?25h[?25l
:[?12l[?25h$put ='XOR'
[?25l
XOR[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 127)
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 16)
[?25l
111[?12l[?25h[?25l
:[?12l[?25h$put =xor(127, 128)
[?25l
255[?12l[?25h[?25l
:[?12l[?25h$put ='invert'
[?25l
invert[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(127), 65535)
[?25l
65408[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(16), 65535)
[?25l
65519[?12l[?25h[?25l
:[?12l[?25h$put =and(invert(128), 65535)
[?25l
65407[?12l[?25h[?25l
:[?12l[?25h$put =invert(1.0)
[?25lE805: Using a Float as a Number
0[?12l[?25h[?25l
:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^one
[?25l[?12l[?25hon[?25l[?12l[?25h[?25le
one two three
one two three
one two three
one two three[?12l[?25h[?25l
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?12l[?25h[?25lmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?12l[?25h[?25le
one
one
one
on[?12l[?25h[?25l1
on1
on1
on1
on1[?12l[?25h[?25l:[?12l[?25h'<,'>w! test.out
[?25l"test.out" [New File] 5 lines, 70 characters written[?12l[?25h[?25l/[?12l[?25h^abcdefgh
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?12l[?25h[?25la
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc            defghijklmnopqrstuvwxyz[?12l[?25h[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-5,$w >> test.out
[?25l"test.out"6 lines, 151 characters appended[?12l[?25h[?25l:[?12l[?25h$-4,$s/\s\+//g
[?25l7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25la
a
a
a[?12l[?25h[?25l
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?12l[?25h
[?25labcdefghij[?12l[?25h
    ab[?25lc         defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                       defghijklmnopqrstuvwxyz[?12l[?25h[?25lc                 defghijklmnopqrstuvwxyz[?12l[?25h[?25l[?12l[?25h[?25li  [?12l[?25h[?25l
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h$-4,$w >> test.out
[?25l"test.out"5 lines, 147 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest that groups and patterns are tested correctly when calling exists() for[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet results=[]
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25haugroup auexists
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter * let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25haugroup END
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter *.test let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile.test
[?25l"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter <buffer> let g:entered=1
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25hedit testfile2.test
[?25l"testfile2.test" [New File][?12l[?25h[?25l:[?12l[?25hcall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l:[?12l[?25hcall append(0, results)
[?25l##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[?12l[?25h[?25l:[?12l[?25h$d
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 190 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset noai tw=2 fo=t
[?25l[?12l[?25h[?25la
b[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l
a  b[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tw
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
[?12l[?25h[?25l
a[?12l[?25ha [?25l
b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a ^A[?12l[?25h[?25l
:[?12l[?25hset tw=3 fo=t
[?25l[?12l[?25h[?25l
^A[?12l[?25h[?25la
^A
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
a b[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tcq1 comments=:#
[?25l[?12l[?25h[?25l
#a b[?12l[?25h[?25la b
#a b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  1 a[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=tcn comments=:#
[?25l[?12l[?25h[?25l
b[?12l[?25h[?25l
# 1 a[?12l[?25h[?25l
#   b[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+3
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+3
[?25l{

  x a
  b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=t2a si
[?25l[?12l[?25h[?25l    b[?12l[?25h[?25l b_[?12l[?25h[?25l
c[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# 1 a b[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=qn comments=:#
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
# x[?12l[?25h[?25l
:[?12l[?25hset tw=5 fo=q2 comments=:#
[?25l[?12l[?25h[?25l# x a
[?12l[?25h[?25l
#   b[?12l[?25h[?25l
/^STARTTEST
}

STARTTEST[?12l[?25h[?25l
/^{/+2
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+2
[?25l{
   1aa
   2bb[?12l[?25h[?25l
:[?12l[?25hset tw& fo=a
[?25l[?12l[?25h[?25l1aa ^^2bb }STARTTEST[?12l[?25h
[?25l/^STARTTEST
[?12l[?25h[?25l
/mno pqr/[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25hmno pqr/
[?25l/* abc def ghi jkl
 *    mno pqr stu[?12l[?25h[?25l
:[?12l[?25hsetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?12l[?25h[?25l
*    vwx yz[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^#/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^#/
[?25l
# 1 xxxxx[?12l[?25h[?25l
:[?12l[?25hsetl tw=12 fo=tqnc comments=:#
[?25l[?12l[?25h[?25l
#   foobar[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 77 lines, 281 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for multi-byte text formatting.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=t
[?25l[?12l[?25h
[?25l
XYZ[?12l[?25h[?25l[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
Z
abc [?12l[?25h[?25l
X[?12l[?25h[?25lY[?12l[?25h[?25lZ[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
X[?12l[?25h[?25l
:[?12l[?25hset tw=1 fo=tm
[?25l[?12l[?25h[?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l
X a
[?12l[?25h[?25l
a[?12l[?25h[?25l
XY
[?12l[?25h[?25l
Y
[?12l[?25h[?25l
X Y
[?12l[?25h[?25l
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h
[?25la[?12l[?25h
[?25la[?12l[?25h
[?25lY
[?12l[?25h
[?25lY 
[?12l[?25h[?25l
aX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abcX
[?12l[?25h[?25l
X
[?12l[?25h[?25l
abX c
[?12l[?25h[?25lX
c[?12l[?25h[?25l
abXY
[?12l[?25h[?25lX
Y
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX
a
[?12l[?25h[?25lX[?12l[?25h[?25lY
[?12l[?25h[?25lX [?12l[?25h[?25lY
a[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
abc[?12l[?25h[?25lX
ab[?12l[?25h[?25lX
c
ab[?12l[?25h[?25l
X[?12l[?25h[?25l
Y
[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset ai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
  a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
  X[?12l[?25h[?25l
:[?12l[?25hset noai tw=2 fo=tm
[?25l[?12l[?25h  [?25l
Xa[?12l[?25h[?25l
a[?12l[?25h[?25l[?12l[?25h[?25l
X
  [?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=2 fo=cqm comments=n:X
[?25l[?12l[?25h

[?25lXY[?12l[?25h

[?25lXZ
[?12l[?25h

[?25l
X Z
[?12l[?25h[?25l
XX
[?12l[?25h[?25l
XXa
[?12l[?25h[?25l
XXY
[?12l[?25h[?25l[?12l[?25h[?25l
X
[?12l[?25h[?25l
Xa
[?12l[?25h[?25lXa[?12l[?25h[?25lXY
[?12l[?25h[?25lX[?12l[?25h[?25l
Y
[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25lXZ
[?12l[?25h[?25lX [?12l[?25h[?25l
Y
[?12l[?25h[?25lX [?12l[?25h[?25lY[?12l[?25h[?25lX Z
[?12l[?25h[?25lX[?12l[?25h[?25l
X
[?12l[?25h[?25lX[?12l[?25h[?25l
Xa
[?12l[?25h[?25lX[?12l[?25h[?25lX[?12l[?25h[?25lY[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{[?12l[?25h[?25l
:[?12l[?25hset tw=2 fo=tm
[?25l[?12l[?25h[?25l
X
a[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{
‘two three ’four[?12l[?25h[?25l
:[?12l[?25hset mps+=^‘:^’
[?25l[?12l[?25h[?25l four[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
/^ra test
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTjVjra
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^ra test
[?25l
ra test[?12l[?25h[?25l
abba
[?12l[?25h[?25lbba 
[?12l[?25h[?25l
a
aab 
[?12l[?25h[?25laaaaaaa [?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set whichwrap+=h
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset whichwrap+=h
[?25l[?12l[?25h[?25l/[?12l[?25h^x
[?25láx[?12l[?25h[?25lx[?12l[?25h
[?25l
:[?12l[?25hset whichwrap-=h
[?25l[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:let a = '.é.' " one char of two bytes
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let b = '.é.' " normal e with composing char
/^byteidx
:put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteiddx(a, 4)])
:put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])
/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)])
:let b = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet a = '.é.' " one char of two bytes
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = '.eé.' " normal e with composing char
[?25l[?12l[?25h[?25l/[?12l[?25h^byteidx
[?25l
byteidx[?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25lENDTESTá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5[?12l[?25h[?25l
/[?12l[?25h^byteidxcomp
[?25l
byteidxcomp[?12l[?25h[?25l
:[?12l[?25hput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25lá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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])ENDTESTbyteidx
[0, 1, 3, 4, -1]4, 5
byteidxcomp[0, 1, 3, 4, -1][?12l[?25h[?25l
:[?12l[?25hlet b = '.eé.'
[?25l[?12l[?25h[?25l:[?12l[?25hput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25lSTARTTEST
: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), byteiddx(a, 4)]):put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteiddx(b, 4)])/^byteidxcomp
:put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcoomp(a, 3), byteidxcomp(a, 4)]):let b = '.é.'put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcoomp(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][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
/^substitute
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?12l[?25h[?25lsubstitute[?12l[?25h[?25l

:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^substitute
[?25l[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25la1a2a3a[?12l[?25h[?25l

/^STARTTEST

STARTTEST[?12l[?25h[?25l:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?12l[?25h[?25l

:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l

/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l104 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[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 166 lines, 730 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

"test.out" [New File] 6 lines, 94 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for find completion.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xfind directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xfind')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE345: Can't find file "" in path[?12l[?25h[?25l:[?12l[?25hexec "w! " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out"
<ild/vim-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25hset path=./**
[?25l[?12l[?25h[?25l:[?12l[?25hfind ...[?25l[?5h[?5l[?12l[?25h
[?25lE32: No file name[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 0L, 0C appended[?12l[?25h[?25l:[?12l[?25hclose
[?25l: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[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                    [?12l[?25h[?25l:[?12l[?25h" We shouldn't find any file at this point, test.out must be empty.
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('in')
[?25l[?12l[?25h[?25l:[?12l[?25hcd in
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hcall mkdir('path')
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdirtest73.in                                                   [?12l[?25h[?25l:[?12l[?25he Xfind/file.txt
[?25l"Xfind/file.txt" [New File]Xfind/file.txt[?12l[?25h[?25l-- INSERT --Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/file.txt" [New] 1L, 11C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/file.txt
[?25l"Xfind/in/file.txt" [New File]in/file.txt[?12l[?25h[?25l-- INSERT --Jimmy Hoffa[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/file.txt" [New] 1L, 12C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/stuff.txt
[?25l"Xfind/in/stuff.txt" [New File]stuff.txt[?12l[?25h[?25l-- INSERT --Another Holy Grail[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/stuff.txt" [New] 1L, 19C written    [?12l[?25h[?25l:[?12l[?25he Xfind/in/path/file.txt
[?25l"Xfind/in/path/file.txt" [New File]path/file.txt[?12l[?25h[?25l-- INSERT --E.T.[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xfind/in/path/file.txt" [New] 1L, 5C written    [?12l[?25h[?25l:[?12l[?25hset path=Xfind/**
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h" Same steps again, using relative and fullpath items that point to the same
[?25l[?12l[?25h[?25l:[?12l[?25h" recursive location.
[?25l[?12l[?25h[?25l:[?12l[?25h" This is to test that there are no duplicates in the completion list.
[?25l[?12l[?25h[?25l:[?12l[?25hexec "set path+=Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h
[?25l"Xfind/file.txt" 1L, 11CHoly Grailfile.txtf         [?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h...[?25lpath/file.txt[?12l[?25h
[?25l"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./Xfind/file.txt[?5h[?5l[?12l[?25h...[?25lin/file.txt[?12l[?25h
[?25l"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25h" Test find completion for directory of current buffer, which at this point
[?25l[?12l[?25h[?25l:[?12l[?25h" is Xfind/in/file.txt.
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.
[?25l[?12l[?25h[?25l:[?12l[?25hfind st...[?25luff.txt[?12l[?25h
[?25l"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" .  test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25h" Test find completion for empty path item ",," which is the current directory
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xfind
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfindin/stuff.txtf       /<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in[?12l[?25h[?25l:[?12l[?25hset path=,,
[?25l[?12l[?25h[?25l:[?12l[?25hfind f...[?25lile.txt[?12l[?25h...[?25l[?12l[?25h
[?25l"file.txt" 1L, 11CHoly Grailfile.txt.     [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?12l[?25h[?25l:[?12l[?25h" Test shortening of
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    foo/y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is above foo/ they should be shortened to (in order
[?25l[?12l[?25h[?25l:[?12l[?25h" of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    y/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/file.txt[?12l[?25h[?25l:[?12l[?25hcall mkdir('x')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('y')
[?25l[?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/x[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcall mkdir('bar')
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfindfile.txti                                                          [?12l[?25h[?25l:[?12l[?25h" We should now be in the Xfind directory
[?25l[?12l[?25h[?25l:[?12l[?25he foo/x/bar/voyager.txt
[?25l"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?12l[?25h[?25l-- INSERT --Voyager 1[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/x/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25he foo/y/bar/voyager.txt
[?25l"foo/y/bar/voyager.txt" [New File]y/[?12l[?25h[?25l-- INSERT --Voyager 2[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"foo/y/bar/voyager.txt" [New] 1L, 10C written    [?12l[?25h[?25l:[?12l[?25hexec "set path=" . cwd . "/Xfind/**"
[?25l[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h
[?25l"foo/x/bar/voyager.txt" 1L, 10C1x/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25lx/bar/voyager.txt[?5h[?5l[?12l[?25h...[?25ly[?12l[?25h
[?25l"foo/y/bar/voyager.txt" 1L, 10C2y/[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?12l[?25h[?25l:[?12l[?25h" order of appearance):
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"    ./voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25h"    x/bar/voyager.txt
[?25l[?12l[?25h[?25l:[?12l[?25hcd foo
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/fooy/bar/voyager.txt.     [?12l[?25h[?25l:[?12l[?25hcd y
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/ybar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25lx/bar/voyager.txt[?12l[?25h
[?25l<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/Xfind/foo/x/bar/voyager.txt"
<m-tlTJJ2/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[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check the opposite too:
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foox/bar/voyager.txt/                                                              [?12l[?25h[?25l:[?12l[?25hcd x
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/xbar/voyager.txt   [?12l[?25h[?25l:[?12l[?25hcd bar
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/x/barvoyager.txt.     [?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h
[?25l"voyager.txt" 1L, 10C[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25hfind voyager...[?25l./voyager.txt[?5h[?5l[?12l[?25h...[?25ly/bar/voyager.txt[?12l[?25h
[?25l<uild/vim-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/Xfind/foo/y/bar/voyager.txt"
<m-tlTJJ2/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[?12l[?25h[?25l:[?12l[?25hexec "w >> " . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?12l[?25h[?25l:[?12l[?25h" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/in"
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/in[?12l[?25h[?25l:[?12l[?25hfind file...[?25l./file.txt[?5h[?5l[?12l[?25h
[?25l"file.txt" 1L, 12CJimmy Hoffafile.txti                                                                       [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Test for relative to current buffer 'path' item
[?25l[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd . "/Xfind/"
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfindin/file.txt[?12l[?25h[?25l:[?12l[?25hset path=./path
[?25l[?12l[?25h[?25l:[?12l[?25h" Open the file where Jimmy Hoffa is found
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12C[?12l[?25h[?25l:[?12l[?25h" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?12l[?25h[?25l:[?12l[?25hfind file...[?25ltxt[?12l[?25h
[?25l"in/path/file.txt" 1L, 5CE.T.path/file.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that completion works when path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset path=.,,
[?25l[?12l[?25h[?25l:[?12l[?25h" Open Jimmy Hoffa file
[?25l[?12l[?25h[?25l:[?12l[?25he in/file.txt
[?25l"in/file.txt" 1L, 12CJimmy Hoffafile.txte      [?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?12l[?25h[?25l:[?12l[?25h" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?12l[?25h[?25l:[?12l[?25hfind stu...[?25lff.txt[?12l[?25h
[?25l"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?12l[?25h[?25l:[?12l[?25hexec "w >>" . test_out
[?25l"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 19C appended[?12l[?25h[?25l:[?12l[?25hq
[?25l: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[?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir[?12l[?25h[?25l:[?12l[?25hcall delete("Xfind", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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^[:"[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for maparg().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo-=<
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25h" Test maparg() with a string result
[?25l[?12l[?25h[?25l:[?12l[?25hmap foo<C-V> is<F4>foo
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('foo<C-V>'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25hmap <buffer> <nowait> foo bar
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc x<char-114>x
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25hmap abc y<S-char-114>y
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', maparg('abc'))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25leof
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[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Outside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x1040> a
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u1040\<Esc>"
[?25la[?12l[?25h[?25l:[?12l[?25h" Inside of the range, minimum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0x103f> b
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\u103f\<Esc>"
[?25lb[?12l[?25h[?25l:[?12l[?25h" Inside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf03f> c
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf03f\<Esc>"
[?25lc[?12l[?25h[?25l:[?12l[?25h" Outside of the range, maximum
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <Char-0xf040> d
[?25l[?12l[?25h[?25l:[?12l[?25hexecute "normal a\uf040\<Esc>"
[?25ld[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^eof/+1,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25lcksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?12l[?25h[?25l
:[?12l[?25hset fileformat=unix undolevels=-1
[?25l[?12l[?25h[?25lInserts 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.[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l12345678910111213141516171819202122[?12l[?25h[?25l
23[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2000000 lines, 14888896 characters written[?12l[?25h[?25l:[?12l[?25hr !cksum Xtest
[?25l[?12l[?25h[?25l1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?12l[?25h[?25l:[?12l[?25hs/\s/ /g
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat&
[?25l[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 26 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25lA
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l&[?12l[?25h
[?25l:[?12l[?25hs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set nomagic
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/&&/
[?25l&&
[?12l[?25h
[?25l:[?12l[?25hs/B/\&/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l987654321
[?12l[?25h
[?25l:[?12l[?25hs/D/d/
[?25ld[?12l[?25h
[?25l:[?12l[?25hs/E/~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/F/\~/
[?25l~[?12l[?25h
[?25l:[?12l[?25hs/G/\ugg/
[?25lg
[?12l[?25h
[?25l:[?12l[?25hs/H/\Uh\Eh/
[?25lh
[?12l[?25h
[?25l:[?12l[?25hs/I/\lII/
[?25liI
[?12l[?25h[?25l
J[?12l[?25h[?25l
:[?12l[?25hs/J/\LJ\EJ/
[?25ljJ
[?12l[?25h[?25l
K[?12l[?25h[?25l
:[?12l[?25hs/K/\Uk\ek/
[?25lk
[?12l[?25h[?25l
lLl[?12l[?25h[?25l
:[?12l[?25hs/L/^^M/
[?25l
l[?12l[?25h[?25l
mMm
[?12l[?25h[?25l
:[?12l[?25hs/M/\r/
[?25l
m[?12l[?25h[?25l
nNn
[?12l[?25h[?25l
:[?12l[?25hs/N/\^^M/
[?25l^Mn
[?12l[?25h[?25l
oOo[?12l[?25h[?25l
:[?12l[?25hs/O/\n/
[?25l^@o
[?12l[?25h[?25l
pPp[?12l[?25h[?25l
:[?12l[?25hs/P/\b/
[?25l^Hp
[?12l[?25h[?25l
qQq[?12l[?25h[?25l
:[?12l[?25hs/Q/\t/
[?25l       q
[?12l[?25h[?25l
rRr[?12l[?25h[?25l
:[?12l[?25hs/R/\\/
[?25l\
[?12l[?25h[?25l
sSs[?12l[?25h[?25l
:[?12l[?25hs/S/\c/
[?25lc
[?12l[?25h[?25l
tTt[?12l[?25h[?25l
:[?12l[?25hs/T/^^@/
[?25l^@t
[?12l[?25h[?25l
U[?12l[?25h[?25l
:[?12l[?25hs/U/\L\uuUu\l\EU/
[?25luuU
[?12l[?25h[?25l
V[?12l[?25h[?25l
:[?12l[?25hs/V/\U\lVvV\u\Ev/
[?25lvVVv
[?12l[?25h[?25l/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\='\'/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\='\\'/
[?25l\\b
[?12l[?25h
[?25l:[?12l[?25hs/C/\='^^M'/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\='\^^M'/
[?25l\d[?12l[?25h
[?25l


:[?12l[?25hs/E/\='\\^^M'/
[?25l\\
efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\='\r'/
[?25l\rf
[?12l[?25h[?25l
gGg[?12l[?25h[?25l
:[?12l[?25hs/G/\='^^@'/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\='\^^@'/
[?25l
\h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\='\\^^@'/
[?25l
\\
i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\='\n'/
[?25l\nj
[?12l[?25h[?25l
kKk[?12l[?25h[?25l
:[?12l[?25hs/K/\="\r"/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\="\n"/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l\
[?12l[?25h
[?25l:[?12l[?25hs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25ld[?12l[?25h
[?25l


:[?12l[?25hs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l\efFf[?12l[?25h
[?25l:[?12l[?25hs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l
f[?12l[?25h[?25l
gGg
[?12l[?25h[?25l
:[?12l[?25hs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l
g[?12l[?25h[?25l
hHh
[?12l[?25h[?25l
:[?12l[?25hs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l
h[?12l[?25h[?25l
iIi
[?12l[?25h[?25l
:[?12l[?25hs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l
\i[?12l[?25h[?25l
jJj
[?12l[?25h[?25l
:[?12l[?25hs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l
j[?12l[?25h[?25l
kKk
[?12l[?25h[?25l
:[?12l[?25hs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l
k[?12l[?25h[?25l
lLl
[?12l[?25h[?25l
:[?12l[?25hs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l
l[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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), subbmatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), subbmatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25l
TEST_5:[?12l[?25h[?25l
A123456789
[?12l[?25h[?25l
:[?12l[?25hs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25li\
i987654321[?12l[?25h[?25l
B123456789
[?12l[?25h[?25l
:[?12l[?25hs/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)])/
[?25li
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST/
[?25lTEST_6:
A
B[?12l[?25h[?25l


:[?12l[?25hset cpo+=/
[?25l[?12l[?25h
[?25l:[?12l[?25hs/A/a/
[?25la[?12l[?25h
[?25l:[?12l[?25hs/B/%/
[?25la[?12l[?25h[?25l:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25lC
D[?12l[?25h[?25l


:[?12l[?25hs/C/c/
[?25lc[?12l[?25h
[?25l:[?12l[?25hs/D/%/
[?25l%[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set magic&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l/[?12l[?25h^TEST_7/
[?25l
TEST_7:[?12l[?25h[?25l
A^MA
[?12l[?25h[?25l
:[?12l[?25hs/A./\=submatch(0)/
[?25l
A[?12l[?25h[?25l
B^@B
[?12l[?25h[?25l
:[?12l[?25hs/B./\=submatch(0)/
[?25l
B[?12l[?25h[?25l
C^@C
[?12l[?25h[?25l
:[?12l[?25hs/C./\=strtrans(string(submatch(0, 1)))/
[?25l['C^@']C
[?12l[?25h[?25l
D^@[?12l[?25h[?25l
:[?12l[?25hs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l['D^@', 'D']
[?12l[?25h[?25l
E^@[?12l[?25h[?25l
:[?12l[?25hs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l['E^@', '^@', '^@', '^@', '^@E']
[?12l[?25h[?25l/[?12l[?25h^Q$
[?25l
Q[?12l[?25h[?25l
:[?12l[?25hs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25lE486: Pattern not found: Q[^\n]Q[?12l[?25h[?25l:[?12l[?25h" Avoid :s error breaks dotest map on Windows.
[?25l[?12l[?25h[?25l/^STARTTEST
Q

STARTTEST[?12l[?25h[?25l
:function! TitleString()
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hfunction! TitleString()
[?25l
:  [?12l[?25h  let check = 'foo' =~ 'bar'

[?25l:  [?12l[?25h  return ""

[?25l:  [?12l[?25hendfunction
[?25lTEST_7:
A[?12l[?25h[?25l
:[?12l[?25hset titlestring=%{TitleString()}
[?25l[?12l[?25h[?25l:[?12l[?25h/^test_one/s/.*/\="foo\nbar"/
[?25lfoo
bar[?12l[?25h[?25l
:[?12l[?25h/^test_two/s/.*/\="foo\nbar"/c
[?25l
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l
foobar
[?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST

STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:1;/^Results/,$wq! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?12l[?25h[?25l:[?12l[?25h1;/^Results/,$wq! test.out
[?25l"test.out" [New File] 134 lines, 574 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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', '')[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_1:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('xXx', 'X', \"\r\", '')
[?25l
x^Mx[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l
YyyY[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l
zZZz[?12l[?25h[?25l
/[?12l[?25h^TEST_2
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_2:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', '&&', '')
[?25l
AA[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '\&', '')
[?25l
&[?12l[?25h[?25l
:[?12l[?25h$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25lKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', 'd', '')
[?25l
d[?12l[?25h[?25l
:[?12l[?25h$put =substitute('E', 'E', '~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('F', 'F', '\~', '')
[?25l
~[?12l[?25h[?25l
:[?12l[?25h$put =substitute('G', 'G', '\ugg', '')
[?25l
Gg[?12l[?25h[?25l
:[?12l[?25h$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l
Hh[?12l[?25h[?25l
:[?12l[?25h$put =substitute('I', 'I', '\lII', '')
[?25l
iI[?12l[?25h[?25l
:[?12l[?25h$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l
jJ[?12l[?25h[?25l
:[?12l[?25h$put =substitute('K', 'K', '\Uk\ek', '')
[?25l
Kk[?12l[?25h[?25l
:[?12l[?25h$put =substitute('lLl', 'L', '^^M', '')
[?25l
l^Ml[?12l[?25h[?25l
:[?12l[?25h$put =substitute('mMm', 'M', '\r', '')
[?25l
m^Mm[?12l[?25h[?25l
:[?12l[?25h$put =substitute('nNn', 'N', '\^^M', '')
[?25l
n^Mn[?12l[?25h[?25l
:[?12l[?25h$put =substitute('oOo', 'O', '\n', '')
[?25lo
o[?12l[?25h[?25l
:[?12l[?25h$put =substitute('pPp', 'P', '\b', '')
[?25l
p^Hp[?12l[?25h[?25l
:[?12l[?25h$put =substitute('qQq', 'Q', '\t', '')
[?25l
qq[?12l[?25h[?25l
:[?12l[?25h$put =substitute('rRr', 'R', '\\', '')
[?25l
r\r[?12l[?25h[?25l
:[?12l[?25h$put =substitute('sSs', 'S', '\c', '')
[?25l
scs[?12l[?25h[?25l
:[?12l[?25h$put =substitute('tTt', 'T', \"\r\", '')
[?25l
t^Mt[?12l[?25h[?25l
:[?12l[?25h$put =substitute('uUu', 'U', \"\n\", '')
[?25lu
u[?12l[?25h[?25l
:[?12l[?25h$put =substitute('vVv', 'V', \"\b\", '')
[?25l
v^Hv[?12l[?25h[?25l
:[?12l[?25h$put =substitute('wWw', 'W', \"\\\", '')
[?25l
w\w[?12l[?25h[?25l
:[?12l[?25h$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l
XxxX[?12l[?25h[?25l
:[?12l[?25h$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l
yYYy[?12l[?25h[?25l
/[?12l[?25h^TEST_3
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_3:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l
b\\b[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l
c^Mc[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l
d\^Md[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l
e\\^Me[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l
f\rf[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l
j\nj[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l
k^Mk[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25ll
l[?12l[?25h[?25l
/[?12l[?25h^TEST_4
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_4:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25lu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25lu
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25lv^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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25lw\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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25lXxxX
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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25lyYYyTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25lTEST_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[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25lb\\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[?12l[?25h[?25l
/[?12l[?25h^TEST_5
[?25lsearch 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) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_5:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$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)', '')
[?25lf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?12l[?25h[?25l
:[?12l[?25h$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)])', '')
[?25lj\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']][?12l[?25h[?25l
/[?12l[?25h^TEST_6
[?25lsearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)'', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submaatch(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), subbmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), subbmatch(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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25lTEST_7:[?12l[?25h[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_6:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hset cpo+=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('A', 'A', 'a', '')
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put =substitute('B', 'B', '%', '')
[?25l
%[?12l[?25h[?25l
:[?12l[?25hset cpo-=/
[?25l[?12l[?25h[?25l:[?12l[?25h$put =substitute('C', 'C', 'c', '')
[?25l
c[?12l[?25h[?25l
:[?12l[?25h$put =substitute('D', 'D', '%', '')
[?25l
%[?12l[?25h[?25l
/[?12l[?25h^TEST_7
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_7:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l
A^MA[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25lB
B[?12l[?25h[?25l
:[?12l[?25h$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l['B
']B[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l
-abab[?12l[?25h[?25l
:[?12l[?25h$put =substitute('-bb', '\ze', 'c', 'g')
[?25l
c-cbcbc[?12l[?25h[?25l
/[?12l[?25h^TEST_8
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTyy/^TEST_9:
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_8:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put =',,X'
[?25l
,,X[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25lN,,NX
[?12l[?25h[?25l:[?12l[?25h$put =',,Y'
[?25l
,,Y[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,NY
[?12l[?25h[?25l
:[?12l[?25h$put =',,Z'
[?25l
,,Z[?12l[?25h[?25l
:[?12l[?25hs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l,
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25l,NZ
[?12l[?25h[?25l
/[?12l[?25h^TEST_9:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_9:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25h$put ='xxx'
[?25l
xxx[?12l[?25h[?25l
:[?12l[?25hs/x/X/gc
[?25lx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lXx
replace with X (y/n/a/q/l/^E/^Y)?[?12l[?25h[?25lx[?12l[?25h[?25l
/[?12l[?25h^TEST_10:
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset magic&
[?25l[?12l[?25h[?25l:[?12l[?25hset cpo&
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\n\nTEST_10:\"
[?25l3 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[?12l[?25h[?25l:[?12l[?25hlet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l
1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l
a1a2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l
a1a2a3[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l
aa2a3a[?12l[?25h[?25l
:[?12l[?25hlet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l
1aaa[?12l[?25h[?25l
/[?12l[?25h^TEST_11
[?25lsearch 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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25l"test.out" [New File] 131 lines, 617 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("multi_byte")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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%.22X', n)) | endfor[?12l[?25h[?25l


:[?12l[?25hset enc=utf8
[?25l: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%.22X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZZ\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

~                                                                               ~                                                                               [?12l[?25h[?25lTests 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, aa:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Ch(a, op, b, expected)
[?25l
:  [?12l[?25h:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l:    [?12l[?25h:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    let b:passed += 1

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Chk(a, b, result)
[?25l
:  [?12l[?25h:  if a:result == 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  elseif a:result > 0

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 1)

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    call Ch(a:a, '==?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '!=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '<=?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>=?', a:b, 0)

[?25l:    [?12l[?25h:    call Ch(a:a, '<?', a:b, 1)

[?25l:    [?12l[?25h:    call Ch(a:a, '>?', a:b, 0)

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Check(a, b, result)
[?25l
:  [?12l[?25h:  call Chk(a:a, a:b, a:result)

[?25l:  [?12l[?25h:  call Chk(a:b, a:a, -a:result)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! LT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, -1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GT(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 1)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! EQ(a, b)
[?25l
:  [?12l[?25h:  call Check(a:a, a:b, 0)

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet b:passed=0
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('', '')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('', 'a')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('abc', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc', 'abC')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('AB', 'abc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('ab', 'aBc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall 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[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa', 'k')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('Abc\x80', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc\x80', 'AbC\x81')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('Abc', 'AbC\x80')
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?12l[?25h[?25l:[?12l[?25hcall LT('\xc3XYZ', '\xc3xyz')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?12l[?25h[?25l:[?12l[?25hcall 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~                                                                               [?12l[?25h[?25l:[?12l[?25hcall LT('\xc3', '\xc3\x83')
[?25l[?12l[?25h[?25l:[?12l[?25hcall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(0, printf('%d checks passed', b:passed))
[?25l3732 checks passed[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test that g~ap changes one paragraph only.
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?12l[?25h[?25labcddefg[+][?12l[?25h[?25lABCD
[?12l[?25h[?25l:[?12l[?25hlet lns = getline(1,3)
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), lns)
[?25lABCDdefg[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 5 lines, 31 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for curswant not changing when setting an option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start target options$/+1,/^end target options$/-1 yank
[?25l3 lines yanked[?12l[?25h[?25l:[?12l[?25hlet target_option_names = split(@0)
[?25l[?12l[?25h[?25l:[?12l[?25hfunction TestCurswant(option_name)
[?25l
:  [?12l[?25h:  normal! ggf8j

[?25l:  [?12l[?25h:  let curswant_before = winsaveview().curswant

[?25l:  [?12l[?25h:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l:  [?12l[?25h:  let curswant_after = winsaveview().curswant

[?25l:  [?12l[?25h:  return [a:option_name, curswant_before, curswant_after]

[?25l:  [?12l[?25h:endfunction
[?25l:  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[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =['1234567890', '12345']
[?25l123456789012345[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hlet result = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor option_name in target_option_names
[?25l
:  [?12l[?25h:  call add(result, TestCurswant(option_name))

[?25l:  [?12l[?25h:endfor
[?25l1234567890
12345[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?12l[?25h[?25l:[?12l[?25hput =map(copy(result), 'join(v:val, '' '')')
[?25l3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?12l[?25h[?25l:[?12l[?25h1 delete _
[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hwrite test.out
[?25l"test.out" [New File] 3 lines, 43 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hqall!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lvim: set ft=vim[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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|[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('conceal')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:normal W
GGk
:normal W[?12l[?25h[?25l:[?12l[?25h" Conceal settings.
[?25l[?12l[?25h[?25l:[?12l[?25hset conceallevel=2
[?25l[?12l[?25h[?25l:[?12l[?25hset concealcursor=nc
[?25l[?12l[?25h[?25l:[?12l[?25hsyntax match test /|/ conceal
[?25lconcealed  concealed  


a       b       c       d[?12l[?25h[?25l:[?12l[?25h" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?12l[?25h[?25l:[?12l[?25h" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?12l[?25h[?25l:[?12l[?25h" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?12l[?25h[?25l:[?12l[?25hlet positions = []
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?12l[?25h[?25l:[?12l[?25h" Start test.
[?25l[?12l[?25h[?25l/[?12l[?25h^start:
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ztj
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:let positions += ['2:1']
[?12l[?25h[?25l:[?12l[?25h" We should end up in the same column when running these commands on the two
[?25l[?12l[?25h[?25l:[?12l[?25h" lines.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['2:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['2:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['3:1']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['3:17']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['3:20']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['5:8']
[?12l[?25h[?25l:[?12l[?25h" Same for next test block.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['5:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['5:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['6:8']
[?12l[?25h[?25l:[?12l[?25hnormal ft
[?25l[?12l[?25h[?25l:let positions += ['6:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['6:28']
[?12l[?25h[?25l:[?12l[?25hnormal 0j0j
[?25l[?12l[?25h[?25l:let positions += ['8:1']
[?12l[?25h[?25l:[?12l[?25h" And check W with multiple tabs and conceals in a line.
[?25l[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['8:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['8:27']
[?12l[?25h[?25l:[?12l[?25hnormal 0j
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset lbr
[?25l[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25hset list listchars=tab:>-
[?25l>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?12l[?25h[?25l:[?12l[?25hnormal 0
[?25l[?12l[?25h[?25l:let positions += ['9:1']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:9']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:17']
[?12l[?25h[?25l:[?12l[?25hnormal W
[?25l[?12l[?25h[?25l:let positions += ['9:25']
[?12l[?25h[?25l:[?12l[?25hnormal $
[?25l[?12l[?25h[?25l:let positions += ['9:26']
[?12l[?25h[?25l:[?12l[?25h" Display result.
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', 'end:')
[?25lend:[?12l[?25h[?25l:[?12l[?25hcall append('$', positions)
[?25l2:12:172:203:13:173:205:85:255:286:86:256:288:1[?12l[?25h[?25l:[?12l[?25h/^end/,$wq! test.out
[?25l"test.out" [New File] 29 lines, 135 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78522b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afeee48bb'
: let res='ok'
:else[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: 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") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb00b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('cryptv') || !exists('*sha256')
[?25l
:  [?12l[?25h   e! test.ok

[?25l:  [?12l[?25h   wq! test.out

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc3[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for empty string: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25l
test for empty string: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 1 char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for 1 char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for 3 chars: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8ccc39ed110ca776'
: let res='ok'
:else[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25ltest for 3 chars: ok
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains meta char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l

:[?12l[?25h$put =testcase.res
[?25ltest for contains meta char: ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet testcase='test for contains non-ascii char: '
[?25l[?12l[?25h[?25l:[?12l[?25hif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l:  [?12l[?25h: let res='ok'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: let res='ng'

[?25l:  [?12l[?25h:endif
[?25l: let res='ok'
:else
: let res='ng'
:endif[?12l[?25h[?25l
:[?12l[?25h$put =testcase.res
[?25l
test for contains non-ascii char: ok[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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))[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Use strings to test for memory leaks.
[?25l[?12l[?25h[?25l:[?12l[?25h" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:testvar='abcd'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(1,'testvar'))
[?25l
'abcd'[?12l[?25h[?25l
:[?12l[?25h" Test for getbufvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:var_num = '1234'
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_num = '5678'
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num'))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'1234'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{'var_num': '1234'}[?12l[?25h[?25l
:[?12l[?25hunlet b:var_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, 'var_num', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '', def_num))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(9, '', def_num))
[?25l
'5678'[?12l[?25h[?25l
:[?12l[?25hunlet def_num
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getbufvar(1, '&autoindent'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getbufvar(1, '&autoindent', 1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Open new window with forced option values
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hlet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?12l[?25h[?25l:[?12l[?25hlet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25l:$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[?12l[?25h[?25l:[?12l[?25h$put =otherff
[?25l
dos[?12l[?25h[?25l
:[?12l[?25h$put =string(otherbin)
[?25l
1[?12l[?25h[?25l
:[?12l[?25h$put =otherfenc
[?25l
iso-8859-2[?12l[?25h[?25l
:[?12l[?25hunlet otherff otherbin otherfenc
[?25l[?12l[?25h[?25l:[?12l[?25h" test for getwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25hlet w:var_str = "Dance"
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_str = "Chance"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str'))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Dance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{'var_str': 'Dance'}[?12l[?25h[?25l
:[?12l[?25hunlet w:var_str
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(getwinvar(1, 'var_str', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '', def_str))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(9, '', def_str))
[?25l
'Chance'[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu'))
[?25l
0[?12l[?25h[?25l
:[?12l[?25h$put =string(getwinvar(1, '&nu',  1))
[?25l
0[?12l[?25h[?25l
:[?12l[?25hunlet def_str
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet t:var_list = [1, 2, 3]
[?25l[?12l[?25h[?25l:[?12l[?25hlet t:other = 777
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_list = [4, 5, 6, 7]
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list'))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[1, 2, 3][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, ''))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '', def_list))
[?25l
{'var_list': [1, 2, 3], 'other': 777}[?12l[?25h[?25l
:[?12l[?25htablast
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hunlet t:var_list
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, 'var_list', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(9, '', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabvar(3, '&nu', def_list))
[?25l
[4, 5, 6, 7][?12l[?25h[?25l
:[?12l[?25hunlet def_list
[?25l[?12l[?25h[?25l:[?12l[?25htabonly
[?25ldos[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" test for gettabwinvar()
[?25l[?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabnew
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25htabprev
[?25l + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hsplit
[?25l2N o[No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hsplit
[?25l + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                                                        [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25hvert split
[?25l4  X||||||~~~~~[No Name]                              [?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name]                                 [No Name]                               X[?12l[?25h[?25l:[?12l[?25hlet w:var_dict = {'dict': 'tabwin'}
[?25l[?12l[?25h[?25l:[?12l[?25hlet def_dict = {'dict2': 'newval'}
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd b
[?25l[No Name]                               [No Name]                                                                        X[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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]
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict': 'tabwin'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{'var_dict': {'dict': 'tabwin'}}[?12l[?25h[?25l
:[?12l[?25htabnext
[?25l + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                              [No Name]                                                                         X[?12l[?25h[?25l:[?12l[?25hunlet w:var_dict
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l + 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'}}
[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, ''))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l
{}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, ''))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l
{'dict2': 'newval'}[?12l[?25h[?25l
:[?12l[?25hunlet def_dict
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux'))
[?25l
''[?12l[?25h[?25l
:[?12l[?25h$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l
1[?12l[?25h[?25l
:[?12l[?25htabonly
[?25l0[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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()[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Visual mode and operators[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf-8 nocp viminfo+=nviminfo
[?25lkv3lyjv3lpgvcxxx^[
:$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[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" User functions
[?25l[?12l[?25h[?25l:[?12l[?25hfunction MoveToCap()
[?25l
:  [?12l[?25h:  call search('\u', 'W')

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'[?12l[?25h[?25l:[?12l[?25hfunction SelectInCaps()
[?25l
:  [?12l[?25h:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l:  [?12l[?25h:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l:  [?12l[?25h:  call setpos("'<", [0, line1, col1, 0])

[?25l:  [?12l[?25h:  call setpos("'>", [0, line2, col2, 0])

[?25l:  [?12l[?25h:  normal! gv

[?25l:  [?12l[?25h:endfunction
[?25lkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual modes followed by operator
[?25l[?12l[?25h[?25l/[?12l[?25h^apple
[?25l[?12l[?25ha[?25l-- VISUAL --[?12l[?25h[?25lp[?12l[?25h[?25lle banana cherry[?12l[?25h[?25l banana cherry[?12l[?25h [?25lbanan-- VISUAL --[?12l[?25h[?25l
a  cherry[?12l[?25h[?25ly[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^line 1
[?25l[?12l[?25h[?25lline 1 line 1 -- VISUAL LINE --[?12l[?25h[?25lINSERT --Nnewline[?12l[?25h[?25l-- INSERT --newline[?12l[?25h[?25l
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?12l[?25h[?25lline 5 line 5line 6 line 6xxxxxxxxxxxxx[?12l[?25h[?25lxxxxxxxxxxxxx
xxxxxxxxxxxxx[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^xxxx
[?25l[?12l[?25h[?25l


-- VISUAL BLOCK --[?12l[?25h[?25lx
[?12l[?25h[?25lx
x[?12l[?25h[?25lINSERT --O  
  [?12l[?25h [?25l


-- INSERT --  
    [?12l[?25h [?25l
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?12l[?25h[?25l
-- INSERT --O----
    ----
xxxx----
xxxx----[?12l[?25h-[?25l-- INSERT ------------------[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Visual mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap W /\u/s-1<CR>
[?25l[?12l[?25h[?25l:[?12l[?25hvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Kiwi
[?25lKiwiRaspberryDateWatermelonPeach[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25l/\u/s-1
Kiw[?12l[?25h[?25l
-- INSERT --NoRaspberryDateWatermelonPeach[?12l[?25ho[?25l
-- INSERT --NoberryDateWatermelonPeach[?12l[?25hoberry[?25lDateWat
-- VISUAL --[?12l[?25h[?25lrmelonPeach[?12l[?25h[?25lach[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Jambu
[?25l
JambuRambutanBananaTangerineMango[?12l[?25hJa[?25l
-- VISUAL --[?12l[?25h[?25l:'<,'>call SelectInCaps()
Jamb[?12l[?25h[?25l
-- INSERT ---RambutanBananaTangerineMango[?12l[?25h-[?25l
-- INSERT ---tanBananaTangerineMango[?12l[?25h-[?25ltanBanana
-- VISUAL --[?12l[?25h[?25l
--angerineMango[?12l[?25ha[?25lgo[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Operator-pending mode maps (movement and text object)
[?25l[?12l[?25h[?25l:[?12l[?25honoremap W /\u/<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?12l[?25h[?25l:[?12l[?25honoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?12l[?25h[?25l/[?12l[?25h^Pineapple
[?25lPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h[?25l
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---GrapefruitKiwiZ[?12l[?25h-[?25l
/\u/
-- INSERT ---Z[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Juniper
[?25l
JuniperDurianZ[?12l[?25h[?25l
:call MoveToCap()
Whavcre
[?12l[?25h[?25l:call MoveToCap()
Qhevna[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^Lemon
[?25l
LemonNectarineZ[?12l[?25h[?25l
:call SelectInCaps()
[?12l[?25h[?25lLemonLemonNectarineZ
Lemo[?12l[?25hn[?25l:call SelectInCaps()
NewNectarineZ[?12l[?25hwNecta[?25l
:call SelectInCaps()
wZ[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?12l[?25h[?25l/[?12l[?25h^zzzz
[?25lzzzz[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25lE21: Cannot make changes, 'modifiable' is off[?12l[?25h[?25l:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset noma | let v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l
ok[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: replace last line'
[?25l
characterwise visual mode: replace last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25hlet @" = 'x'
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h$put ='v:errmsg='.v:errmsg
[?25l
v:errmsg=[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle line'
[?25l
characterwise visual mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete middle two line'
[?25l
characterwise visual mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- VISUAL --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise visual mode: delete last line'
[?25l
characterwise visual mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise visual mode: delete last two line'
[?25l
characterwise visual mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" Select mode maps
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>End> <End>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Down> <Down>
[?25l[?12l[?25h[?25l:[?12l[?25hsnoremap <lt>Del> <Del>
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle line'
[?25l
characterwise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la[?12l[?25h[?25lb
c
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete middle two line'
[?25l
characterwise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l


-- SELECT --[?12l[?25h[?25la 
[?12l[?25h[?25lb[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='characterwise select mode: delete last line'
[?25l
characterwise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l
-- SELECT --[?12l[?25h[?25lc[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='characterwise select mode: delete last two line'
[?25l
characterwise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25l

-- SELECT --[?12l[?25h[?25lb 
[?12l[?25h[?25lc[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle line'
[?25l
linewise select mode: delete middle line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25lbc
~                                                                               [?12l[?25h
[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete middle two line'
[?25l
linewise select mode: delete middle two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25la 


-- SELECT LINE --[?12l[?25h[?25la
b 
[?12l[?25h[?25lc~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='linewise select mode: delete last line'
[?25l
linewise select mode: delete last line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lc 
-- SELECT LINE --[?12l[?25h[?25l~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='linewise select mode: delete last two line'
[?25l
linewise select mode: delete last two line[?12l[?25h[?25l
:[?12l[?25h$put ='a'
[?25l
a[?12l[?25h[?25l
:[?12l[?25h$put ='b'
[?25l
b[?12l[?25h[?25l
:[?12l[?25h$put ='c'
[?25l
c[?12l[?25h[?25lb 

-- SELECT LINE --[?12l[?25h[?25lb
c 
[?12l[?25h[?25l~                                                                               ~                                                                               [?12l[?25h[?25l


:[?12l[?25h$put ='---'
[?25l---[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='v_p: replace last character with line register at middle line'
[?25l
v_p: replace last character with line register at middle line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25laaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25lccc
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25llinewise 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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hbb[?25l

-- VISUAL --[?12l[?25h[?25lb[?12l[?25h[?25laaa[?12l[?25h[?25l
ccc
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line'
[?25l
v_p: replace last character with line register at last line[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25laaa
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[?12l[?25h[?25l
:[?12l[?25h$put ='aaa'
[?25l
aaa[?12l[?25h[?25l
:[?12l[?25h$put ='bbb'
[?25l
bbb[?12l[?25h[?25l
:[?12l[?25h$put ='ccc'
[?25l
ccc[?12l[?25h[?25l
:[?12l[?25h-2yank
[?25l[?12l[?25hcc[?25l
-- VISUAL --[?12l[?25h[?25lc[?12l[?25h[?25l
aaa[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode after operation'
[?25l
gv in exclusive select mode after operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25h$put ='äà '
[?25l
äÃ[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l

-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h
[?25l
-- VISUAL --[?12l[?25h[?25läÃ[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
[?12l[?25h[?25l
:[?12l[?25h$put ='gv in exclusive select mode without operation'
[?25l
gv in exclusive select mode without operation[?12l[?25h[?25l
:[?12l[?25h$put ='zzz '
[?25l
zzz[?12l[?25h[?25l
:[?12l[?25hset selection=exclusive
[?25l[?12l[?25h[?25l
-- VISUAL --[?12l[?25h[?25lzzz[?12l[?25h[?25l
zzz[?12l[?25h[?25l
-- VISUAL --zzz[?12l[?25h[?25lINSERT xxx[?12l[?25h[?25l
:[?12l[?25h$put ='---'
[?25l
---[?12l[?25h[?25l
:[?12l[?25h/^start:/+2,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for regexp patterns with multi-byte support, using utf-8.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:
~                                                                               [?12l[?25h
[?25l


:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l: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:
~                                                                               [?12l[?25h[?25l


:[?12l[?25h" tl is a List of Lists with:
[?25l[?12l[?25h[?25l:[?12l[?25h"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?12l[?25h[?25l:[?12l[?25h"    regexp pattern
[?25l[?12l[?25h[?25l:[?12l[?25h"    text to test the pattern on
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected match (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 1 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    expected submatch 2 (optional)
[?25l[?12l[?25h[?25l:[?12l[?25h"    etc.
[?25l[?12l[?25h[?25l:[?12l[?25h"  When there is no match use only the first two items.
[?25l[?12l[?25h[?25l:[?12l[?25hlet tl = []
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?12l[?25h[?25l:[?12l[?25h"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l:endif[?12l[?25h[?25l


:[?12l[?25hcall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l:endif[?12l[?25h[?25l


:  [?12l[?25h:  let re = t[0]

[?25l:  [?12l[?25h:  let pat = t[1]

[?25l:  [?12l[?25h:  let text = t[2]

[?25l:  [?12l[?25h:  let matchidx = 3

[?25l:  [?12l[?25h:  for engine in [0, 1, 2]

[?25l:    [?12l[?25h:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l:      [?12l[?25h:      continue

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    let &regexpengine = engine

[?25l:    [?12l[?25h:    try

[?25l:      [?12l[?25h:      let l = matchlist(text, pat)

[?25l:      [?12l[?25h:    catch

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l:      [?12l[?25h:    endtry

[?25l:    [?12l[?25h:" check the match itself

[?25l:    [?12l[?25h:    if len(l) == 0 && len(t) > matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    elseif len(l) > 0 && len(t) == matchidx

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l:      [?12l[?25h:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l:      [?12l[?25h:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l:      [?12l[?25h:    else

[?25l:      [?12l[?25h:      $put ='OK ' . engine . ' - ' . pat

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:    if len(l) > 0

[?25l:      [?12l[?25h:"   check all the nine submatches

[?25l:      [?12l[?25h:      for i in range(1, 9)

[?25l:[?12l[?25h:        if len(t) <= matchidx + i

[?25l:[?12l[?25h:          let e = ''

[?25l:[?12l[?25h:        else

[?25l:[?12l[?25h:          let e = t[matchidx + i]

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:        if l[i] != e

[?25l:[?12l[?25h:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l:[?12l[?25h:        endif

[?25l:[?12l[?25h:      endfor

[?25l:      [?12l[?25h:      unlet i

[?25l:      [?12l[?25h:    endif

[?25l:    [?12l[?25h:  endfor

[?25l:  [?12l[?25h:endfor
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25hunlet t tl e l
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" check that 'ambiwidth' does not change the meaning of \p
[?25l[?12l[?25h[?25l:[?12l[?25hset regexpengine=1 ambiwidth=single
[?25lOK 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=]]\+
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=1 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 1 ambi double: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=single
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi single: 0[?12l[?25h[?25l
:[?12l[?25hset regexpengine=2 ambiwidth=double
[?25lOK 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
[?12l[?25h[?25l
:[?12l[?25h$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l
eng 2 ambi double: 0[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/\%#=1^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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(toopLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" We don't want the status line to cause problems:
[?25l[?12l[?25h[?25l:[?12l[?25hset laststatus=0
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:totalLines = &lines * 20
[?25l[?12l[?25h[?25l:[?12l[?25hlet middle = g:totalLines / 2
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd n
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hwincmd o
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'LINE ' . i)

[?25l:  [?12l[?25h:endfor
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25lLINE 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[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25haboveleft vert new
[?25l        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?12l[?25h[?25l:[?12l[?25hfor i in range(1, g:totalLines)
[?25l
:  [?12l[?25h:    call setline(i, 'line ' . i)

[?25l:  [?12l[?25h:endfor
[?25lline 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[?12l[?25h[?25l:[?12l[?25hexe string(middle)
[?25l2293023123223323423523623723823924024124224324424524624748495051[?12l[?25h[?25l:[?12l[?25hnormal zt
[?25lline 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[?12l[?25h[?25l:[?12l[?25hnormal M
[?25l[?12l[?25h[?25l:[?12l[?25h" Execute the following two command at once to reproduce the problem.
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb | wincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl scb
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineLeft = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hlet topLineRight = line('w0')
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[?12l[?25h[?25l:[?12l[?25hsetl noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25lLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?12l[?25h[?25l:[?12l[?25h%del _
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25lDifference between the top lines (left - right): 0[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 51 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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(toopLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?25lTests for regexp with multi-byte encoding and various magic settings.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l:" 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
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
/[?12l[?25h[\u4f7f\u5929]\+
[?25l
/[?12l[?25h\%U12345678
[?25l
/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
/[?12l[?25h\%d21879b
[?25l
:[?12l[?25h" Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" l Test what 7.3.192 fixed
[?25l[?12l[?25h[?25l/[?12l[?25h^l
[?25l
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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for visual mode not being reset causing E315 error.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"ex-way will require the colon operator which resets the visual mode thuus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25henew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:msg="Everything's fine."
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! TriggerTheProblem()
[?25l
:  [?12l[?25h:^I" At this point there is no visual selection because :call reset it.

[?25l:  [?12l[?25h:^I" Let's restore the selection:

[?25l:  [?12l[?25h:^Inormal gv

[?25l:  [?12l[?25h:^I'<,'>del _

[?25l:  [?12l[?25h:^Itry

[?25l:    [?12l[?25h:^I^Iexe "normal \<Esc>"

[?25l:    [?12l[?25h:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l:    [?12l[?25h:^I^Iechom 'Snap! E315 error!'

[?25l:    [?12l[?25h:^I^Ilet g:msg='Snap! E315 error!'

[?25l:    [?12l[?25h:^Iendtry

[?25l:  [?12l[?25h:endfunction
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25henew
[?25l[?12l[?25h[?25l:[?12l[?25hsetl buftype=nofile
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'Delete this line.')
[?25lDelete this line.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?12l[?25h[?25l:[?12l[?25h"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?12l[?25h[?25l:[?12l[?25h"       preventing the problem:
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h
[?25lDelete this line. 
[?12l[?25h[?25l:'<,'>[?12l[?25hcall TriggerTheProblem()
[?25l~                                                                               [?12l[?25h[?25l:[?12l[?25h%del _
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), g:msg)
[?25lEverything's fine.[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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 thuus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l


/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :let.  vim: set ft=vim ts=8 :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset runtimepath+=./sautest
[?25l[?12l[?25h[?25l:[?12l[?25h" Test to not autoload when assigning.  It causes internal error.
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let Test104#numvar = function('tr')

[?25l:  [?12l[?25h:  $put ='OK: ' . string(Test104#numvar)

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  $put ='FAIL: ' . v:exception

[?25l:  [?12l[?25h:endtry
[?25l: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')[?12l[?25h[?25l
:[?12l[?25hlet a = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet b = 2
[?25l[?12l[?25h[?25l:[?12l[?25hfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l:  [?12l[?25h:  try

[?25l:    [?12l[?25h:    redir => messages

[?25l:    [?12l[?25h:    execute 'let' letargs

[?25la#1

b#2

:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:    $put ='OK:'

[?25l:    [?12l[?25h:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l:    [?12l[?25h:  catch

[?25l:    [?12l[?25h:    $put ='FAIL: ' . v:exception

[?25l:    [?12l[?25h:    redir END

[?25l:    [?12l[?25h:  endtry

[?25l:  [?12l[?25h:endfor

[?25lb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h/^Results/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for adjusting window and contents     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?12l[?25h[?25l:[?12l[?25hcall setline(1, range(1,256))
[?25l1
234567891011[+][?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hfunc! GetScreenStr(row)
[?25l
:  [?12l[?25h:   let str = ""

[?25l:  [?12l[?25h:   for c in range(1,3)

[?25l:    [?12l[?25h:       let str .= nr2char(screenchar(a:row, c))

[?25l:    [?12l[?25h:   endfor

[?25l:  [?12l[?25h:   return str

[?25l:  [?12l[?25h:endfunc
[?25l1
2
3
4
5
6[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?12l[?25h[?25l:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l50
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l59
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                                                                      [?12l[?25h[?25l

:[?12l[?25hlet s3=GetScreenStr(1)
[?25l[?12l[?25h[?25l:[?12l[?25h:wincmd p
[?25l[No Name] [+]                                                                   test107.in                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(r, [line("w0"), s3])
[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l::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[?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for backtrace debug commands.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Foo()
[?25l
:  [?12l[?25h:   let var1 = 1

[?25l:  [?12l[?25h:   let var2 = Bar(var1) + 9

[?25l:  [?12l[?25h:   return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bar(var)
[?25l
:  [?12l[?25h:    let var1 = 2 + a:var

[?25l:  [?12l[?25h:    let var2 = Bazz(var1) + 4

[?25l:  [?12l[?25h:    return var2

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hfunction! Bazz(var)
[?25l
:  [?12l[?25h:    let var1 = 3 + a:var

[?25l:  [?12l[?25h:    let var3 = "another var"

[?25l:  [?12l[?25h:    return var1

[?25l:  [?12l[?25h:endfunction
[?25lup
b
echo "fil is not frame or finish, it is file"
fil[?12l[?25h[?25l
:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?12l[?25h[?25l:[?12l[?25hdebuggreedy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => out
[?25l[?12l[?25h[?25l:[?12l[?25hdebug echo Foo()
[?25lEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?12l[?25hstep

[?25lfunction Foo

line 1: let var1 = 1

>[?12l[?25hstep

[?25lfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "- show backtrace:\n"

[?25l- show backtrace:

>[?12l[?25hbacktrace

[?25l  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho "\nshow variables on different levels:\n"

[?25l
show variables on different levels:

>[?12l[?25hecho var1

[?25l6
>[?12l[?25hup

[?25l>[?12l[?25hback

[?25l  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l3
>[?12l[?25hu

[?25l>[?12l[?25hbt

[?25l->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?12l[?25hecho var1

[?25l1
>[?12l[?25hecho "\n- undefined vars:\n"

[?25l
- undefined vars:

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?12l[?25hframe 2

[?25l>[?12l[?25hecho "undefined var3 on former level:"

[?25lundefined var3 on former level:

>[?12l[?25hecho var3

[?25lError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?12l[?25hfr 0

[?25l>[?12l[?25hecho "here var3 is defined with \"another var\":"

[?25lhere var3 is defined with "another var":

>[?12l[?25hecho var3

[?25lanother var

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: return var2

>[?12l[?25hstep

[?25lfunction Foo[2]..Bar

line 3: End of function

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nundefined var2 on former level"

[?25l
undefined var2 on former level

>[?12l[?25hecho var2

[?25lError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?12l[?25hdown

[?25l>[?12l[?25hecho "here var2 is defined with 10:"

[?25lhere var2 is defined with 10:

>[?12l[?25hecho var2

[?25l10

>[?12l[?25hecho "\n- backtrace movements:\n"

[?25l
- backtrace movements:

>[?12l[?25hb

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\nnext command cannot go down, we are on bottom\n"

[?25l
next command cannot go down, we are on bottom

>[?12l[?25hdown

[?25lframe is zero

>[?12l[?25hup

[?25l>[?12l[?25hecho "\nnext command cannot go up, we are on top\n"

[?25l
next command cannot go up, we are on top

>[?12l[?25hup

[?25lframe at highest level: 1

>[?12l[?25hb

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "fil is not frame or finish, it is file"

[?25lfil is not frame or finish, it is file

>[?12l[?25hfil

[?25l"[No Name]" --No lines in buffer--

>[?12l[?25hecho "\n- relative backtrace movement\n"

[?25l
- relative backtrace movement

>[?12l[?25hfr -1

[?25l>[?12l[?25hframe

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hfra +1

[?25l>[?12l[?25hfram

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hecho "\n- go beyond limits does not crash\n"

[?25l
- go beyond limits does not crash

>[?12l[?25hfr 100

[?25lframe at highest level: 1

>[?12l[?25hfra

[?25l->1 function Foo[2]

  0 Bar

line 3: End of function

>[?12l[?25hframe -40

[?25lframe is zero

>[?12l[?25hfram

[?25l  1 function Foo[2]

->0 Bar

line 3: End of function

>[?12l[?25hecho "\n- final result 19:"

[?25l
- final result 19:

>[?12l[?25hcont

[?25l19

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h0debuggreedy
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25h$put =out
[?25l83 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[+][?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 84 lines, 1390 characters writtentest.out]      [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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! ttest.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']][?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for option autocommand[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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, secoond 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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hfu! AutoCommand(match)
[?25l
:  [?12l[?25h:^Ilet c=g:testcase

[?25l:  [?12l[?25h:       let item=remove(g:options, 0)

[?25l:  [?12l[?25h:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l:  [?12l[?25h:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l:  [?12l[?25h:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l:  [?12l[?25h:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l:  [?12l[?25h:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l:  [?12l[?25h:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l:  [?12l[?25h:endfu
[?25l: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, secoond 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)[?12l[?25h[?25l
:[?12l[?25hau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="1: Setting number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="2: Setting local number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="3: Setting global number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="4: Setting local autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="5: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal ai
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="6: Setting global autoindent option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ai!
[?25l[?12l[?25h[?25l:[?12l[?25h Should not print anything, use :noa
[?25lE492: Not an editor command: Should not print anything, use :noa[?12l[?25h[?25l:[?12l[?25hnoa :set nonu
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="7: Setting several global list and number option\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset list nu
[?25l     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 invallid, 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$[?12l[?25h[?25l:[?12l[?25hnoa set nolist nonu
[?25l: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, secoond 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[?12l[?25h[?25l:[?12l[?25hlet g:testcase="8: Setting global acd\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal acd
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="9: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hset ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="10: Setting local autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal ar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="11: Setting global autoread\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['autoread', 1, 0, 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal invar
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="12: Setting option backspace through :let\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?12l[?25h[?25l:[?12l[?25hlet &bs="eol,indent,start"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['backup', '', '1', 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25h "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l:let g:testcase="13: Setting option backspace through setbufvar()\n"[?12l[?25h[?25l
:[?12l[?25hcall setbufvar(1, '&l:bk', 1)
[?25lE355: Unknown option: l:bk[?12l[?25h[?25l:[?12l[?25h "should trigger, use correct option name
[?25l[?12l[?25h[?25l:[?12l[?25hcall setbufvar(1, '&backup', 1)
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['number', 0, 1, 'local']]
[?25l[?12l[?25h[?25l:[?12l[?25hcall setwinvar(0, '&number', 1)
[?25l     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 invallid, 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[?12l[?25h[?25l:[?12l[?25h" Write register now, because next test shouldn't output anything.
[?25l[?12l[?25h[?25l:[?12l[?25h$put r
[?25l60 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>, Scoope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scoope: <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>[?12l[?25h[?25l:[?12l[?25hlet @r=''
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=blah
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal key=
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:testcase
[?25l    138 
    139 15: Setting key option, shouldn't trigger[?12l[?25h[?25l
:[?12l[?25h$put r
[?25l
    140 [?12l[?25h[?25l
:[?12l[?25h/^dummy text/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for setting the '[,'] marks when joining lines.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^\t\t/
[?25l[?12l[?25h[?25lattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hlet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h/^This line/;'}-join
[?25lThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='First test: Start/End '.string(a)
[?25lFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?12l[?25h[?25l:[?12l[?25h$put ='Second test: Start/End '.string(b)
[?25lSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?12l[?25h[?25l:[?12l[?25h/^\t\t/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

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

[?25l11[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l22[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l:[?12l[?25hvsplit
[?25l|
 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 [+]                 [?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  normal g;

[?25l:  [?12l[?25h:  normal ggVGcpass
[?25l21 fewer lines
:  

:  [?12l[?25h:catch

[?25l:  [?12l[?25h:  normal ggVGcfail

[?25l:  

:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  %w! test.out

[?25l"test.out" [New File] 1 line, 5 characters written

:  [?12l[?25h:endtry
[?25lpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                           pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for :[count]close! and :[count]hide     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hclose!
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+1close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 7 lines, 39 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l"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 = [][?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                       test_close_count.in                                                              [?12l[?25h[?25l:[?12l[?25h.hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?12l[?25h[?25l


:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h2hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25h-hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h2wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h+hide
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?12l[?25h[?25l12 9
15 12 9
15 12[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 15 lines, 106 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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('%'))[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[?12l[?25h[?25l:[?12l[?25h$ hide
[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h$-1 close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l:[?12l[?25h.+close!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out]  [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[+][?12l[?25h[?25l15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hw
[?25l"test.out" 19 lines, 143 characters written    [?12l[?25h[?25l:[?12l[?25honly!
[?25l6 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

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hb1
[?25l:.+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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hlet tests = []
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hfor i in range(5)
[?25l
:  [?12l[?25h:new

[?25l:  [?12l[?25h:endfor
[?25l~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25h4wincmd w
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        test_close_count.in                                                             [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?12l[?25h[?25l
[?12l[?25h[?25l

:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25l[No Name]                                                                       [No Name]                                                                        [?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hlet buffers = []
[?25l[?12l[?25h[?25l:[?12l[?25hwindo call add(buffers, bufnr('%'))
[?25l[No Name]                                                                        [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hcall add(tests, buffers)
[?25l[?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l25 24 23 21 124 23 21 124 23 2124 21[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 23 lines, 183 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l" Test for expression comparators.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:  let oldisident=&isident

[?25l:  [?12l[?25h:  set isident+=#

[?25l:  [?12l[?25h:  if 1 is#1

[?25l:    [?12l[?25h:    $put ='ok'

[?25l:    [?12l[?25h:  else

[?25l:    [?12l[?25h:    $put ='ng'

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:finally

[?25l:  [?12l[?25h:  let &isident=oldisident

[?25l:  [?12l[?25h:endtry
[?25l" 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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^marker/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:

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

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for erasing backword[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h

[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25lド[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
 www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
www[?12l[?25h[?25lこ[?12l[?25h[?25lん[?12l[?25h[?25lに[?12l[?25h[?25lち[?12l[?25h[?25lわ[?12l[?25h[?25l世[?12l[?25h[?25l界[?12l[?25h[?25lワ[?12l[?25h[?25lー[?12l[?25h[?25lル[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h/^test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:rreg, 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, aa:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for various eval features.   vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:$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:[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun AppendRegContents(reg)
[?25l
:  [?12l[?25h  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:  [?12l[?25h:endfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l
:  [?12l[?25h  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:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n[?12l[?25h[?25l:[?12l[?25hcommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?12l[?25h[?25l:[?12l[?25hfun SetReg(...)
[?25l
:  [?12l[?25h    call call('setreg', a:000)

[?25l:  [?12l[?25h    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l:  [?12l[?25h    call AppendRegContents(a:1)

[?25l:  [?12l[?25h    if a:1 isnot# '='

[?25l:    [?12l[?25h        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l:    [?12l[?25h    endif

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun ErrExe(str)
[?25l
:  [?12l[?25h    call append('$', 'Executing '.a:str)

[?25l:  [?12l[?25h    try

[?25l:    [?12l[?25h        execute a:str

[?25l:    [?12l[?25h    catch

[?25l:    [?12l[?25h        $put =v:exception

[?25l:    [?12l[?25h    endtry

[?25l:  [?12l[?25hendfun
[?25l:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h$put ='{{{1 let tests'

[?25l:  [?12l[?25hlet @" = 'abc'

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\n"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @" = "abc\<C-m>"

[?25l:  [?12l[?25hAR "

[?25l:  [?12l[?25hlet @= = '"abc"'

[?25l:  [?12l[?25hAR =

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Basic setreg tests'

[?25l:  [?12l[?25hcall SetReg('a', 'abcA', 'c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcB', 'v')

[?25l:  [?12l[?25hcall SetReg('c', 'abcC', 'l')

[?25l:  [?12l[?25hcall SetReg('d', 'abcD', 'V')

[?25l:  [?12l[?25hcall SetReg('e', 'abcE', 'b')

[?25l:  [?12l[?25hcall SetReg('f', 'abcF', "\<C-v>")

[?25l:  [?12l[?25hcall SetReg('g', 'abcG', 'b10')

[?25l:  [?12l[?25hcall SetReg('h', 'abcH', "\<C-v>10")

[?25l:  [?12l[?25hcall SetReg('I', 'abcI')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending single lines with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc', 'c')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAl', 'l')

[?25l:  [?12l[?25hcall SetReg('A', 'abcAc2','c')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc', 'ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb', 'ba')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBc2','ca')

[?25l:  [?12l[?25hcall SetReg('b', 'abcBb2','b50a')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('C', 'abcCl', 'l')

[?25l:  [?12l[?25hcall SetReg('C', 'abcCc', 'c')

[?25l:  [?12l[?25hcall SetReg('D', 'abcDb', 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('E', 'abcEb', 'b')

[?25l:  [?12l[?25hcall SetReg('E', 'abcEl', 'l')

[?25l:  [?12l[?25hcall SetReg('F', 'abcFc', 'c')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending NL with setreg()'

[?25l:  [?12l[?25hcall setreg('a', 'abcA2', 'c')

[?25l:  [?12l[?25hcall setreg('b', 'abcB2', 'v')

[?25l:  [?12l[?25hcall setreg('c', 'abcC2', 'l')

[?25l:  [?12l[?25hcall setreg('d', 'abcD2', 'V')

[?25l:  [?12l[?25hcall setreg('e', 'abcE2', 'b')

[?25l:  [?12l[?25hcall setreg('f', 'abcF2', "\<C-v>")

[?25l:  [?12l[?25hcall setreg('g', 'abcG2', 'b10')

[?25l:  [?12l[?25hcall setreg('h', 'abcH2', "\<C-v>10")

[?25l:  [?12l[?25hcall setreg('I', 'abcI2')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', "\n")

[?25l:  [?12l[?25hcall SetReg('B', "\n", 'c')

[?25l:  [?12l[?25hcall SetReg('C', "\n")

[?25l:  [?12l[?25hcall SetReg('D', "\n", 'l')

[?25l:  [?12l[?25hcall SetReg('E', "\n")

[?25l:  [?12l[?25hcall SetReg('F', "\n", 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA3'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3'], 'l')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC3'], 'b')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD3'])

[?25l:  [?12l[?25hcall SetReg('e', [1, 2, 'abc', 3])

[?25l:  [?12l[?25hcall SetReg('f', [1, 2, 3])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ['abcA3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('b', ['abcB3l'], 'la')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3b'], 'lb')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD32'])

[?25l:  [?12l[?25h

[?25l:  [?12l[?25hcall SetReg('A', ['abcA32'])

[?25l:  [?12l[?25hcall SetReg('B', ['abcB3c'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ['abcC3l'], 'l')

[?25l:  [?12l[?25hcall SetReg('D', ['abcD3b'], 'b')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Appending lists with NL with setreg()'

[?25l:  [?12l[?25hcall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l:  [?12l[?25hcall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l:  [?12l[?25hcall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l:  [?12l[?25hcall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Setting lists with NLs with setreg()'

[?25l:  [?12l[?25hcall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l:  [?12l[?25hcall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l:  [?12l[?25hcall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l:  [?12l[?25hcall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l:  [?12l[?25hcall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l:  [?12l[?25h

[?25l:  [?12l[?25h$put ='{{{1 Search and expressions'

[?25l:  [?12l[?25hcall SetReg('/', ['abc/'])

[?25l:  [?12l[?25hcall SetReg('/', ["abc/\n"])

[?25l:  [?12l[?25hcall SetReg('=', ['"abc/"'])

[?25l:  [?12l[?25hcall SetReg('=', ["\"abc/\n\""])

[?25l:  [?12l[?25h$put ='{{{1 System clipboard'

[?25l:  [?12l[?25hif has('clipboard')

[?25l:    [?12l[?25h" Save and restore system clipboard.

[?25l:    [?12l[?25h" If no connection to X-Server is possible, test should succeed.

[?25l:    [?12l[?25hlet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l:    [?12l[?25hlet _clipopt = &cb

[?25l:    [?12l[?25hlet &cb='unnamed'

[?25l:    [?12l[?25h5y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25htabdo :windo :echo "hi"

[?25l:    [?12l[?25h6y

[?25l:    [?12l[?25hAR *

[?25l:    [?12l[?25hlet &cb=_clipopt

[?25l:    [?12l[?25hcall call('setreg', _clipreg)

[?25l:    [?12l[?25helse

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l:    [?12l[?25h  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l:    [?12l[?25hendif

[?25l:  [?12l[?25h$put ='{{{1 Errors'

[?25l:  [?12l[?25hcall ErrExe('call setreg()')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, 3, 4)')

[?25l:  [?12l[?25hcall ErrExe('call setreg([], 2)')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, {})')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, 2, [])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("/", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg("=", ["1", "2"])')

[?25l:  [?12l[?25hcall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l:  [?12l[?25hendfun
[?25l:$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:[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall Test()
[?25l*: 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction SetReg
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction AppendRegContents
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction ErrExe
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hdelcommand AR
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name not starting with capital
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! g:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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 moore linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or moore 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()
~                                                                               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name includes a colon
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! b:test()

[?25l:  [?12l[?25h:echo "test"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25l{{{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()[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name folowed by #
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h:func! test2() "#

[?25l:  [?12l[?25h:echo "test2"

[?25l:  [?12l[?25h:endfunc

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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() "#[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" function name starting with/without "g:", buffer-local funcref.
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! g:Foo(n)
[?25l
:  [?12l[?25h:  $put ='called Foo(' . a:n . ')'

[?25l:  [?12l[?25h:endfunction
[?25lExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?12l[?25h[?25l
:[?12l[?25hlet b:my_func = function('Foo')
[?25l[?12l[?25h[?25l:[?12l[?25hcall b:my_func(1)
[?25l
called Foo(1)[?12l[?25h[?25l
:[?12l[?25hecho g:Foo(2)
[?25l0
called Foo(2)[?12l[?25h[?25l
:[?12l[?25hecho Foo(3)
[?25l0
called Foo(3)[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" script-local function used in Funcref must exist.
[?25l[?12l[?25h[?25l:[?12l[?25hso test_eval_func.vim
[?25ls:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Using $ instead of '$' must give an error
[?25l[?12l[?25h[?25l:[?12l[?25htry
[?25l
:  [?12l[?25h: call append($, 'foobar')

[?25l:  [?12l[?25h:catch

[?25l:  [?12l[?25h:$put =v:exception

[?25l:  [?12l[?25h:endtry
[?25lExecuting 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 moore linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put ='{{{1 getcurpos/setpos'
[?25l
{{{1 getcurpos/setpos[?12l[?25h[?25l
/[?12l[?25h^012345678
[?25lsearch 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[?12l[?25h012345[?25l:[?12l[?25hlet sp = getcurpos()
[?25l[?12l[?25h
[?25l:[?12l[?25hcall setpos('.', sp)
[?25l[?12l[?25h[?25l:[?12l[?25h$put
[?25lExecuting 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 moore lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or moore 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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" substring and variable name
[?25l[?12l[?25h[?25l:[?12l[?25hlet str = 'abcdef'
[?25l[?12l[?25h[?25l:[?12l[?25hlet n = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[n:]
[?25l
def[?12l[?25h[?25l
:[?12l[?25h$put =str[:n]
[?25l
abcd[?12l[?25h[?25l
:[?12l[?25h$put =str[n:n]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet n
[?25l[?12l[?25h[?25l:[?12l[?25hlet nn = 3
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[nn:]
[?25ldef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:nn]
[?25labcd[?12l[?25h[?25l:[?12l[?25h$put =str[nn:nn]
[?25l
d[?12l[?25h[?25l
:[?12l[?25hunlet nn
[?25l[?12l[?25h[?25l:[?12l[?25hlet b:nn = 4
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:]
[?25lef
~                                                                               [?12l[?25h[?25l

:[?12l[?25h$put =str[:b:nn]
[?25labcde[?12l[?25h[?25l:[?12l[?25h$put =str[b:nn:b:nn]
[?25l
e[?12l[?25h[?25l
:[?12l[?25hunlet b:nn
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'fixeol'vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
2 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" try editing files with 'fixeol' disabled
[?25l[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l
stays eol[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestEol
[?25l"XXTestEol" [New File] 2 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25he! XXNoEol
[?25l"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?12l[?25h[?25l
stays without[?12l[?25h[?25l:[?12l[?25hset nofixeol
[?25l[?12l[?25h[?25l:[?12l[?25hw! XXTestNoEol
[?25l"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fixeol
[?25l: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[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXEol
[?25l"XXEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXNoEol
[?25l"XXNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestEol
[?25l"XXTestEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXTestNoEol
[?25l"XXTestNoEol" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File][?12l[?25h[?25l0[?12l[?25h[?25l:[?12l[?25h$r XXEol
[?25l"XXEol" 2 lines, 13 characterswith eolEND[?12l[?25h[?25l:[?12l[?25h$r XXNoEol
[?25l"XXNoEol" 1 line, 15 characterswithout eolEND[?12l[?25h[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXTestEol
[?25l"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?12l[?25h[?25l:[?12l[?25h$r XXTestNoEol
[?25l"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 10 lines, 84 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Do all test in a separate window to avoid E211 when we recursively
[?25l[?12l[?25h[?25l:[?12l[?25h" delete the Xtopdir directory during cleanup
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" This will cause a few errors, do it silently.
[?25l[?12l[?25h[?25l:[?12l[?25hset visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! GetCwdInfo(win, tab)
[?25l
:  [?12l[?25h: let tab_changed = 0

[?25l:  [?12l[?25h: let mod = ":t"

[?25l:  [?12l[?25h: if a:tab > 0 && a:tab != tabpagenr()

[?25l:    [?12l[?25h:   let tab_changed = 1

[?25l:    [?12l[?25h:   exec "tabnext " . a:tab

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l:  [?12l[?25h: if tab_changed

[?25l:    [?12l[?25h:   tabprevious

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: if a:win == 0 && a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir()

[?25l:    [?12l[?25h: elseif a:tab == 0

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win)

[?25l:    [?12l[?25h: else

[?25l:    [?12l[?25h:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l:    [?12l[?25h:   let lflag = haslocaldir(a:win, a:tab)

[?25l:    [?12l[?25h: endif

[?25l:  [?12l[?25h: return bufname . ' ' . dirname . ' ' . lflag

[?25l:  [?12l[?25h:endfunction
[?25l: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
[?12l[?25h[?25l

:[?12l[?25h" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?12l[?25h[?25l:[?12l[?25h" we start from a clean state.
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hlet r=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hlet test_out = cwd . '/test.out'
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xtopdir')
[?25l[?12l[?25h[?25l:[?12l[?25hcd Xtopdir
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir1')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir2')
[?25l[?12l[?25h[?25l:[?12l[?25hcall mkdir('Xdir3')
[?25l[?12l[?25h[?25l:[?12l[?25hnew a
[?25l"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25hnew b
[?25l"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25hnew c
[?25l"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lc                                                                                a                                                                               [?12l[?25h[?25l:[?12l[?25hlcd Xdir1
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                           b                                                                               ab                                                                               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lc                                                                               b                                                                                [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lcb                                                                               b                                                           a                                                           /<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25htabnew x
[?25l"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hnew y
[?25l"y" [New File]2 y  Xy                                                                                x                                                                                [?12l[?25h[?25l:[?12l[?25hnew z
[?25l"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?12l[?25h[?25l:[?12l[?25h3wincmd w
[?25lz                                                                                x                                                                               x  X[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25ly                                                                               x                                                                                y  X[?12l[?25h[?25l:[?12l[?25hlcd Xdir2
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd W
[?25lzb /                Xz                                                                               yb                                                                               x                                                           [?12l[?25h[?25l:[?12l[?25hlcd Xdir3
[?25l/<<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[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(0, 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?12l[?25h[?25l:[?12l[?25hlet tp_nr = tabpagenr()
[?25l[?12l[?25h[?25l:[?12l[?25htabrewind
[?25l 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               [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(3, tp_nr))
[?25l 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               [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(2, tp_nr))
[?25l 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               [?12l[?25h[?25l

:[?12l[?25hcall add(r, GetCwdInfo(1, tp_nr))
[?25l 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               [?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall writefile(r, test_out, "a")
[?25l[?12l[?25h[?25l:[?12l[?25hq
[?25l 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?12l[?25h[?25l:[?12l[?25hexec "cd " . cwd
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?12l[?25h[?25l:[?12l[?25hcall delete("Xtopdir", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for repeating insert and replace.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/Second
[?25l[?12l[?25h[?25looooecond line
ooo[?12l[?25h
Las[?25l:[?12l[?25h/^First/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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:<[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'listchars' display with 'list' and :list[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:lines = []
[?25l[?12l[?25h[?25l:[?12l[?25hfunction GetScreenCharsForLine(lnum)
[?25l
:  [?12l[?25h:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l:  [?12l[?25h:endfunction
[?25l:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\\<CR>"[?12l[?25h[?25l
:[?12l[?25hnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l:endfunction[?12l[?25h[?25l
:[?12l[?25hset listchars+=tab:>-,space:.,trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset list
[?25l$.<expr>.GG.":call..\\<CR>"$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:$[?12l[?25h[?25l
:[?12l[?25hnormal! jzt
[?25l>-------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<<<<><<$[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset listchars-=trail:<
[?25l.....
.......>..[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(1))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(2))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(3))
[?12l[?25h[?25l:call add(g:lines, GetScreenCharsForLine(4))
[?12l[?25h
[?25l:call add(g:lines, GetScreenCharsForLine(5))
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hput =g:lines
[?25l10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?12l[?25h[?25l:[?12l[?25h'[,']w! test.out
[?25l"test.out" [New File] 10 lines, 124 characters written[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?12l[?25h[?25l
$[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset listchars+=trail:<
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist
[?25l   >>  [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start:/
[?25l
start:[?12l[?25h[?25l
:[?12l[?25hredir! >> test.out
[?25l[?12l[?25h[?25l:[?12l[?25h+1,$list
[?25l..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?12l[?25h[?25l
:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option (non-utf8)[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25labcd{ef[?12l[?25h[?25l
:[?12l[?25h10new|:vsp|:vert resize 20
[?25l       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                                 [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,4)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: set linebreak"
[?25l[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: set linebreak + set list"
[?25l[?12l[?25h[?25l:[?12l[?25hset linebreak list listchars=
[?25l^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l^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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hredraw!
[?25labcdef|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25labcdef|^Iabcdef hijklmn^I[?12l[?25h[?25l:[?12l[?25hset nolist linebreak ts=8
[?25l    abcdef[?12l[?25h[?25l:[?12l[?25hlet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25l      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l1|
+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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hlet line="_S_\t bla"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l_S_      bla|+pqrstuvwxyz_1060ABC[?12l[?25h[?25l:[?12l[?25hset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25labbbb[?12l[?25h[?25l:[?12l[?25hsyn match ConcealVar contained /_/ conceal
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match All /.*/ contains=ConcealVar
[?25lSabb[?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: this not"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25labbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE: this not    [?12l[?25h[?25l:[?12l[?25hlet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25lREMOVE:             
+aaaaaaaaaaaaa      [?12l[?25h[?25l:[?12l[?25h1/^REMOVE:
[?25l[?12l[?25h[?25l[?12l[?25h[?25lR[?12l[?25h[?25lEMOVE: 
REMOVE:[?12l[?25h[?25lthis not        
aaaaaaaaaaaaa
~                   [?12l[?25h[?25l:[?12l[?25h$put
[?25l~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?12l[?25h[?25llong line:          [?12l[?25h[?25l foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?12l[?25h+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25lTARGET at
+end[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx at[?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak sbr=
[?25lfoobar 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)[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l1111-1111-1111-11-  
1111-1111-1111      [?12l[?25h[?25l[?12l[?25h[?25l111[?12l[?25h[?25l2222[?12l[?25h[?25l2222[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: using redo after block visual mode"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                [?12l[?25h[?25l1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?12l[?25h[?25l[?12l[?25h[?25la
a[?12l[?25h[?25l3 lines changedA
A
A[?12l[?25h[?25lA
AaA[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 10: using normal commands after block-visual"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?12l[?25h[?25l:[?12l[?25hset linebreak
[?25l[?12l[?25h[?25lAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?12l[?25h[?25l[?12l[?25h[?25l[?12l[?25h[?25lpqrs
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?12l[?25h[?25l:[?12l[?25hset linebreak wrap
[?25l[?12l[?25h[?25lA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?12l[?25h[?25l[?12l[?25h[?25laaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l[?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?12l[?25h[?25l0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?12l[?25h[?25l@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25laaaaaaaaaaaaaaaaaaaa|~[?12l[?25h[?25l:[?12l[?25hset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l$[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hlet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?12l[?25h[?25l:[?12l[?25h$put =line
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25la_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25la_|
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                                                                 [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0))
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 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-$[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 62 lines, 2030 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for search('multi-byte char', 'bce')[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hsource small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hsource mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25lTest 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h/^Test bce:/+1
[?25l[?12l[?25h[?25l:[?12l[?25h$put =search('A', 'bce', line('.'))
[?25l15[?12l[?25h[?25l:[?12l[?25h1;/^Results:/,$wq! test.out
[?25l"test.out" [New File] 5 lines, 27 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for Unicode manipulationsvim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:" 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
[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Visual block Insert adjusts for multi-byte char
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                    [?12l[?25h[?25l:[?12l[?25hcall setline(1, ["aaa", "あああ", "bbb"])
[?25laaa
あああbbb[+][?12l[?25h[?25l:[?12l[?25hexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25lxaa
xあああ
bxbb[?12l[?25h[?25l:[?12l[?25hlet r = getline(1, '$')
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hbwipeout!
[?25l:" 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
 [?12l[?25h[?25l:[?12l[?25h$put=r
[?25l3 more linesstart:
axaa
xあああ
bxbb3 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for built-in function strchars()
[?25l[?12l[?25h[?25l:[?12l[?25hfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l
:  [?12l[?25h:^I$put=strchars(str)

[?25l:  [?12l[?25h:^I$put=strchars(str, 0)

[?25l:  [?12l[?25h:^I$put=strchars(str, 1)

[?25l:  [?12l[?25h:endfor
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test for customlist completion
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete1(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あ', 'い']

[?25l:  [?12l[?25h:endfunction
[?25l:call garbagecollect(1)
:/^start:/,$wq! test.out[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete2(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l:  [?12l[?25h:endfunction
[?25l:/^start:/,$wq! test.out
ENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfunction! CustomComplete3(lead, line, pos)
[?25l
:  [?12l[?25h:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l:  [?12l[?25h:endfunction
[?25lENDTEST[?12l[?25h[?25l
:[?12l[?25hcommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?12l[?25h[?25l:[?12l[?25hcall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?12l[?25h[?25l:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 _[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for wordcount() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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:
[?12l[?25h[?25l
:[?12l[?25hset selection=inclusive fileformat=unix fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                               [?12l[?25h[?25l:[?12l[?25hfu DoRecordWin(...)
[?25l
:  [?12l[?25h:^Iwincmd k

[?25l:  [?12l[?25h:       if exists("a:1")

[?25l:    [?12l[?25h:           call cursor(a:1)

[?25l:    [?12l[?25h:       endif

[?25l:  [?12l[?25h:       let result=[]

[?25l:  [?12l[?25h:       call add(result, g:test)

[?25l:  [?12l[?25h:       call add(result, getline(1, '$'))

[?25l:  [?12l[?25h:       call add(result, wordcount())

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:       return result

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu PutInWindow(args)
[?25l
:  [?12l[?25h:       wincmd k

[?25l:  [?12l[?25h:       %d _

[?25l:  [?12l[?25h:       call append(1, a:args)

[?25l:  [?12l[?25h:^Iwincmd j

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu Log()
[?25l
:  [?12l[?25h:   $put ='----'

[?25l:  [?12l[?25h:   $put =remove(g:log,0)

[?25l:  [?12l[?25h:   $put =string(g:log)

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hfu! STL()
[?25l
:  [?12l[?25h:    if mode() =~? 'V'

[?25l:    [?12l[?25h:       let g:visual_stat=wordcount()

[?25l:    [?12l[?25h:    endif

[?25l:  [?12l[?25h:    return string(wordcount())

[?25l:  [?12l[?25h:endfu
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet g:test="Test 1: empty window"
[?25l[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin()
[?25l[No Name]                                                                        test_wordcount.in                                                               [?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 00, 'cursor_bytes': 0}][+][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 2: some words, cursor at start"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25lone two three[+][?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([1,1,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_worrds': 0, 'bytes': 15, 'cursor_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 3: some words, cursor at end"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?12l[?25h[?25l:[?12l[?25hset ve=all
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_woords': 3, 'bytes': 15, 'cursor_bytes': 15}][?12l[?25h[?25l


:[?12l[?25hset ve=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 5: several lines with words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25lone two threeone two three--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([4,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
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}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 6: one line with BOM set"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow('one two three')
[?25l~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25l[No Name] [+]                                                                   test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset bomb
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 2 lines, 18 characters writtenXtesta         [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_woords': 3, 'bytes': 18, 'cursor_bytes': 14}][?12l[?25h[?25l


:[?12l[?25hwincmd k
[?25lXtest                                                                           test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset nobomb
[?25l[+][?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtest" 2 lines, 15 characters written    [?12l[?25h[?25l:[?12l[?25hwincmd j
[?25lXtest                                                                            test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 7: one line with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh'])
[?25lÄne M¤ne Müh[+]--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([2,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_worrds': 3, 'bytes': 17, 'cursor_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 8: several lines with multibyte words"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25lund raus bist dü!--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'wwords': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 9: visual mode, complete buffer"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}[?12l[?25h[?25lÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 10: visual mode (empty)"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h0
[?25l[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_[?12l[?25h[?25l[?12l[?25h[?25lursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_[?12l[?25h2,1,3}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]a                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test="Test 11: visual mode, single line"
[?25l[?12l[?25h[?25l:[?12l[?25hcall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l--No lines in buffer--[?12l[?25h[?25l:[?12l[?25hwincmd k
[?25lXtest [+]                                                                       test_wordcount.in [+]                                                            [?12l[?25h[?25l:[?12l[?25hset ls=2 stl=%{STL()}
[?25l<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?12l[?25h[?25l:[?12l[?25h" start visual mode quickly and select complete buffer
[?25l[?12l[?25h[?25l:[?12l[?25h2
[?25l2,1,3}[?12l[?25h[?25lords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual_2}[?12l[?25h[?25lÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}[?12l[?25h[?25l
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3}[?12l[?25hsor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18}[?25l:[?12l[?25hset stl= ls=1
[?25lXtest [+]s                                                                       test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log=DoRecordWin([3,99,0])
[?25lXtest [+]                                                                        test_wordcount.in [+]                                                           [?12l[?25h[?25l:[?12l[?25hlet log[2]=g:visual_stat
[?25l[?12l[?25h[?25l:[?12l[?25hcall Log()
[?25l----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 336, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?12l[?25h[?25l


:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^RESULT test/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for autocommands:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" drop out when there is no gzip program
[?25l[?12l[?25h[?25l:[?12l[?25hif !executable("gzip")
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l: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/[?12l[?25h[?25l:[?12l[?25hlet $GZIP = ""
[?25l[?12l[?25h[?25l:[?12l[?25hau FileChangedShell * echo "caught FileChangedShell"
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePre    *.gz   '[,']!gzip
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePost   *.gz   undo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?12l[?25h[?25l11 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[?12l[?25h[?25l:[?12l[?25hau FileReadPost    *.gz   '[,']!gzip -d
[?25l: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[?12l[?25h[?25l
:[?12l[?25h$r Xtestfile.gz                " Read and decompress the testfile
[?25l"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?12l[?25h[?25lstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?12l[?25h[?25l
:[?12l[?25h?startstart?,$w! test.out      " Write contents of this file
[?25l"test.out" [New File] 29 lines, 788 characters written[?12l[?25h[?25l:[?12l[?25hau BufNewFile      *.c    read Xtest.c
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25lsearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25he! foo.c                       " Will load Xtest.c
[?25l"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hau! FileAppendPre
[?25l/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile.gz                " Edit compressed file
[?25l:!gzip -d 'Xtestfile.gz'

[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?12l[?25h[?25lcaught FileChangedShell

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw>>test.out                    " Append it to the output file
[?25l"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hset shelltemp                  " need temp files here
[?25lstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25lstart of testfile[?12l[?25h[?25l:[?12l[?25hau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out                    " Edit the output file
[?25l"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[?12l[?25h[?25l:[?12l[?25h23,$!cat
[?25l[?12l[?25h[?25l218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h23,$s/\r$//                 " remove CR for when sed adds them
[?25lE486: Pattern not found: \r$
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25lstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?12l[?25h[?25l
:[?12l[?25hau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz             " Read compressed file
[?25l[?12l[?25h[?25l"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw                           " write it, after filtering
[?25l"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau!             " remove all autocommands
[?25lE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he               " Edit test.out again
[?25l"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?12l[?25h[?25l:[?12l[?25hset nobin ff&   " use the default fileformat for writing
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 61 lines, 1599 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for reading and writing files with conversion for Win32.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make this a dummy test for non-Win32 systems
[?25l[?12l[?25h[?25l:[?12l[?25hif !has("win32") | e! test.ok | wq! test.out | endif
[?25l"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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)[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for Lua interface and luaeval() function[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso lua.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?12l[?25h[?25l:[?12l[?25hlua h = vim.dict(); h.list = l
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect()
[?25l[?12l[?25h[?25l/[?12l[?25h^1
[?25l[?12l[?25h[?25l:[?12l[?25h" change buffer contents
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf = vim.buffer()
[?25l[?12l[?25h[?25l:[?12l[?25hlua curline = vim.eval"line('.')"
[?25l[?12l[?25h[?25l:[?12l[?25hlua curbuf[curline] = "1 changed line 1"
[?25lchanged line 1
[?12l[?25h[?25l:[?12l[?25h" scalar test
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_string = luaeval('"string"')
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp_1000 = luaeval('1000')
[?25l[?12l[?25h[?25l:[?12l[?25hif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l
:  [?12l[?25h:let scalar_res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let scalar_res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?12l[?25h[?25l


:[?12l[?25hcall append(search("^1"), "scalar test " . scalar_res)
[?25lscalar test OK
2 line 2[?12l[?25h[?25l:[?12l[?25h" dictionary containing a list
[?25l[?12l[?25h[?25l:[?12l[?25hlet tmp = luaeval("h").list[1]
[?25l[?12l[?25h[?25l:[?12l[?25h/^2/put =tmp
[?25l
dictionary with list OK[?12l[?25h[?25l
:[?12l[?25h" circular list (at the same time test lists containing lists)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l
[?25l[?12l[?25h[?25l:[?12l[?25hlet l2 = luaeval("h").list
[?25l[?12l[?25h[?25l:[?12l[?25hif l2[2] == l2
[?25l
:  [?12l[?25h:let res = "OK"

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:let res = "FAILED"

[?25l:  [?12l[?25h:endif
[?25l: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}")[?12l[?25h[?25l
:[?12l[?25hcall setline(search("^3"), "circular test " . res)
[?25l
circular test OK[?12l[?25h[?25l
:[?12l[?25hlet l = []
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = vim.eval("l")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(123)
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert("abc")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = l[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = l[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = l[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = l[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua l = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(l)
[?25l
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?12l[?25h[?25l
:[?12l[?25hlet d = {}
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = vim.eval("d")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = 123
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = "abc"
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = vim.eval("[1, 2, 3]")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[4] = d[0]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[5] = d[1]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[6] = d[2]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[7] = d[3]
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[3] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[2] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[1] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d[0] = nil
[?25l[?12l[?25h[?25l:[?12l[?25hlua d = nil
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(d)
[?25l
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?12l[?25h[?25l
:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 7L, 206C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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])[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=latin1
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python') | e! test.ok | wq! test.out | endif
[?25l"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for various python features.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:[?12l[?25h
[?25l

:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noswapfile
[?25l[?12l[?25h[?25l:[?12l[?25hif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hfun Test()
[?25l
:  [?12l[?25h:py3 import vim

[?25l:  [?12l[?25h:py3 cb = vim.current.buffer

[?25l:  [?12l[?25h:let l = []

[?25l:  [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:  [?12l[?25h:py3 f=vim.bindeval('function("strlen")')

[?25l:  [?12l[?25h:" Extending List directly with different types

[?25l:  [?12l[?25h:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:$put =string(l[-1])

[?25l:  [?12l[?25h:try

[?25l:    [?12l[?25h:  $put =string(l[-4])

[?25l:    [?12l[?25h:catch

[?25l:    [?12l[?25h:  $put =v:exception[:13]

[?25l:    [?12l[?25h:endtry

[?25l:  [?12l[?25h:" List assignment

[?25l:  [?12l[?25h:py3 l[0]=0

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:py3 l[-2]=f

[?25l:  [?12l[?25h:$put =string(l)

[?25l:  [?12l[?25h:"

[?25l:  [?12l[?25h:" Extending Dictionary directly with different types

[?25l:  [?12l[?25h:let d = {}

[?25l:  [?12l[?25h:fun d.f()

[?25l:    [?12l[?25h:  return 1

[?25l:    [?12l[?25h:endfun

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hd=vim.bindeval('d')

[?25l:    [?12l[?25hd['1']='asd'

[?25l:    [?12l[?25hd.update()  # Must not do anything, including throwing errors

[?25l:    [?12l[?25hd.update(b=[1, 2, f])

[?25l:    [?12l[?25hd.update((('-1', {'a': 1}),))

[?25l:    [?12l[?25hd.update({'0': -1})

[?25l:    [?12l[?25hdk = d.keys()

[?25l:    [?12l[?25hdv = d.values()

[?25l:    [?12l[?25hdi = d.items()

[?25l:    [?12l[?25hdk.sort(key=repr)

[?25l:    [?12l[?25hdv.sort(key=repr)

[?25l:    [?12l[?25hdi.sort(key=repr)

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =py3eval('d[''f''](self={})')

[?25l:    [?12l[?25h:$put =py3eval('repr(dk)')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l:    [?12l[?25h:for [key, Val] in sort(items(d))

[?25l:      [?12l[?25h:  $put =string(key) . ' : ' . string(Val)

[?25l:      [?12l[?25h:  unlet key Val

[?25l:      [?12l[?25h:endfor

[?25l:    [?12l[?25h:py3 del dk

[?25l:    [?12l[?25h:py3 del di

[?25l:    [?12l[?25h:py3 del dv

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items with del

[?25l:    [?12l[?25h:py3 del l[2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:try

[?25l:      [?12l[?25h:   py3 del l[:3]

[?25l:      [?12l[?25h:   py3 del l[1:]

[?25l:      [?12l[?25h:catch

[?25l:      [?12l[?25h:   $put =v:exception

[?25l:      [?12l[?25h:endtry

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:py3 del d['-1']

[?25l:    [?12l[?25h:py3 del d['f']

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''b'')'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.get(''b'', 1)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.has_key(''1''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(''0'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(''1'' in d)')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:$put =string(d)

[?25l:    [?12l[?25h:$put =py3eval('repr(d.popitem())')

[?25l:    [?12l[?25h:$put =py3eval('repr(d.get(''0''))')

[?25l:    [?12l[?25h:$put =py3eval('repr(list(iter(d)))')

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" removing items out of range: silently skip items that don't exist

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[2:1]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[2:3]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:5]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:6]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:" The following two ranges delete nothing as they match empty list:

[?25l:    [?12l[?25h:py3 del l[-1:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-2:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:py3 del l[-3:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-4:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-5:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[-6:2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[::2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[3:0:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 del l[2:4:-2]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Slice assignment to a list

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['a']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[1:2]=['b']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:4]=['c']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[4:4]=['d']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-1:2]=['e']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[-10:2]=['f']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:-10]=['g']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = []

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[0:0]=['h']

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:6:2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:-2] = [10, 20]

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[6:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:let l = range(8)

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:py3 l[2:2:1] = ()

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Locked variables

[?25l:    [?12l[?25h:let l = [0, 1, 2, 3]

[?25l:    [?12l[?25h:py3 l=vim.bindeval('l')

[?25l:    [?12l[?25h:lockvar! l

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25hdef emsg(ei):

[?25l:    [?12l[?25h    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l:    [?12l[?25h

[?25l:    [?12l[?25htry:

[?25l:    [?12l[?25h    l[2]='i'

[?25l:    [?12l[?25hexcept vim.error:

[?25l:    [?12l[?25h    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:$put =string(l)

[?25l:    [?12l[?25h:unlockvar! l

[?25l:    [?12l[?25h:"

[?25l:    [?12l[?25h:" Function calls

[?25l:    [?12l[?25hpy3 << EOF

[?25l:    [?12l[?25himport sys

[?25l:    [?12l[?25himport re

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l:    [?12l[?25h

[?25l:    [?12l[?25hdef ee(expr, g=globals(), l=locals()):

[?25l:    [?12l[?25h    cb = vim.current.buffer

[?25l:    [?12l[?25h    try:

[?25l:    [?12l[?25h        try:

[?25l:    [?12l[?25h            exec(expr, g, l)

[?25l:    [?12l[?25h        except Exception as e:

[?25l:    [?12l[?25h            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:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l:    [?12l[?25h                m = py33_type_error_pattern.search(str(e))

[?25l:    [?12l[?25h                if m:

[?25l:    [?12l[?25h                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l:    [?12l[?25h                else:

[?25l:    [?12l[?25h                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l:    [?12l[?25h            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l:    [?12l[?25h                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l:    [?12l[?25h            else:

[?25l:    [?12l[?25h                msg = repr((e.__class__, e))

[?25l:    [?12l[?25h                # Some Python versions say can't, others cannot.

[?25l:    [?12l[?25h                if msg.find('can\'t') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('can\'t', 'cannot')

[?25l:    [?12l[?25h                # Some Python versions use single quote, some double quote

[?25l:    [?12l[?25h                if msg.find('"cannot ') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l:    [?12l[?25h                if msg.find(' attributes"') > -1:

[?25l:    [?12l[?25h                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l:    [?12l[?25h                cb.append(expr + ':' + msg)

[?25l:    [?12l[?25h        else:

[?25l:    [?12l[?25h            cb.append(expr + ':NOT FAILED')

[?25l:    [?12l[?25h    except Exception as e:

[?25l:    [?12l[?25h        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l:    [?12l[?25hEOF

[?25l:    [?12l[?25h:fun New(...)

[?25l:      [?12l[?25h:   return ['NewStart']+a:000+['NewEnd']

[?25l:      [?12l[?25h:endfun

[?25l:      [?12l[?25h:fun DictNew(...) dict

[?25l:[?12l[?25h:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:let l=[function('New'), function('DictNew')]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:py3 l.extend(list(l[0](1, 2, 3)))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 l+=[l[0].name]

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:py3 ee('l[1](1, 2, 3)')

[?25l:[?12l[?25h:py3 f=l[0]

[?25l:[?12l[?25h:delfunction New

[?25l:[?12l[?25h:py3 ee('f(1, 2, 3)')

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let l=[0.0]

[?25l:[?12l[?25h:   py3 l=vim.bindeval('l')

[?25l:[?12l[?25h:   py3 l.extend([0.0])

[?25l:[?12l[?25h:   $put =string(l)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='[0.0, 0.0]'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:let messages=[]

[?25l:[?12l[?25h:delfunction DictNew

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25hd=vim.bindeval('{}')

[?25l:[?12l[?25hm=vim.bindeval('messages')

[?25l:[?12l[?25hdef em(expr, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l:[?12l[?25h            m.extend([TypeError.__name__])

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            m.extend([e.__class__.__name__])

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d["abc1"]')

[?25l:[?12l[?25hem('d["abc1"]="\\0"')

[?25l:[?12l[?25hem('d["abc1"]=vim')

[?25l:[?12l[?25hem('d[""]=1')

[?25l:[?12l[?25hem('d["a\\0b"]=1')

[?25l:[?12l[?25hem('d[b"a\\0b"]=1')

[?25l:[?12l[?25h

[?25l:[?12l[?25hem('d.pop("abc1")')

[?25l:[?12l[?25hem('d.popitem()')

[?25l:[?12l[?25hdel em

[?25l:[?12l[?25hdel m

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =messages

[?25l:[?12l[?25h:unlet messages

[?25l:[?12l[?25h:" locked and scope attributes

[?25l:[?12l[?25h:let d={} | let dl={} | lockvar dl

[?25l:[?12l[?25h:for s in split("d dl v: g:")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! let d.abc2=1

[?25l:[?12l[?25h:silent! let dl.abc3=1

[?25l:[?12l[?25h:py3 d.locked=True

[?25l:[?12l[?25h:py3 dl.locked=False

[?25l:[?12l[?25h:silent! let d.def=1

[?25l:[?12l[?25h:silent! let dl.def=1

[?25l:[?12l[?25h:put ='d:'.string(d)

[?25l:[?12l[?25h:put ='dl:'.string(dl)

[?25l:[?12l[?25h:unlet d dl

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:let l=[] | let ll=[] | lockvar ll

[?25l:[?12l[?25h:for s in split("l ll")

[?25l:[?12l[?25h:    let name=tr(s, ':', 's')

[?25l:[?12l[?25h:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l:[?12l[?25h:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l:[?12l[?25h:    $put =toput

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:silent! call extend(l, [0])

[?25l:[?12l[?25h:silent! call extend(ll, [0])

[?25l:[?12l[?25h:py3 l.locked=True

[?25l:[?12l[?25h:py3 ll.locked=False

[?25l:[?12l[?25h:silent! call extend(l, [1])

[?25l:[?12l[?25h:silent! call extend(ll, [1])

[?25l:[?12l[?25h:put ='l:'.string(l)

[?25l:[?12l[?25h:put ='ll:'.string(ll)

[?25l:[?12l[?25h:unlet l ll

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" py3eval()

[?25l:[?12l[?25h:let l=py3eval('[0, 1, 2]')

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l:[?12l[?25h:$put =sort(items(d))

[?25l:[?12l[?25h:let v:errmsg = ''

[?25l:[?12l[?25h:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l:[?12l[?25h:if has('float')

[?25l:[?12l[?25h:   let f=py3eval('0.0')

[?25l:[?12l[?25h:   $put =string(f)

[?25l:[?12l[?25h:else

[?25l:[?12l[?25h:   $put ='0.0'

[?25l:[?12l[?25h:endif

[?25l:[?12l[?25h:" Invalid values:

[?25l:[?12l[?25h:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l:[?12l[?25h:   try

[?25l:[?12l[?25h:      let v=py3eval(e)

[?25l:[?12l[?25h:   catch

[?25l:[?12l[?25h:      let toput=e.":\t".v:exception[:13]

[?25l:[?12l[?25h:      $put =toput

[?25l:[?12l[?25h:   endtry

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" threading

[?25l:[?12l[?25h:let l = [0]

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport threading

[?25l:[?12l[?25himport time

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass T(threading.Thread):

[?25l:[?12l[?25h    def __init__(self):

[?25l:[?12l[?25h        threading.Thread.__init__(self)

[?25l:[?12l[?25h        self.t = 0

[?25l:[?12l[?25h        self.running = True

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def run(self):

[?25l:[?12l[?25h        while self.running:

[?25l:[?12l[?25h            self.t += 1

[?25l:[?12l[?25h            time.sleep(0.1)

[?25l:[?12l[?25h

[?25l:[?12l[?25ht = T()

[?25l:[?12l[?25hdel T

[?25l:[?12l[?25ht.start()

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:sleep 1

[?25l:[?12l[?25h:py3 t.running = False

[?25l:[?12l[?25h:py3 t.join()

[?25l:[?12l[?25h:" Check if the background thread is working.  Count should be 10, but

on a

[?25l:[?12l[?25h:" busy system (AppVeyor) it can be much lower.

[?25l:[?12l[?25h:py3 l[0] = t.t > 4

[?25l:[?12l[?25h:py3 del time

[?25l:[?12l[?25h:py3 del threading

[?25l:[?12l[?25h:py3 del t

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" settrace

[?25l:[?12l[?25h:let l = []

[?25l:[?12l[?25h:py3 l=vim.bindeval('l')

[?25l:[?12l[?25hpy3 <<EOF

[?25l:[?12l[?25himport sys

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef traceit(frame, event, arg):

[?25l:[?12l[?25h    global l

[?25l:[?12l[?25h    if event == "line":

[?25l:[?12l[?25h        l += [frame.f_lineno]

[?25l:[?12l[?25h    return traceit

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef trace_main():

[?25l:[?12l[?25h    for i in range(5):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:py3 sys.settrace(traceit)

[?25l:[?12l[?25h:py3 trace_main()

[?25l:[?12l[?25h:py3 sys.settrace(None)

[?25l:[?12l[?25h:py3 del traceit

[?25l:[?12l[?25h:py3 del trace_main

[?25l:[?12l[?25h:$put =string(l)

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Slice

[?25l:[?12l[?25h:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l:[?12l[?25h:py3 l = ll[:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[2:4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-4:-2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-2:-4]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[:]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[0:6]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[-10:10]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:-1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[::2]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 l = ll[4:2:1]

[?25l:[?12l[?25h:$put =string(py3eval('l'))

[?25l:[?12l[?25h:py3 del l

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Vars

[?25l:[?12l[?25h:let g:foo = 'bac'

[?25l:[?12l[?25h:let w:abc3 = 'def'

[?25l:[?12l[?25h:let b:baz = 'bar'

[?25l:[?12l[?25h:let t:bar = 'jkl'

[?25l:[?12l[?25h:try

[?25l:[?12l[?25h:  throw "Abc"

[?25l:[?12l[?25h:catch

[?25l:[?12l[?25h:  put =py3eval('vim.vvars[''exception'']')

[?25l:[?12l[?25h:endtry

[?25l:[?12l[?25h:put =py3eval('vim.vars[''foo'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l:[?12l[?25h:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Options

[?25l:[?12l[?25h:" paste:          boolean, global

[?25l:[?12l[?25h:" previewheight   number,  global

[?25l:[?12l[?25h:" operatorfunc:   string,  global

[?25l:[?12l[?25h:" number:         boolean, window-local

[?25l:[?12l[?25h:" numberwidth:    number,  window-local

[?25l:[?12l[?25h:" colorcolumn:    string,  window-local

[?25l:[?12l[?25h:" statusline:     string,  window-local/global

[?25l:[?12l[?25h:" autoindent:     boolean, buffer-local

[?25l:[?12l[?25h:" shiftwidth:     number,  buffer-local

[?25l:[?12l[?25h:" omnifunc:       string,  buffer-local

[?25l:[?12l[?25h:" preserveindent: boolean, buffer-local/global

[?25l:[?12l[?25h:" path:           string,  buffer-local/global

[?25l:[?12l[?25h:let g:bufs=[bufnr('%')]

[?25l:[?12l[?25h:new

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd j

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:let g:bufs+=[bufnr('%')]

[?25l:[?12l[?25h:wincmd l

[?25l:[?12l[?25h:fun RecVars(opt)

[?25l:[?12l[?25h:  let gval =string(eval('&g:'.a:opt))

[?25l:[?12l[?25h:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l:[?12l[?25h:  put ='  G: '.gval

[?25l:[?12l[?25h:  put ='  W: '.wvals

[?25l:[?12l[?25h:  put ='  B: '.wvals

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef e(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('return ' + repr(e.__class__.__name__))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef ev(s, g=globals(), l=locals()):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        return eval(s, g, l)

[?25l:[?12l[?25h    except Exception as e:

[?25l:[?12l[?25h        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l:[?12l[?25h        return 0

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:fun E(s)

[?25l:[?12l[?25h:   python3 e(vim.eval('a:s'))

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun Ev(s)

[?25l:[?12l[?25h:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l:[?12l[?25h:   if exists('exc')

[?25l:[?12l[?25h:       throw exc

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   return r

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:py3 gopts1=vim.options

[?25l:[?12l[?25h:py3 wopts1=vim.windows[2].options

[?25l:[?12l[?25h:py3 wopts2=vim.windows[0].options

[?25l:[?12l[?25h:py3 wopts3=vim.windows[1].options

[?25l:[?12l[?25h:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l:[?12l[?25h:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l:[?12l[?25h:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l:[?12l[?25h:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l:[?12l[?25h:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l:[?12l[?25h:py3 gset=set(iter(gopts1))

[?25l:[?12l[?25h:py3 wset=set(iter(wopts1))

[?25l:[?12l[?25h:py3 bset=set(iter(bopts1))

[?25l:[?12l[?25h:set path=.,..,,

[?25l:[?12l[?25h:let lst=[]

[?25l:[?12l[?25h:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l:[?12l[?25h:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l:[?12l[?25h:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l:[?12l[?25h:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l:[?12l[?25h:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l:[?12l[?25h:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l:[?12l[?25h:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l:[?12l[?25h:   py3 oname=vim.eval('oname')

[?25l:[?12l[?25h:   py3 oval1=vim.bindeval('oval1')

[?25l:[?12l[?25h:   py3 oval2=vim.bindeval('oval2')

[?25l:[?12l[?25h:   py3 oval3=vim.bindeval('oval3')

[?25l:[?12l[?25h:   if invval is 0 || invval is 1

[?25l:[?12l[?25h:       py3 invval=bool(vim.bindeval('invval'))

[?25l:[?12l[?25h:   else

[?25l:[?12l[?25h:       py3 invval=vim.bindeval('invval')

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   if bool

[?25l:[?12l[?25h:       py3 oval1=bool(oval1)

[?25l:[?12l[?25h:       py3 oval2=bool(oval2)

[?25l:[?12l[?25h:       py3 oval3=bool(oval3)

[?25l:[?12l[?25h:   endif

[?25l:[?12l[?25h:   put ='>>> '.oname

[?25l:[?12l[?25h:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l:[?12l[?25h:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l:[?12l[?25h:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l:[?12l[?25h:       try

[?25l:[?12l[?25h:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l:[?12l[?25h:       catch

[?25l:[?12l[?25h:           put ='  p/'.v.'! '.v:exception

[?25l:[?12l[?25h:       endtry

[?25l:[?12l[?25h:       let r=E(v.'['''.oname.''']=invval')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  inv: '.string(invval).'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l:[?12l[?25h:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l:[?12l[?25h:           let r=E(vv.'['''.oname.''']='.val)

[?25l:[?12l[?25h:           if r isnot 0

[?25l:[?12l[?25h:               put ='  '.vv.'! '.r

[?25l:[?12l[?25h:           endif

[?25l:[?12l[?25h:       endfor

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:   for v in ['wopts3', 'bopts3']

[?25l:[?12l[?25h:       let r=E('del '.v.'["'.oname.'"]')

[?25l:[?12l[?25h:       if r isnot 0

[?25l:[?12l[?25h:           put ='  del '.v.'! '.r

[?25l:[?12l[?25h:       endif

[?25l:[?12l[?25h:   endfor

[?25l:[?12l[?25h:   call RecVars(oname)

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:delfunction RecVars

[?25l:[?12l[?25h:delfunction E

[?25l:[?12l[?25h:delfunction Ev

[?25l:[?12l[?25h:py3 del ev

[?25l:[?12l[?25h:py3 del e

[?25l:[?12l[?25h:only

[?25l:[?12l[?25h:for buf in g:bufs[1:]

[?25l:[?12l[?25h:   execute 'bwipeout!' buf

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:py3 del gopts1

[?25l:[?12l[?25h:py3 del wopts1

[?25l:[?12l[?25h:py3 del wopts2

[?25l:[?12l[?25h:py3 del wopts3

[?25l:[?12l[?25h:py3 del bopts1

[?25l:[?12l[?25h:py3 del bopts2

[?25l:[?12l[?25h:py3 del bopts3

[?25l:[?12l[?25h:py3 del oval1

[?25l:[?12l[?25h:py3 del oval2

[?25l:[?12l[?25h:py3 del oval3

[?25l:[?12l[?25h:py3 del oname

[?25l:[?12l[?25h:py3 del invval

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test buffer object

[?25l:[?12l[?25h:vnew

[?25l:[?12l[?25h:put ='First line'

[?25l:[?12l[?25h:put ='Second line'

[?25l:[?12l[?25h:put ='Third line'

[?25l:[?12l[?25h:1 delete _

[?25l:[?12l[?25h:py3 b=vim.current.buffer

[?25l:[?12l[?25h:wincmd w

[?25l:[?12l[?25h:mark a

[?25l:[?12l[?25h:augroup BUFS

[?25l:[?12l[?25h:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l:[?12l[?25h:augroup END

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Tests BufferAppend and BufferItem

[?25l:[?12l[?25hcb.append(b[0])

[?25l:[?12l[?25h# Tests BufferSlice and BufferAssSlice

[?25l:[?12l[?25hcb.append('abc5') # Will be overwritten

[?25l:[?12l[?25hcb[-1:] = b[:-2]

[?25l:[?12l[?25h# Test BufferLength and BufferAssSlice

[?25l:[?12l[?25hcb.append('def') # Will not be overwritten

[?25l:[?12l[?25hcb[len(cb):] = b[:]

[?25l:[?12l[?25h# Test BufferAssItem and BufferMark

[?25l:[?12l[?25hcb.append('ghi') # Will be overwritten

[?25l:[?12l[?25hcb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l:[?12l[?25h# Test BufferRepr

[?25l:[?12l[?25hcb.append(repr(cb) + repr(b))

[?25l:[?12l[?25h# Modify foreign buffer

[?25l:[?12l[?25hb.append('foo')

[?25l:[?12l[?25hb[0]='bar'

[?25l:[?12l[?25hb[0:0]=['baz']

[?25l:[?12l[?25hvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l:[?12l[?25h# Test assigning to name property

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hold_name = cb.name

[?25l:[?12l[?25hcb.name = 'foo'

[?25l:[?12l[?25hcb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hb.name = 'bar'

[?25l:[?12l[?25hcb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hcb.name = old_name

[?25l:[?12l[?25hcb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel old_name

[?25l:[?12l[?25h# Test CheckBuffer

[?25l:[?12l[?25hfor _b in vim.buffers:

[?25l:[?12l[?25h    if _b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(_b.number))

[?25l:[?12l[?25hdel _b

[?25l:[?12l[?25hcb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l:[?12l[?25hfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        exec(expr)

[?25l:[?12l[?25h    except vim.error:

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        # Usually a SEGV here

[?25l:[?12l[?25h        # Should not happen in any case

[?25l:[?12l[?25h        cb.append('No exception for ' + expr)

[?25l:[?12l[?25hvim.command('cd .')

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.buffers object

[?25l:[?12l[?25h:set hidden

[?25l:[?12l[?25h:edit a

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit b

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25h:edit c

[?25l:[?12l[?25h:buffer #

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25h# Check GCing iterator that was not fully exhausted

[?25l:[?12l[?25hi = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# and also check creating more than one iterator at a time

[?25l:[?12l[?25hi2 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i2:' + str(next(i2)))

[?25l:[?12l[?25hcb.append('i:' + str(next(i)))

[?25l:[?12l[?25h# The following should trigger GC and not cause any problems

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hdel i2

[?25l:[?12l[?25hi3 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i3:' + str(next(i3)))

[?25l:[?12l[?25hdel i3

[?25l:[?12l[?25h

[?25l:[?12l[?25hprevnum = 0

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    # Check buffer order

[?25l:[?12l[?25h    if prevnum >= b.number:

[?25l:[?12l[?25h        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l:[?12l[?25h    # Check indexing: vim.buffers[number].number == number

[?25l:[?12l[?25h    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l:[?12l[?25h    prevnum = b.number

[?25l:[?12l[?25hdel prevnum

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append(str(len(vim.buffers)))

[?25l:[?12l[?25h

[?25l:[?12l[?25hbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Test wiping out buffer with existing iterator

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept vim.error:

[?25l:[?12l[?25h    pass

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h    cb.append('!!!! No vim.error')

[?25l:[?12l[?25hi4 = iter(vim.buffers)

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l:[?12l[?25hcb.append('i4:' + str(next(i4)))

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    next(i4)

[?25l:[?12l[?25hexcept StopIteration:

[?25l:[?12l[?25h    cb.append('StopIteration')

[?25l:[?12l[?25hdel i4

[?25l:[?12l[?25hdel bnums

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l:[?12l[?25h:tabnew 0

[?25l:[?12l[?25h:tabnew 1

[?25l:[?12l[?25h:vnew a.1

[?25l:[?12l[?25h:tabnew 2

[?25l:[?12l[?25h:vnew a.2

[?25l:[?12l[?25h:vnew b.2

[?25l:[?12l[?25h:vnew c.2

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hcb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l:[?12l[?25hcb.append('Current tab pages:')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef W(w):

[?25l:[?12l[?25h    if '(unknown)' in repr(w):

[?25l:[?12l[?25h        return '<window object (unknown)>'

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef Cursor(w, start=len(cb)):

[?25l:[?12l[?25h    if w.buffer is cb:

[?25l:[?12l[?25h        return repr((start - w.cursor[0], w.cursor[1]))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return repr(w.cursor)

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor t in vim.tabpages:

[?25l:[?12l[?25h    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l:[?12l[?25h    cb.append('  Windows:')

[?25l:[?12l[?25h    for w in t.windows:

[?25l:[?12l[?25h        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l:[?12l[?25h        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l:[?12l[?25h        for attr in ('height', 'row', 'width', 'col'):

[?25l:[?12l[?25h            try:

[?25l:[?12l[?25h                aval = getattr(w, attr)

[?25l:[?12l[?25h                if type(aval) is not int:

[?25l:[?12l[?25h                    raise TypeError

[?25l:[?12l[?25h                if aval < 0:

[?25l:[?12l[?25h                    raise ValueError

[?25l:[?12l[?25h            except Exception as e:

[?25l:[?12l[?25h                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l:[?12l[?25h        del aval

[?25l:[?12l[?25h        del attr

[?25l:[?12l[?25h        w.cursor = (len(w.buffer), 0)

[?25l:[?12l[?25hdel W

[?25l:[?12l[?25hdel Cursor

[?25l:[?12l[?25hcb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l:[?12l[?25hif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l:[?12l[?25h    cb.append('!!!!!! Windows differ')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.current

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef H(o):

[?25l:[?12l[?25h    return repr(o)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l:[?12l[?25hcb.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:[?12l[?25hdel H

[?25l:[?12l[?25h# Assigning: fails

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    vim.current.window = vim.tabpages[0].window

[?25l:[?12l[?25hexcept ValueError:

[?25l:[?12l[?25h    cb.append('ValueError at assigning foreign tab window')

[?25l:[?12l[?25h

[?25l:[?12l[?25hfor attr in ('window', 'tabpage', 'buffer'):

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        setattr(vim.current, attr, None)

[?25l:[?12l[?25h    except TypeError:

[?25l:[?12l[?25h        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25h

[?25l:[?12l[?25h# Assigning: success

[?25l:[?12l[?25hvim.current.tabpage = vim.tabpages[-2]

[?25l:[?12l[?25hvim.current.buffer = cb

[?25l:[?12l[?25hvim.current.window = vim.windows[0]

[?25l:[?12l[?25hvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l:[?12l[?25hcb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l:[?12l[?25hcb.append('Current window: ' + repr(vim.current.window))

[?25l:[?12l[?25hcb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l:[?12l[?25hcb.append('Current line: ' + repr(vim.current.line))

[?25l:[?12l[?25hws = list(vim.windows)

[?25l:[?12l[?25hts = list(vim.tabpages)

[?25l:[?12l[?25hfor b in vim.buffers:

[?25l:[?12l[?25h    if b is not cb:

[?25l:[?12l[?25h        vim.command('bwipeout! ' + str(b.number))

[?25l:[?12l[?25hdel b

[?25l:[?12l[?25hcb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l:[?12l[?25hcb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l:[?12l[?25hdel w

[?25l:[?12l[?25hdel t

[?25l:[?12l[?25hdel ts

[?25l:[?12l[?25hdel ws

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:tabonly!

[?25l:[?12l[?25h:only!

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test types

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor expr, attr in (

[?25l:[?12l[?25h    ('vim.vars',                         'Dictionary'),

[?25l:[?12l[?25h    ('vim.options',                      'Options'),

[?25l:[?12l[?25h    ('vim.bindeval("{}")',               'Dictionary'),

[?25l:[?12l[?25h    ('vim.bindeval("[]")',               'List'),

[?25l:[?12l[?25h    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l:[?12l[?25h    ('vim.current.buffer',               'Buffer'),

[?25l:[?12l[?25h    ('vim.current.range',                'Range'),

[?25l:[?12l[?25h    ('vim.current.window',               'Window'),

[?25l:[?12l[?25h    ('vim.current.tabpage',              'TabPage'),

[?25l:[?12l[?25h):

[?25l:[?12l[?25h    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l:[?12l[?25hdel expr

[?25l:[?12l[?25hdel attr

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test __dir__() method

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hfor name, o in (

[?25l:[?12l[?25h        ('current',    vim.current),

[?25l:[?12l[?25h        ('buffer',     vim.current.buffer),

[?25l:[?12l[?25h        ('window',     vim.current.window),

[?25l:[?12l[?25h        ('tabpage',    vim.current.tabpage),

[?25l:[?12l[?25h        ('range',      vim.current.range),

[?25l:[?12l[?25h        ('dictionary', vim.bindeval('{}')),

[?25l:[?12l[?25h        ('list',       vim.bindeval('[]')),

[?25l:[?12l[?25h        ('function',   vim.bindeval('function("tr")')),

[?25l:[?12l[?25h        ('output',     sys.stdout),

[?25l:[?12l[?25h    ):

[?25l:[?12l[?25h    cb.append(name + ':' + ','.join(dir(o)))

[?25l:[?12l[?25hdel name

[?25l:[?12l[?25hdel o

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.*.__new__

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary({})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List()'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'')'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l:[?12l[?25h:$put ='auto_rebind'

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l:[?12l[?25h:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test vim.Function

[?25l:[?12l[?25h:function Args(...)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:function SelfArgs(...) dict

[?25l:[?12l[?25h:   return [a:000, self]

[?25l:[?12l[?25h:endfunction

[?25l:[?12l[?25h:" The following four lines should not crash

[?25l:[?12l[?25h:let Pt = function('tr', [[]], {'l': []})

[?25l:[?12l[?25h:py3 Pt = vim.bindeval('Pt')

[?25l:[?12l[?25h:unlet Pt

[?25l:[?12l[?25h:py3 del Pt

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef ecall(out_prefix, func, *args, **kwargs):

[?25l:[?12l[?25h    line = out_prefix + ': '

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        ret = func(*args, **kwargs)

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        line += '!exception: ' + emsg(sys.exc_info())

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l:[?12l[?25h    cb.append(line)

[?25l:[?12l[?25ha = vim.Function('Args')

[?25l:[?12l[?25hpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l:[?12l[?25hpa2 = vim.Function('Args', args=[])

[?25l:[?12l[?25hpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l:[?12l[?25hpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l:[?12l[?25hcb.append('a: ' + repr(a))

[?25l:[?12l[?25hcb.append('pa1: ' + repr(pa1))

[?25l:[?12l[?25hcb.append('pa2: ' + repr(pa2))

[?25l:[?12l[?25hcb.append('pa3: ' + repr(pa3))

[?25l:[?12l[?25hcb.append('pa4: ' + repr(pa4))

[?25l:[?12l[?25hsa = vim.Function('SelfArgs')

[?25l:[?12l[?25hpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l:[?12l[?25hpsa2 = vim.Function('SelfArgs', args=[])

[?25l:[?12l[?25hpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l:[?12l[?25hpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l:[?12l[?25hpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l:[?12l[?25hpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l:[?12l[?25hpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l:[?12l[?25hpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l:[?12l[?25hpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l:[?12l[?25hpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l:[?12l[?25hpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l:[?12l[?25hpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l:[?12l[?25hcb.append('sa: ' + repr(sa))

[?25l:[?12l[?25hcb.append('psa1: ' + repr(psa1))

[?25l:[?12l[?25hcb.append('psa2: ' + repr(psa2))

[?25l:[?12l[?25hcb.append('psa3: ' + repr(psa3))

[?25l:[?12l[?25hcb.append('psa4: ' + repr(psa4))

[?25l:[?12l[?25hcb.append('psa5: ' + repr(psa5))

[?25l:[?12l[?25hcb.append('psa6: ' + repr(psa6))

[?25l:[?12l[?25hcb.append('psa7: ' + repr(psa7))

[?25l:[?12l[?25hcb.append('psa8: ' + repr(psa8))

[?25l:[?12l[?25hcb.append('psa9: ' + repr(psa9))

[?25l:[?12l[?25hcb.append('psaA: ' + repr(psaA))

[?25l:[?12l[?25hcb.append('psaB: ' + repr(psaB))

[?25l:[?12l[?25hcb.append('psaC: ' + repr(psaC))

[?25l:[?12l[?25h

[?25l:[?12l[?25hpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l:[?12l[?25hpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l:[?12l[?25hpsar.self['rec'] = psar

[?25l:[?12l[?25hpsar.self['self'] = psar.self

[?25l:[?12l[?25hpsar.self['args'] = psar.args

[?25l:[?12l[?25h

[?25l:[?12l[?25htry:

[?25l:[?12l[?25h    cb.append('psar: ' + repr(psar))

[?25l:[?12l[?25hexcept Exception:

[?25l:[?12l[?25h    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put ='s(a): '.string(py3eval('a'))

[?25l:[?12l[?25h:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l:[?12l[?25h:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l:[?12l[?25h:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l:[?12l[?25h:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l:[?12l[?25h:$put ='s(sa): '.string(py3eval('sa'))

[?25l:[?12l[?25h:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l:[?12l[?25h:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l:[?12l[?25h:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l:[?12l[?25h:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l:[?12l[?25h:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l:[?12l[?25h:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l:[?12l[?25h:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l:[?12l[?25h:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l:[?12l[?25h:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l:[?12l[?25h:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l:[?12l[?25h:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l:[?12l[?25h:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l:[?12l[?25h:   let d = {'f': py3eval(v)}

[?25l:[?12l[?25h:   $put ='d.'.v.'(): '.string(d.f())

[?25l:[?12l[?25h:endfor

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a()', a, )

[?25l:[?12l[?25h:py3 ecall('pa1()', pa1, )

[?25l:[?12l[?25h:py3 ecall('pa2()', pa2, )

[?25l:[?12l[?25h:py3 ecall('pa3()', pa3, )

[?25l:[?12l[?25h:py3 ecall('pa4()', pa4, )

[?25l:[?12l[?25h:py3 ecall('sa()', sa, )

[?25l:[?12l[?25h:py3 ecall('psa1()', psa1, )

[?25l:[?12l[?25h:py3 ecall('psa2()', psa2, )

[?25l:[?12l[?25h:py3 ecall('psa3()', psa3, )

[?25l:[?12l[?25h:py3 ecall('psa4()', psa4, )

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, 43)', a, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l:[?12l[?25h:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l:[?12l[?25h:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l:[?12l[?25h:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l:[?12l[?25h:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l:[?12l[?25h:

[?25l:[?12l[?25h:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l:[?12l[?25h:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef s(v):

[?25l:[?12l[?25h    if v is None:

[?25l:[?12l[?25h        return repr(v)

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        return str(vim.Function('string')(v), 'utf-8')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.args: ' + s(a.args))

[?25l:[?12l[?25hcb.append('pa1.args: ' + s(pa1.args))

[?25l:[?12l[?25hcb.append('pa2.args: ' + s(pa2.args))

[?25l:[?12l[?25hcb.append('pa3.args: ' + s(pa3.args))

[?25l:[?12l[?25hcb.append('pa4.args: ' + s(pa4.args))

[?25l:[?12l[?25hcb.append('sa.args: ' + s(sa.args))

[?25l:[?12l[?25hcb.append('psa1.args: ' + s(psa1.args))

[?25l:[?12l[?25hcb.append('psa2.args: ' + s(psa2.args))

[?25l:[?12l[?25hcb.append('psa3.args: ' + s(psa3.args))

[?25l:[?12l[?25hcb.append('psa4.args: ' + s(psa4.args))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.self: ' + s(a.self))

[?25l:[?12l[?25hcb.append('pa1.self: ' + s(pa1.self))

[?25l:[?12l[?25hcb.append('pa2.self: ' + s(pa2.self))

[?25l:[?12l[?25hcb.append('pa3.self: ' + s(pa3.self))

[?25l:[?12l[?25hcb.append('pa4.self: ' + s(pa4.self))

[?25l:[?12l[?25hcb.append('sa.self: ' + s(sa.self))

[?25l:[?12l[?25hcb.append('psa1.self: ' + s(psa1.self))

[?25l:[?12l[?25hcb.append('psa2.self: ' + s(psa2.self))

[?25l:[?12l[?25hcb.append('psa3.self: ' + s(psa3.self))

[?25l:[?12l[?25hcb.append('psa4.self: ' + s(psa4.self))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.name: ' + s(a.name))

[?25l:[?12l[?25hcb.append('pa1.name: ' + s(pa1.name))

[?25l:[?12l[?25hcb.append('pa2.name: ' + s(pa2.name))

[?25l:[?12l[?25hcb.append('pa3.name: ' + s(pa3.name))

[?25l:[?12l[?25hcb.append('pa4.name: ' + s(pa4.name))

[?25l:[?12l[?25hcb.append('sa.name: ' + s(sa.name))

[?25l:[?12l[?25hcb.append('psa1.name: ' + s(psa1.name))

[?25l:[?12l[?25hcb.append('psa2.name: ' + s(psa2.name))

[?25l:[?12l[?25hcb.append('psa3.name: ' + s(psa3.name))

[?25l:[?12l[?25hcb.append('psa4.name: ' + s(psa4.name))

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l:[?12l[?25hcb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l:[?12l[?25hcb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l:[?12l[?25hcb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l:[?12l[?25hcb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l:[?12l[?25hcb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l:[?12l[?25hcb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l:[?12l[?25hcb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l:[?12l[?25hcb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l:[?12l[?25hcb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l:[?12l[?25hcb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l:[?12l[?25hcb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l:[?12l[?25hcb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l:[?12l[?25hcb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l:[?12l[?25hcb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l:[?12l[?25hcb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l:[?12l[?25hcb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l:[?12l[?25hcb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel s

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel a

[?25l:[?12l[?25hdel pa1

[?25l:[?12l[?25hdel pa2

[?25l:[?12l[?25hdel pa3

[?25l:[?12l[?25hdel pa4

[?25l:[?12l[?25hdel sa

[?25l:[?12l[?25hdel psa1

[?25l:[?12l[?25hdel psa2

[?25l:[?12l[?25hdel psa3

[?25l:[?12l[?25hdel psa4

[?25l:[?12l[?25hdel psa5

[?25l:[?12l[?25hdel psa6

[?25l:[?12l[?25hdel psa7

[?25l:[?12l[?25hdel psa8

[?25l:[?12l[?25hdel psa9

[?25l:[?12l[?25hdel psaA

[?25l:[?12l[?25hdel psaB

[?25l:[?12l[?25hdel psaC

[?25l:[?12l[?25hdel psar

[?25l:[?12l[?25h

[?25l:[?12l[?25hdel ecall

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test stdout/stderr

[?25l:[?12l[?25h:redir => messages

[?25l:[?12l[?25h:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l:[?12l[?25h:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l:[?12l[?25h:py3 sys.stdout.writelines(iter('abcA'))

[?25l:[?12l[?25h:py3 sys.stderr.writelines(iter('abcB'))

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l:[?12l[?25h:" Test subclassing

[?25l:[?12l[?25h:fun Put(...)

[?25l:[?12l[?25h:   $put =string(a:000)

[?25l:[?12l[?25h:   return a:000

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hclass DupDict(vim.Dictionary):

[?25l:[?12l[?25h    def __setitem__(self, key, value):

[?25l:[?12l[?25h        super(DupDict, self).__setitem__(key, value)

[?25l:[?12l[?25h        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l:[?12l[?25hdd = DupDict()

[?25l:[?12l[?25hdd['a'] = 'b'

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupList(vim.List):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        return [super(DupList, self).__getitem__(idx)] * 2

[?25l:[?12l[?25h

[?25l:[?12l[?25hdl = DupList()

[?25l:[?12l[?25hdl2 = DupList(iter('abcC'))

[?25l:[?12l[?25hdl.extend(dl2[0])

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass DupFun(vim.Function):

[?25l:[?12l[?25h    def __call__(self, arg):

[?25l:[?12l[?25h        return super(DupFun, self).__call__(arg, arg)

[?25l:[?12l[?25h

[?25l:[?12l[?25hdf = DupFun('Put')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:$put =string(sort(keys(py3eval('dd'))))

[?25l:[?12l[?25h:$put =string(py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dl2'))

[?25l:[?12l[?25h:$put =string(py3eval('df(2)'))

[?25l:[?12l[?25h:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l:[?12l[?25h:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l:[?12l[?25h:$put =string(py3eval('df'))

[?25l:[?12l[?25h:delfunction Put

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel DupDict

[?25l:[?12l[?25hdel DupList

[?25l:[?12l[?25hdel DupFun

[?25l:[?12l[?25hdel dd

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel dl2

[?25l:[?12l[?25hdel df

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test chdir

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25himport os

[?25l:[?12l[?25hfnamemodify = vim.Function('fnamemodify')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hos.chdir('..')

[?25l:[?12l[?25hpath = fnamemodify('.', ':p:h:t')

[?25l:[?12l[?25hif path != b'src':

[?25l:[?12l[?25h  # Running tests from a shadow directory, so move up anot

her level

[?25l:[?12l[?25h  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l:[?12l[?25h  # slicing to remove the leading path and path separator

[?25l:[?12l[?25h  os.chdir('..')

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l:[?12l[?25h  os.chdir(path)

[?25l:[?12l[?25helse:

[?25l:[?12l[?25h  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25h  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l:[?12l[?25hdel path

[?25l:[?12l[?25hos.chdir('testdir')

[?25l:[?12l[?25hcb.append(str(fnamemodify('.', ':p:h:t')))

[?25l:[?12l[?25hcb.append(vim.eval('@%'))

[?25l:[?12l[?25hdel fnamemodify

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test errors

[?25l:[?12l[?25h:fun F() dict

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25h:fun D()

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hd = vim.Dictionary()

[?25l:[?12l[?25hned = vim.Dictionary(foo='bar', baz='abcD')

[?25l:[?12l[?25hdl = vim.Dictionary(a=1)

[?25l:[?12l[?25hdl.locked = True

[?25l:[?12l[?25hl = vim.List()

[?25l:[?12l[?25hll = vim.List('abcE')

[?25l:[?12l[?25hll.locked = True

[?25l:[?12l[?25hnel = vim.List('abcO')

[?25l:[?12l[?25hf = vim.Function('string')

[?25l:[?12l[?25hfd = vim.Function('F')

[?25l:[?12l[?25hfdel = vim.Function('D')

[?25l:[?12l[?25hvim.command('delfunction D')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef subexpr_test(expr, name, subexprs):

[?25l:[?12l[?25h    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l:[?12l[?25h    for subexpr in subexprs:

[?25l:[?12l[?25h        ee(expr % subexpr)

[?25l:[?12l[?25h    cb.append('<<< Finished')

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef stringtochars_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, 'StringToChars', (

[?25l:[?12l[?25h        '1',       # Fail type checks

[?25l:[?12l[?25h        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l:[?12l[?25h        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass Mapping(object):

[?25l:[?12l[?25h    def __init__(self, d):

[?25l:[?12l[?25h        self.d = d

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __getitem__(self, key):

[?25l:[?12l[?25h        return self.d[key]

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return self.d.keys()

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def items(self):

[?25l:[?12l[?25h        return self.d.items()

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompyobject_test(expr, recurse=True):

[?25l:[?12l[?25h    # pydict_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % '{%s : 1}')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l:[?12l[?25h    # pymap_to_tv

[?25l:[?12l[?25h    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l:[?12l[?25h    if recurse:

[?25l:[?12l[?25h        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l:[?12l[?25h    # pyseq_to_tv

[?25l:[?12l[?25h    iter_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l:[?12l[?25h        'None',                 # Not conversible

[?25l:[?12l[?25h        '{b"": 1}',             # Empty key not allowe

d
[?25l:[?12l[?25h        '{"": 1}',              # Same, but with unico

de object

[?25l:[?12l[?25h        'FailingMapping()',     #

[?25l:[?12l[?25h        'FailingMappingKey()',  #

[?25l:[?12l[?25h        'FailingNumber()',      #

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef convertfrompymapping_test(expr):

[?25l:[?12l[?25h    convertfrompyobject_test(expr)

[?25l:[?12l[?25h    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef iter_test(expr):

[?25l:[?12l[?25h    return subexpr_test(expr, '*Iter*', (

[?25l:[?12l[?25h        'FailingIter()',

[?25l:[?12l[?25h        'FailingIterNext()',

[?25l:[?12l[?25h    ))

[?25l:[?12l[?25h

[?25l:[?12l[?25hdef number_test(expr, natural=False, unsigned=False):

[?25l:[?12l[?25h    if natural:

[?25l:[?12l[?25h        unsigned = True

[?25l:[?12l[?25h    return subexpr_test(expr, 'NumberToLong', (

[?25l:[?12l[?25h        '[]',

[?25l:[?12l[?25h        'None',

[?25l:[?12l[?25h    ) + (('-1',) if unsigned else ())

[?25l:[?12l[?25h    + (('0',) if natural else ()))

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingTrue(object):

[?25l:[?12l[?25h    def __bool__(self):

[?25l:[?12l[?25h        raise NotImplementedError('bool')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIter(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        raise NotImplementedError('iter')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNext(object):

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        raise NotImplementedError('next')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingIterNextN(object):

[?25l:[?12l[?25h    def __init__(self, n):

[?25l:[?12l[?25h        self.n = n

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __iter__(self):

[?25l:[?12l[?25h        return self

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def __next__(self):

[?25l:[?12l[?25h        if self.n:

[?25l:[?12l[?25h            self.n -= 1

[?25l:[?12l[?25h            return 1

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            raise NotImplementedError('next N')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMappingKey(object):

[?25l:[?12l[?25h    def __getitem__(self, item):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mappingkey'

)
[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        return list("abcH")

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingMapping(object):

[?25l:[?12l[?25h    def __getitem__(self):

[?25l:[?12l[?25h        raise NotImplementedError('getitem:mapping')

[?25l:[?12l[?25h

[?25l:[?12l[?25h    def keys(self):

[?25l:[?12l[?25h        raise NotImplementedError('keys')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingList(list):

[?25l:[?12l[?25h    def __getitem__(self, idx):

[?25l:[?12l[?25h        if i == 2:

[?25l:[?12l[?25h            raise NotImplementedError('getitem:list')

[?25l:[?12l[?25h        else:

[?25l:[?12l[?25h            return super(FailingList, self).__getitem_

_(idx)

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass NoArgsCall(object):

[?25l:[?12l[?25h    def __call__(self):

[?25l:[?12l[?25h        pass

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingCall(object):

[?25l:[?12l[?25h    def __call__(self, path):

[?25l:[?12l[?25h        raise NotImplementedError('call')

[?25l:[?12l[?25h

[?25l:[?12l[?25hclass FailingNumber(object):

[?25l:[?12l[?25h    def __int__(self):

[?25l:[?12l[?25h        raise NotImplementedError('int')

[?25l:[?12l[?25h

[?25l:[?12l[?25hcb.append("> Output")

[?25l:[?12l[?25hcb.append(">> OutputSetattr")

[?25l:[?12l[?25hee('del sys.stdout.softspace')

[?25l:[?12l[?25hnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l:[?12l[?25hee('assert sys.stdout.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stdout.seekable()==False')

[?25l:[?12l[?25hee('sys.stdout.close()')

[?25l:[?12l[?25hee('sys.stdout.flush()')

[?25l:[?12l[?25hee('assert sys.stderr.isatty()==False')

[?25l:[?12l[?25hee('assert sys.stderr.seekable()==False')

[?25l:[?12l[?25hee('sys.stderr.close()')

[?25l:[?12l[?25hee('sys.stderr.flush()')

[?25l:[?12l[?25hee('sys.stdout.attr = None')

[?25l:[?12l[?25hcb.append(">> OutputWrite")

[?25l:[?12l[?25hee('assert sys.stdout.writable()==True')

[?25l:[?12l[?25hee('assert sys.stdout.readable()==False')

[?25l:[?12l[?25hee('assert sys.stderr.writable()==True')

[?25l:[?12l[?25hee('assert sys.stderr.readable()==False')

[?25l:[?12l[?25hee('assert sys.stdout.closed()==False')

[?25l:[?12l[?25hee('assert sys.stderr.closed()==False')

[?25l:[?12l[?25hee('assert sys.stdout.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stderr.errors=="strict"')

[?25l:[?12l[?25hee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l:[?12l[?25hee('sys.stdout.write(None)')

[?25l:[?12l[?25hcb.append(">> OutputWriteLines")

[?25l:[?12l[?25hee('sys.stdout.writelines(None)')

[?25l:[?12l[?25hee('sys.stdout.writelines([1])')

[?25l:[?12l[?25hiter_test('sys.stdout.writelines(%s)')

[?25l:[?12l[?25hcb.append("> VimCommand")

[?25l:[?12l[?25hstringtochars_test('vim.command(%s)')

[?25l:[?12l[?25hee('vim.command("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimToPython")

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEval")

[?25l:[?12l[?25hstringtochars_test('vim.eval(%s)')

[?25l:[?12l[?25hee('vim.eval("", FailingTrue())')

[?25l:[?12l[?25h#! Not checked: everything: needs errors in internal p

ython functions

[?25l:[?12l[?25hcb.append("> VimEvalPy")

[?25l:[?12l[?25hstringtochars_test('vim.bindeval(%s)')

[?25l:[?12l[?25hee('vim.eval("", 2)')

[?25l:[?12l[?25h#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l:[?12l[?25hcb.append("> VimStrwidth")

[?25l:[?12l[?25hstringtochars_test('vim.strwidth(%s)')

[?25l:[?12l[?25hcb.append("> VimForeachRTP")

[?25l:[?12l[?25hee('vim.foreach_rtp(None)')

[?25l:[?12l[?25hee('vim.foreach_rtp(NoArgsCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(FailingCall())')

[?25l:[?12l[?25hee('vim.foreach_rtp(int, 2)')

[?25l:[?12l[?25hcb.append('> import')

[?25l:[?12l[?25hold_rtp = vim.options['rtp']

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l:[?12l[?25hee('import xxx_no_such_module_xxx')

[?25l:[?12l[?25hee('import failing_import')

[?25l:[?12l[?25hee('import failing')

[?25l:[?12l[?25hvim.options['rtp'] = old_rtp

[?25l:[?12l[?25hdel old_rtp

[?25l:[?12l[?25hcb.append("> Options")

[?25l:[?12l[?25hcb.append(">> OptionsItem")

[?25l:[?12l[?25hee('vim.options["abcQ"]')

[?25l:[?12l[?25hee('vim.options[""]')

[?25l:[?12l[?25hstringtochars_test('vim.options[%s]')

[?25l:[?12l[?25hcb.append(">> OptionsContains")

[?25l:[?12l[?25hstringtochars_test('%s in vim.options')

[?25l:[?12l[?25hcb.append("> Dictionary")

[?25l:[?12l[?25hcb.append(">> DictionaryConstructor")

[?25l:[?12l[?25hee('vim.Dictionary("abcI")')

[?25l:[?12l[?25h##! Not checked: py_dict_alloc failure

[?25l:[?12l[?25hcb.append(">> DictionarySetattr")

[?25l:[?12l[?25hee('del d.locked')

[?25l:[?12l[?25hee('d.locked = FailingTrue()')

[?25l:[?12l[?25hee('vim.vvars.locked = False')

[?25l:[?12l[?25hee('d.scope = True')

[?25l:[?12l[?25hee('d.xxx = True')

[?25l:[?12l[?25hcb.append(">> _DictionaryItem")

[?25l:[?12l[?25hee('d.get("a", 2, 3)')

[?25l:[?12l[?25hstringtochars_test('d.get(%s)')

[?25l:[?12l[?25hee('d.pop("a")')

[?25l:[?12l[?25hee('dl.pop("a")')

[?25l:[?12l[?25hcb.append(">> DictionaryContains")

[?25l:[?12l[?25hee('"" in d')

[?25l:[?12l[?25hee('0 in d')

[?25l:[?12l[?25hcb.append(">> DictionaryIterNext")

[?25l:[?12l[?25hee('for i in ned: ned["a"] = 1')

[?25l:[?12l[?25hdel i

[?25l:[?12l[?25hcb.append(">> DictionaryAssItem")

[?25l:[?12l[?25hee('dl["b"] = 1')

[?25l:[?12l[?25hstringtochars_test('d[%s] = 1')

[?25l:[?12l[?25hconvertfrompyobject_test('d["a"] = %s')

[?25l:[?12l[?25hcb.append(">> DictionaryUpdate")

[?25l:[?12l[?25hcb.append(">>> kwargs")

[?25l:[?12l[?25hcb.append(">>> iter")

[?25l:[?12l[?25hee('d.update(FailingMapping())')

[?25l:[?12l[?25hee('d.update([FailingIterNext()])')

[?25l:[?12l[?25hee('d.update([FailingIterNextN(1)])')

[?25l:[?12l[?25hiter_test('d.update(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update(%s)')

[?25l:[?12l[?25hstringtochars_test('d.update(((%s, 0),))')

[?25l:[?12l[?25hconvertfrompyobject_test('d.update((("a", %s),))')

[?25l:[?12l[?25hcb.append(">> DictionaryPopItem")

[?25l:[?12l[?25hee('d.popitem(1, 2)')

[?25l:[?12l[?25hcb.append(">> DictionaryHasKey")

[?25l:[?12l[?25hee('d.has_key()')

[?25l:[?12l[?25hcb.append("> List")

[?25l:[?12l[?25hcb.append(">> ListConstructor")

[?25l:[?12l[?25hee('vim.List(1, 2)')

[?25l:[?12l[?25hee('vim.List(a=1)')

[?25l:[?12l[?25hiter_test('vim.List(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('vim.List([%s])')

[?25l:[?12l[?25hcb.append(">> ListItem")

[?25l:[?12l[?25hee('l[1000]')

[?25l:[?12l[?25hcb.append(">> ListAssItem")

[?25l:[?12l[?25hee('ll[1] = 2')

[?25l:[?12l[?25hee('l[1000] = 3')

[?25l:[?12l[?25hcb.append(">> ListAssSlice")

[?25l:[?12l[?25hee('ll[1:100] = "abcJ"')

[?25l:[?12l[?25hiter_test('l[:] = %s')

[?25l:[?12l[?25hee('nel[1:10:2]  = "abcK"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:10:2]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[1:1:-1]  = "a"')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hee('nel[:] = FailingIterNextN(2)')

[?25l:[?12l[?25hcb.append(repr(tuple(nel)))

[?25l:[?12l[?25hconvertfrompyobject_test('l[:] = [%s]')

[?25l:[?12l[?25hcb.append(">> ListConcatInPlace")

[?25l:[?12l[?25hiter_test('l.extend(%s)')

[?25l:[?12l[?25hconvertfrompyobject_test('l.extend([%s])')

[?25l:[?12l[?25hcb.append(">> ListSetattr")

[?25l:[?12l[?25hee('del l.locked')

[?25l:[?12l[?25hee('l.locked = FailingTrue()')

[?25l:[?12l[?25hee('l.xxx = True')

[?25l:[?12l[?25hcb.append("> Function")

[?25l:[?12l[?25hcb.append(">> FunctionConstructor")

[?25l:[?12l[?25hcb.append(">>> FunctionConstructor")

[?25l:[?12l[?25hee('vim.Function("123")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx#non#existent#function#xxx")')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l:[?12l[?25hee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l:[?12l[?25hcb.append(">>> FunctionNew")

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf")')

[?25l:[?12l[?25hee('vim.Function("tr", args=427423)')

[?25l:[?12l[?25hee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l:[?12l[?25hee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l:[?12l[?25hee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l:[?12l[?25hee('vim.Function("tr", "")')

[?25l:[?12l[?25hcb.append(">> FunctionCall")

[?25l:[?12l[?25hconvertfrompyobject_test('f(%s)')

[?25l:[?12l[?25hconvertfrompymapping_test('fd(self=%s)')

[?25l:[?12l[?25hcb.append("> TabPage")

[?25l:[?12l[?25hcb.append(">> TabPageAttr")

[?25l:[?12l[?25hee('vim.current.tabpage.xxx')

[?25l:[?12l[?25hcb.append("> TabList")

[?25l:[?12l[?25hcb.append(">> TabListItem")

[?25l:[?12l[?25hee('vim.tabpages[1000]')

[?25l:[?12l[?25hcb.append("> Window")

[?25l:[?12l[?25hcb.append(">> WindowAttr")

[?25l:[?12l[?25hee('vim.current.window.xxx')

[?25l:[?12l[?25hcb.append(">> WindowSetattr")

[?25l:[?12l[?25hee('vim.current.window.buffer = 0')

[?25l:[?12l[?25hee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l:[?12l[?25hee('vim.current.window.cursor = True')

[?25l:[?12l[?25hnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l:[?12l[?25hnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l:[?12l[?25hee('vim.current.window.xxxxxx = True')

[?25l:[?12l[?25hcb.append("> WinList")

[?25l:[?12l[?25hcb.append(">> WinListItem")

[?25l:[?12l[?25hee('vim.windows[1000]')

[?25l:[?12l[?25hcb.append("> Buffer")

[?25l:[?12l[?25hcb.append(">> StringToLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = "\\na"')

[?25l:[?12l[?25hee('vim.current.buffer[0] = b"\\na"')

[?25l:[?12l[?25hcb.append(">> SetBufferLine (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[0] = True')

[?25l:[?12l[?25hcb.append(">> SetBufferLineList (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer[:] = True')

[?25l:[?12l[?25hee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l:[?12l[?25hcb.append(">> InsertBufferLines (indirect)")

[?25l:[?12l[?25hee('vim.current.buffer.append(None)')

[?25l:[?12l[?25hee('vim.current.buffer.append(["\\na", "bc"])')

[?25l:[?12l[?25hee('vim.current.buffer.append("\\nbc")')

[?25l:[?12l[?25hcb.append(">> RBItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000]')

[?25l:[?12l[?25hcb.append(">> RBAsItem")

[?25l:[?12l[?25hee('vim.current.buffer[100000000] = ""')

[?25l:[?12l[?25hcb.append(">> BufferAttr")

[?25l:[?12l[?25hee('vim.current.buffer.xxx')

[?25l:[?12l[?25hcb.append(">> BufferSetattr")

[?25l:[?12l[?25hee('vim.current.buffer.name = True')

[?25l:[?12l[?25hee('vim.current.buffer.xxx = True')

[?25l:[?12l[?25hcb.append(">> BufferMark")

[?25l:[?12l[?25hee('vim.current.buffer.mark(0)')

[?25l:[?12l[?25hee('vim.current.buffer.mark("abcM")')

[?25l:[?12l[?25hee('vim.current.buffer.mark("!")')

[?25l:[?12l[?25hcb.append(">> BufferRange")

[?25l:[?12l[?25hee('vim.current.buffer.range(1, 2, 3)')

[?25l:[?12l[?25hcb.append("> BufMap")

[?25l:[?12l[?25hcb.append(">> BufMapItem")

[?25l:[?12l[?25hee('vim.buffers[100000000]')

[?25l:[?12l[?25hnumber_test('vim.buffers[%s]', natural=True)

[?25l:[?12l[?25hcb.append("> Current")

[?25l:[?12l[?25hcb.append(">> CurrentGetattr")

[?25l:[?12l[?25hee('vim.current.xxx')

[?25l:[?12l[?25hcb.append(">> CurrentSetattr")

[?25l:[?12l[?25hee('vim.current.line = True')

[?25l:[?12l[?25hee('vim.current.buffer = True')

[?25l:[?12l[?25hee('vim.current.window = True')

[?25l:[?12l[?25hee('vim.current.tabpage = True')

[?25l:[?12l[?25hee('vim.current.xxx = True')

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ned

[?25l:[?12l[?25hdel dl

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdel ll

[?25l:[?12l[?25hdel nel

[?25l:[?12l[?25hdel f

[?25l:[?12l[?25hdel fd

[?25l:[?12l[?25hdel fdel

[?25l:[?12l[?25hdel subexpr_test

[?25l:[?12l[?25hdel stringtochars_test

[?25l:[?12l[?25hdel Mapping

[?25l:[?12l[?25hdel convertfrompyobject_test

[?25l:[?12l[?25hdel convertfrompymapping_test

[?25l:[?12l[?25hdel iter_test

[?25l:[?12l[?25hdel number_test

[?25l:[?12l[?25hdel FailingTrue

[?25l:[?12l[?25hdel FailingIter

[?25l:[?12l[?25hdel FailingIterNext

[?25l:[?12l[?25hdel FailingIterNextN

[?25l:[?12l[?25hdel FailingMapping

[?25l:[?12l[?25hdel FailingMappingKey

[?25l:[?12l[?25hdel FailingList

[?25l:[?12l[?25hdel NoArgsCall

[?25l:[?12l[?25hdel FailingCall

[?25l:[?12l[?25hdel FailingNumber

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction F

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test import

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hsys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l:[?12l[?25hsys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l:[?12l[?25hvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l:[?12l[?25hl = []

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    l.append(os.path.relpath(path))

[?25l:[?12l[?25hvim.foreach_rtp(callback)

[?25l:[?12l[?25hcb.append(repr(l))

[?25l:[?12l[?25hdel l

[?25l:[?12l[?25hdef callback(path):

[?25l:[?12l[?25h    return os.path.relpath(path)

[?25l:[?12l[?25hcb.append(repr(vim.foreach_rtp(callback)))

[?25l:[?12l[?25hdel callback

[?25l:[?12l[?25hfrom module import dir as d

[?25l:[?12l[?25hfrom modulex import ddir

[?25l:[?12l[?25hcb.append(d + ',' + ddir)

[?25l:[?12l[?25himport before

[?25l:[?12l[?25hcb.append(before.dir)

[?25l:[?12l[?25himport after

[?25l:[?12l[?25hcb.append(after.dir)

[?25l:[?12l[?25himport topmodule as tm

[?25l:[?12l[?25himport topmodule.submodule as tms

[?25l:[?12l[?25himport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l:[?12l[?25hcb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l:[?12l[?25hcb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l:[?12l[?25hdel before

[?25l:[?12l[?25hdel after

[?25l:[?12l[?25hdel d

[?25l:[?12l[?25hdel ddir

[?25l:[?12l[?25hdel tm

[?25l:[?12l[?25hdel tms

[?25l:[?12l[?25hdel tmsss

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Test exceptions

[?25l:[?12l[?25h:fun Exe(e)

[?25l:[?12l[?25h:   execute a:e

[?25l:[?12l[?25h:endfun

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hExe = vim.bindeval('function("Exe")')

[?25l:[?12l[?25hee('vim.command("throw \'abcN\'")')

[?25l:[?12l[?25hee('Exe("throw \'def\'")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l:[?12l[?25hee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l:[?12l[?25hee('vim.eval("xxx_unknown_function_xxx()")')

[?25l:[?12l[?25hee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l:[?12l[?25hdel Exe

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:delfunction Exe

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdef test_keyboard_interrupt():

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('while 1 | endwhile')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('Caught KeyboardInterrupt')

[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('!!!!!!!! No exception')

[?25l:[?12l[?25h    try:

[?25l:[?12l[?25h        vim.command('$ put =\'Running :put\'')

[?25l:[?12l[?25h    except KeyboardInterrupt:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l:[?12l[?25h    except Exception:

[?25l:[?12l[?25h        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l:[?12l[?25h    else:

[?25l:[?12l[?25h        cb.append('No exception')

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:debuggreedy

[?25l:[?12l[?25h:call inputsave()

[?25l:[?12l[?25h:call feedkeys("s\ns\ns\ns\nq\n")

[?25l:[?12l[?25h:redir => output

[?25l:[?12l[?25h:debug silent! py3 test_keyboard_interrupt()

[?25l:[?12l[?25h:redir END

[?25l:[?12l[?25h:0 debuggreedy

[?25l:[?12l[?25h:call inputrestore()

[?25l:[?12l[?25h:silent $put =output

[?25l:[?12l[?25h:unlet output

[?25l:[?12l[?25h:py3 del test_keyboard_interrupt

[?25l:[?12l[?25h:"

[?25l:[?12l[?25h:" Cleanup

[?25l:[?12l[?25hpy3 << EOF

[?25l:[?12l[?25hdel cb

[?25l:[?12l[?25hdel ee

[?25l:[?12l[?25hdel emsg

[?25l:[?12l[?25hdel sys

[?25l:[?12l[?25hdel os

[?25l:[?12l[?25hdel vim

[?25l:[?12l[?25hEOF

[?25l:[?12l[?25h:endfun
[?25l:   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:[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hfun RunTest()
[?25l
:  [?12l[?25h:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l:  [?12l[?25h:let start = getline(1, '$')

[?25l:  [?12l[?25h:for i in range(checkrefs ? 10 : 1)

[?25l:    [?12l[?25h:   if i != 0

[?25l:      [?12l[?25h:       %d _

[?25l:      [?12l[?25h:       call setline(1, start)

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:   call Test()

[?25l:    [?12l[?25h:   if i == 0

[?25l:      [?12l[?25h:       let result = getline(1, '$')

[?25l:      [?12l[?25h:   endif

[?25l:    [?12l[?25h:endfor

[?25l:  [?12l[?25h:if checkrefs

[?25l:    [?12l[?25h:   %d _

[?25l:    [?12l[?25h:   call setline(1, result)

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h:endfun
[?25l:   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[?12l[?25h[?25l

:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall RunTest()
[?25l8 more lin
3 more lines[?12l[?25h

[?25l"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):jkll',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vimm:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unnknown 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[?12l[?25h[?25l:[?12l[?25hdelfunction RunTest
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunction Test
[?25l[?12l[?25h[?25l:[?12l[?25hcall garbagecollect(1)
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h/^start:/,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for 'directory' option.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset dir=.,~
[?25l[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest1
[?25l"Xtest1" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25h" do an ls of the current dir to find the swap file (should not be there)
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:  !ls .X*.swp >test.out

[?25l:!ls .X*.swp >test.out[?1l>[?12l[?25h[?1049l
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25helse

[?25l:  [?12l[?25h:  r !ls X*.swp >test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25h!echo first line >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l:  [?12l[?25h:" to make the result the same for all systems.

[?25l:  [?12l[?25h:  r!ls .X*.swp

[?25l:  [?12l[?25h:  s/\.*X/X/

[?25l:  [?12l[?25h:  .w >>test.out
[?25l"test.out" 1L, 11C appended

:  [?12l[?25h:  undo

[?25l1 line less; before #1  0 seconds ago

:  [?12l[?25h:else

[?25l:  [?12l[?25h:  !ls X*.swp >>test.out

[?25l:  [?12l[?25h:endif
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest2
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hset dir=./Xtest2,.,~
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25h!ls X*.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l
ls: cannot access 'X*.swp': No such file or directory

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under under >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest.je
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25lsearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest2/Xtest3" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25hset dir=Xtest.je,~
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest2/Xtest3
[?25l"Xtest2/Xtest3" 4L, 70C[?12l[?25h[?25l:[?12l[?25hswap
[?25lXtest.je/Xtest3.swp[?12l[?25h[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3 >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest.je >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" Create a link from test25.dir to the current directory.
[?25l[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!ln -s . test25.dir
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h" Create tags.text, with the current directory name inserted.
[?25lTest 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
[?12l[?25h[?25l
/[?12l[?25htags line
[?25lhis 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:
[?12l[?25h[?25l:[?12l[?25hr !pwd
[?25l[?12l[?25h[?25lSTARTTEST
: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
[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25htest
[?25l
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?12l[?25h[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir/test25.dir/te@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-nox/testdir/test25.dir/teest25.in /^#define  SECTION_OFF  3$/[?12l[?25h[?25l

:[?12l[?25h.w! tags.test
[?25l"tags.test" [New File] 1 line, 112 characters written[?12l[?25h[?25l:[?12l[?25h" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?12l[?25h[?25l:[?12l[?25h" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?12l[?25h[?25l:[?12l[?25h" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?12l[?25h[?25l:[?12l[?25hset tags=tags.test
[?25l[?12l[?25h[?25l/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?12l[?25h#[?25lefine  SECTION_OFF  3[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 23 characters written[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir tags.test
[?25l[?1l>[?12l[?25h[?1049l
[No write since last change]

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lThis is a test of the script language.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp nomore viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hlang mess C
[?25l[?12l[?25h[?25l:[?12l[?25hso test49.vim
[?25lError 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"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"/tmp/vOMMAOh/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/1[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/2[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/2"' -c 'breakad

dfile 8 /tmp/vOMMAOh/1' -S /tmp/vOMMAOh/1[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/3[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/4[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/4"' -c 'breakad

dfile 4 /tmp/vOMMAOh/3' -S /tmp/vOMMAOh/3[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/5[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/6[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/6"' -c 'breakad

dfunc 7 F' -S /tmp/vOMMAOh/5[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/7[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/8[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/8"' -c 'breakad

dfunc 3 G' -S /tmp/vOMMAOh/7[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/9[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/10[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/10"' -S /tmp/vOMMA

Oh/9[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/11[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/12[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/12"' -S /tmp/vOMMA

Oh/11[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/13[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/14[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/14"' -S /tmp/vOMMA

Oh/13[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/15[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/16[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/16"' -S /tmp/vOMMA

Oh/15[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/17[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/18[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/18"' -S /tmp/vOMMA

Oh/17[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/19[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/20[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/20"' -S /tmp/vOMMA

Oh/19[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/21[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/22[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/22"' -S /tmp/vOMMA

Oh/21[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/23[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/24[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/24"' -S /tmp/vOMMA

Oh/23[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/25[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/26[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/26"' -S /tmp/vOMMA

Oh/25[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/27[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/28[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/28"' -S /tmp/vOMMA

Oh/27[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/29[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/30[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/30"' -S /tmp/vOMMA

Oh/29[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/31[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/32[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/32"' -S /tmp/vOMMA

Oh/31[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/33[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/34[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/34"' -S /tmp/vOMMA

Oh/33[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/36[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/36"' -S /tmp/vOMMA

Oh/35[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/37[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/38[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/38"' -S /tmp/vOMMA

Oh/37[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/39[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/40[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vOMMAOh/39[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/41[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/42[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/42"' -S /tmp/vOMMA

Oh/41[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/43[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/44[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/44"' -S /tmp/vOMMA

Oh/43[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/46[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/46"' -S /tmp/vOMMA

Oh/45[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vOMMAOh/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/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/vOMMAOh/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/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/vOMMAOh/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/50[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vOMMAOh/51[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/51"' -S /tmp/vOMMAOh/50[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669Ctest49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/52[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/53[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/53"' -S /tmp/vOMMA

Oh/52[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/54[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/55[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMAOh/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vOMMAOh/54' -c 'breakadd file 31

/tmp/vOMMAOh/54' -S /tmp/vOMMAOh/54[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/56[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/57[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/57"' -S /tmp/vOMMA

Oh/56[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/59[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMA

Oh/59"' -c 'breakadd func 16 C' -S /tmp/vOMMAOh/58[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/61[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMA

Oh/61"' -c 'breakadd func 16 B' -S /tmp/vOMMAOh/60[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/63[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMAOh/

63"' -c 'breakadd func 16 R' -S /tmp/vOMMAOh/62[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/65[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/65"' -c 'breakadd

func 16 F' -S /tmp/vOMMAOh/64[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/66[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/67[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMA

Oh/67"' -c 'breakadd func 16 E' -S /tmp/vOMMAOh/66[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/68[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/69[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMAOh/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vOMMAOh/68[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/70[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/71[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMA

Oh/71"' -c 'breakadd func 16 T' -S /tmp/vOMMAOh/70[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vOMMAOh/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/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/vOMMAOh/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/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/vOMMAOh/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/76[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
:!>/tmp/vOMMAOh/77[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/77"' -S /tmp/vOMMAOh/76[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/78[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/79[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/79"' -S /tmp/vOMMAOh/78[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/80[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/81[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/81"' -S /tmp/vOMMAOh/80[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/82[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/83[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/83"' -S /tmp/vOMMAOh/82[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/84[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/85[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/85"' -c 'breakadd file 4 /tmp/vOMMAOh

/84' -S /tmp/vOMMAOh/84[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/86[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/87[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/87"' -S /tmp/vOMMAOh/86[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/88[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/89[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/89"' -S /tmp/vOMMAOh/88[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/91[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/92[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/92"' -S /tmp/vOMMAOh/91[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/93[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vOMMAOh/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/94[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/94"' -S /tmp/vOMMAOh/93[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/95[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vOMMAOh/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/96[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/96"' -S /tmp/vOMMAOh/95[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/97[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vOMMAOh/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/98[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/98"' -S /tmp/vOMMAOh/97[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/99[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vOMMAOh/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/100[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/100"' -S /tmp/vOMMAOh/99[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/101[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/102[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/102"' -S /tmp/vOMMAOh/101[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/103[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vOMMAOh/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/104[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/104"' -S /tmp/vOMMAOh/103[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/105[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vOMMAOh/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/106[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/106"' -S /tmp/vOMMAOh/105[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/107[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vOMMAOh/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/108[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/108"' -S /tmp/vOMMAOh/107[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/109[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vOMMAOh/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/110[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/110"' -S /tmp/vOMMAOh/109[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/111[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/112[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/112"' -S /tmp/vOMMAOh/111[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/113[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vOMMAOh/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/114[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/114"' -S /tmp/vOMMAOh/113[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/115[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vOMMAOh/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/116[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/116"' -S /tmp/vOMMAOh/115[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/117[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vOMMAOh/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/118[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/118"' -S /tmp/vOMMAOh/117[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/119[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vOMMAOh/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/120[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/120"' -S /tmp/vOMMAOh/119[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/121[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vOMMAOh/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/122[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/122"' -S /tmp/vOMMAOh/121[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/123[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vOMMAOh/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/124[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vOMMAOh/124"' -S /tmp/vOMMAOh/123[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/126[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/127[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/127"' -S /tmp/vOMMAOh/126[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/128[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vOMMAOh/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/129[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/129"' -S /tmp/vOMMAOh/128[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/130[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vOMMAOh/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/131[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/131"' -S /tmp/vOMMAOh/130[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/132[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vOMMAOh/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/133[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/133"' -S /tmp/vOMMAOh/132[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/134[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vOMMAOh/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/135[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/135"' -S /tmp/vOMMAOh/134[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/136[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vOMMAOh/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/137[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/137"' -S /tmp/vOMMAOh/136[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/138[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vOMMAOh/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/139[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/139"' -S /tmp/vOMMAOh/138[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/140[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vOMMAOh/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/141[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/141"' -S /tmp/vOMMAOh/140[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/142[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vOMMAOh/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/143[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/143"' -S /tmp/vOMMAOh/142[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/144[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vOMMAOh/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/145[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/145"' -S /tmp/vOMMAOh/144[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/146[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vOMMAOh/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/147[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/147"' -S /tmp/vOMMAOh/146[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/149[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/150[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/150"' -S /tmp/vOMMAOh/149[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/151[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vOMMAOh/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/152[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/152"' -S /tmp/vOMMAOh/151[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/153[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vOMMAOh/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/154[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/154"' -S /tmp/vOMMAOh/153[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/155[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vOMMAOh/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/156[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/156"' -S /tmp/vOMMAOh/155[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/157[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vOMMAOh/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/158[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/158"' -S /tmp/vOMMAOh/157[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/159[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/160[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/160"' -S /tmp/vOMMAOh/159[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/161[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vOMMAOh/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/162[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/162"' -S /tmp/vOMMAOh/161[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/163[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vOMMAOh/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/164[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/164"' -S /tmp/vOMMAOh/163[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/165[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vOMMAOh/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/166[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/166"' -S /tmp/vOMMAOh/165[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/167[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vOMMAOh/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/168[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/168"' -S /tmp/vOMMAOh/167[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/170[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/171[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/171"' -S /tmp/vOMMAOh/170[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/172[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vOMMAOh/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/173[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/173"' -S /tmp/vOMMAOh/172[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/174[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vOMMAOh/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/175[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/175"' -S /tmp/vOMMAOh/174[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/176[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vOMMAOh/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/177[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/177"' -S /tmp/vOMMAOh/176[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/178[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vOMMAOh/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/179[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/179"' -S /tmp/vOMMAOh/178[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/180[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vOMMAOh/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/181[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/181"' -S /tmp/vOMMAOh/180[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/182[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vOMMAOh/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/183[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/183"' -S /tmp/vOMMAOh/182[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/184[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vOMMAOh/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/185[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/185"' -S /tmp/vOMMAOh/184[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/186[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vOMMAOh/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/187[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vOMMAOh/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vOMMAOh/187"' -S /tmp/vOMMAOh/186[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/tmp/vOMMAOh/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vOMMAOh/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vOMMAOh/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vOMMAOh/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vOMMAOh/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/vOMMAOh/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vOMMAOh/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vOMMAOh/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vOMMAOh/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vOMMAOh/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vOMMAOh/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/194[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/194"' -c 'break

add func 4 T' -S /tmp/vOMMAOh/193[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vOMMAOh/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/196[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/196"' -c 'br

eakadd file 115 /tmp/vOMMAOh/195' -c 'breakadd file 225 /tmp/vOMMAOh/195' -S /tm

p/vOMMAOh/195[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/198[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/198"' -c 'break

add file 7 /tmp/vOMMAOh/197' -S /tmp/vOMMAOh/197[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/200[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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/vOMMAOh/

200"' -c 'breakadd file 8 /tmp/vOMMAOh/199' -c 'breakadd file 36 /tmp/vOMMAOh/19

9' -c 'breakadd file 40 /tmp/vOMMAOh/199' -c 'breakadd file 69 /tmp/vOMMAOh/199'

-c 'breakadd file 95 /tmp/vOMMAOh/199' -c 'breakadd file 97 /tmp/vOMMAOh/199' -

S/tmp/vOMMAOh/199[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vOMMAOh/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vOMMAOh/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" Error detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test49.vim:

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"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vOMMAOh/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/203[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/203"' -c 'break

add file 63 /tmp/vOMMAOh/202' -S /tmp/vOMMAOh/202[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/204[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/205[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/205"' -c 'break

add func 8 F' -S /tmp/vOMMAOh/204[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"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/vOMMAOh/206" [New File]
"test49.in" 32L, 705C
"/tmp/vOMMAOh/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/208[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/209[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!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

/vOMMAOh/209"' -c 'breakadd func 2 INT' -S /tmp/vOMMAOh/208[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/210[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/211[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/211"' -S /tmp/vOMM

AOh/210[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"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"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/212[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/213[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/213"' -S /tmp/vOMM

AOh/212[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/214[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/215[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/215"' -c 'break

add file 8 /tmp/vOMMAOh/214' -S /tmp/vOMMAOh/214[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/216[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/217[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/217"' -S /tmp/vOMM

AOh/216[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/218[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/219[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/219"' -S /tmp/vOMM

AOh/218[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/220[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/221[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/221"' -c 'break

add file 7 /tmp/vOMMAOh/220' -S /tmp/vOMMAOh/220[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/222[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/223[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/223"' -c 'break

add func 6 I' -S /tmp/vOMMAOh/222[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/224[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/225[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/225"' -S /tmp/vOMM

AOh/224[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/226[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/227[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/227"' -c 'break

add file 8 /tmp/vOMMAOh/226' -S /tmp/vOMMAOh/226[?1l>[?12l[?25h[?1049l

shell returned 1

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/229[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/229"' -c 'br

eakadd func 1 INT' -S /tmp/vOMMAOh/228[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vOMMAOh/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vOMMAOh/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vOMMAOh/233[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test49.vim:

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/vOMMAOh/235" c[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/vOMMAOh/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vOMMAOh/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"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!echo 'source /tmp/vOMMAOh/0' >/tmp/vOMMAOh/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vOMMAOh/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C

:!>/tmp/vOMMAOh/237[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vOMMAOh/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vOMMAOh/236[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l"/tmp/vOMMAOh/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-tlTJJ2/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9008L, 206669C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue:[?12l[?25h" Go back to this file and append the results from register r.
[?25l#
# 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 \[?12l[?25h[?25l:[?12l[?25hbuf test49.in
[?25l"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:[?12l[?25h
[?25l
83 more lines
*** Test  16: OK (8722)83 more lines[?12l[?25h[?25l:[?12l[?25h/^Results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" make valgrind happy
[?25l[?12l[?25h[?25l:[?12l[?25hredir => funclist
[?25l[?12l[?25h[?25l:[?12l[?25hsilent func
[?25l[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hfor line in split(funclist, "\n")
[?25l
:  [?12l[?25h:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l:  [?12l[?25h:  if name != ''

[?25l:    [?12l[?25h:    exe "delfunc " . name

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?12l[?25h[?25l
:[?12l[?25hfor v in keys(g:)
[?25l
:  [?12l[?25h:  silent! exe "unlet " . v

[?25l:  [?12l[?25h:endfor
[?25l:" Go back to this file and append the results from register r.
:buf test49.in[?12l[?25h[?25l
:[?12l[?25hunlet v
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest whether glob()/globpath() return correct results with certain escaped[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure glob() doesn't use the shell
[?25l[?12l[?25h[?25l:[?12l[?25hset shell=doesnotexist
[?25l[?12l[?25h[?25l:[?12l[?25h" consistent sorting of file names
[?25l[?12l[?25h[?25l:[?12l[?25hset nofileignorecase
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25l[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xxx{
[?25l
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! Xxx\$
[?25l"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\{')
[?25lXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h$put =glob('Xxx\$')
[?25lXxx$[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim'))
[?25l'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?12l[?25h[?25l:[?12l[?25h$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" [New File] 8 lines, 138 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for linebreak and list option in utf-8 mode[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l:set list nolinebreak cc=3[?12l[?25h[?25l
:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf8
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?12l[?25h[?25l:[?12l[?25h10new|:vsp|:vert resize 20
[?25l                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[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                                                            [?12l[?25h[?25l:[?12l[?25hput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?12l[?25h[?25l:[?12l[?25hset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25labcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?12l[?25h[?25l:[?12l[?25hfu! ScreenChar(width, lines)
[?25l
:  [?12l[?25h:^Ilet c=''

[?25l:  [?12l[?25h:^Ifor j in range(1,a:lines)

[?25l:    [?12l[?25h:^I    for i in range(1,a:width)

[?25l:      [?12l[?25h:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l:      [?12l[?25h:^I    endfor

[?25l:    [?12l[?25h:           let c.="\n"

[?25l:    [?12l[?25h:^Iendfor

[?25l:  [?12l[?25h:^Ireturn c

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25hfu! DoRecordScreen()
[?25l
:  [?12l[?25h:^Iwincmd l

[?25l:  [?12l[?25h:^I$put =printf(\"\n%s\", g:test)

[?25l:  [?12l[?25h:^I$put =g:line

[?25l:  [?12l[?25h:^Iwincmd p

[?25l:  [?12l[?25h:endfu
[?25labcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?12l[?25h[?25l:[?12l[?25hexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l▕———abcdef|▕———␣ˑ¶[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 2: set nolinebreak list"
[?25l[?12l[?25h[?25l:[?12l[?25hset list nolinebreak
[?25lhijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶                
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶          
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l▕———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▕———ˑˑˑˑˑˑˑˑ
@                   [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 3: set linebreak nolist"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =\"\t*mask = nil;\"
[?25l▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~ [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?12l[?25h[?25l:[?12l[?25hset nolist linebreak
[?25l      
    [?12l[?25h[?25l:[?12l[?25hredraw!
[?25l*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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),4)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?12l[?25h[?25l:[?12l[?25hlet 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*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l#define             
+ABCDE      1       [?12l[?25h[?25l:[?12l[?25hvert resize 40
[?25l                    |                    |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] [+][?12l[?25h[?25l:[?12l[?25h$-7
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25l#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
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset list linebreak listchars=tab:>- cole=1
[?25l>-->--->->--->>--->--->-->--->--->--->--->-->-[?12l[?25h[?25l:[?12l[?25hsyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25lAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l#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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),7)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l>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>
[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?12l[?25h[?25l:[?12l[?25hlet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?12l[?25h[?25l:[?12l[?25hcall append('$', c_defines)
[?25l[?12l[?25h[?25l:[?12l[?25h$
[?25l@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        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[?12l[?25h[?25l:[?12l[?25hnorm! zt
[?25lbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:[?12l[?25hset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l>;>some text      [?12l[?25h[?25l:[?12l[?25hsyn clear
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match meaning    /;\s*\zs.*/
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match hasword    /^\x\{8}/    contains=word
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?12l[?25h[?25l:[?12l[?25hsyn match beginword  /\<\x\x/     contained conceal
[?25leeeeee>--[?12l[?25h[?25l:[?12l[?25hsyn match endword    /\x\{6}\>/   contained
[?25l[?12l[?25h[?25l:[?12l[?25hhi meaning   guibg=blue
[?25lsome text[?12l[?25h[?25l:[?12l[?25hhi beginword guibg=green
[?25l[?12l[?25h[?25l:[?12l[?25hhi endword   guibg=red
[?25leeeeee[?12l[?25h[?25l:[?12l[?25hredraw!
[?25leeeeee>--->-;>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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),1)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l                                        
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                + [?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 6: Screenattributes for comment"
[?25l[?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 6: Screenattributes for comment    [?12l[?25h[?25l:[?12l[?25hcall append('$', ' /*^I^I and some more */')
[?25l /*>>- and some more */                 [?12l[?25h[?25l:[?12l[?25hexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25leeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?12l[?25h[?25l:[?12l[?25hsyntax on
[?25lbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?12l[?25h[?25l:[?12l[?25hhi SpecialKey term=underline ctermfg=red guifg=red
[?25l▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25lbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hnorm! zt0
[?25l /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['106']
[?12l[?25h[?25l:let attr += ['106']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:let attr += ['68']
[?12l[?25h[?25l:[?12l[?25hcall append('$', ['ScreenAttributes for test6:'])
[?25lScreenAttributes for test6:¶            [?12l[?25h[?25l:[?12l[?25hif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l
:  [?12l[?25h:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Not all attributes are different")

[?25l:  [?12l[?25h:endif
[?25l/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?12l[?25h[?25l:[?12l[?25hset cpo&vim linebreak selection=exclusive
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?12l[?25h[?25l:[?12l[?25h$put =g:test
[?25lTest 8: set linebreak with visual block [?12l[?25h[?25llong line:ˑ¶                            [?12l[?25h[?25l¶                                
¶                            
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?12l[?25h[?25l
foobar foobar TARGET¶               [?12l[?25h[?25lÃ' at end¶[?12l[?25h[?25l:[?12l[?25hexe "norm! $3B\<C-v>eAx\<Esc>"
[?25lx' at end¶[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=[]
[?25l[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l /*▕———▕—————— 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
¶                                       [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25h$put ='a b c'
[?25la b c¶                                  [?12l[?25h[?25l:[?12l[?25hset list nolinebreak cc=3
[?25l*
Scr
Att
Tesn 
a b
a b[?12l[?25h[?25l:[?12l[?25hsign define foo text=^+
[?25l[?12l[?25h[?25l:[?12l[?25hsign place 1 name=foo line=50 buffer=2
[?25l   /*▕———▕—————— 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  +[?12l[?25h[?25l:[?12l[?25hnorm! 2kztj
[?25l  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?12l[?25h[?25l:[?12l[?25hlet line1=line('.')
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['91']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hlet line2=line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr2=attr
[?25l[?12l[?25h[?25l:[?12l[?25hlet attr=[]
[?25l[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:let attr += ['91']
[?12l[?25h[?25l:let attr += ['0']
[?12l[?25h[?25l:[?12l[?25hredraw!
[?25l  ¶ |
+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                                                            [?12l[?25h[?25l:[?12l[?25hlet line=ScreenChar(winwidth(0),3)
[?25l[?12l[?25h[?25l:[?12l[?25hcall DoRecordScreen()
[?25l3 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¶               [?12l[?25h[?25l:[?12l[?25h" expected: attr[2] is different because of colorcolumn
[?25l[?12l[?25h[?25l:[?12l[?25hif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l
:  [?12l[?25h:   call append('$', "Screen attributes are different!")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:   call append('$', "Screen attributes are the same!")

[?25l:  [?12l[?25h:endif
[?25l  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?12l[?25h[?25l:[?12l[?25h%w! test.out
[?25l"test.out" [New File] 57 lines, 1882 characters writtentest.out]      test.out     [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.oout
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lSome tests for buffer-local autocommands[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25he xx
[?25l"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !del test.out.*

[?25l:  [?12l[?25h: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !rm -f test.out

[?25l:!rm -f test.out[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l:  [?12l[?25h:endif
[?25l:[?12l[?25he somefile           " here, autocommand for xx shall write test.out 
[?25l:!echo buffer-local autommand in xx>> test.out

[?12l[?25h[?25l"somefile" [New File]

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h                     " but autocommand shall not apply to buffer named <buffer

>[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?12l[?25h[?25l:[?12l[?25he xx                 " nothing shall be written
[?25l"xx" [New File][?12l[?25h[?25l:[?12l[?25he somefile           " nothing shall be written
[?25l"somefile" [New File][?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
:  [?12l[?25h: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l:  [?12l[?25h:endif
[?25l:"
:if has("unix")
:let $CDIR = "."
/CDIR[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
:  [?12l[?25h:let $CDIR = "."

[?25l:  [?12l[?25h/CDIR

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h:if has("amiga")

[?25l:    [?12l[?25h:let $TDIR = "/testdir"

[?25l:    [?12l[?25h:else

[?25l:    [?12l[?25h:let $TDIR = "."

[?25l:    [?12l[?25h:endif

[?25l:  [?12l[?25h/TDIR

[?25l:  [?12l[?25h:endif
[?25l: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[?12l[?25h[?25l
:[?12l[?25h" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?12l[?25h[?25l:[?12l[?25h" file is modified. It can be occurred when executing the following command
[?25l[?12l[?25h[?25l:[?12l[?25h" directly on Windows without fixing the 'fileformat':
[?25l[?12l[?25h[?25l:[?12l[?25h"  > nmake -f Make_dos.mak test17.out
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 135 lines, 2431 characters written[?12l[?25h[?25l
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/./test17a.in" 3 lines, 88 c

haracters

Press ENTER or type command to continue[?12l[?25h[?25lThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 3 lines, 88 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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"^[:[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' without \zs or \ze
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.a")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25he! Xdir1/dir2/foo.a
[?25l"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l#include   "bar.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.a
[?25l"Xdir1/dir2/bar.a" [New File][?12l[?25h[?25l#include      "baz.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.a
[?25l"Xdir1/dir2/baz.a" [New File][?12l[?25h[?25l#include"foo.a"[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.a
[?25l"Xbase.a" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l#include    <foo.a>[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.a" [New File] 1 line, 20 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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()'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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][?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.b")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l: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][?12l[?25h[?25l:[?12l[?25hfunction! DotsToSlashes()
[?25l
:  [?12l[?25h:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l:  [?12l[?25h:endfunction
[?25l:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?12l[?25h[?25l:[?12l[?25hlet &includeexpr='DotsToSlashes()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.b
[?25l"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   /bar/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.b
[?25l"Xdir1/dir2/bar.b" [New File][?12l[?25h[?25l%inc      /baz/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.b
[?25l"Xdir1/dir2/baz.b" [New File][?12l[?25h[?25l%inc/foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.b
[?25l"Xbase.b" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    /foo/[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.b" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and no \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.c")
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("Xdir1", "rf")
[?25l[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l: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
[?12l[?25h[?25l
:[?12l[?25hfunction! StripNewlineChar()
[?25l
:  [?12l[?25h:  if v:fname =~ '\n$'

[?25l:    [?12l[?25h:    return v:fname[:-2]

[?25l:    [?12l[?25h:  endif

[?25l:  [?12l[?25h:  return v:fname

[?25l:  [?12l[?25h:endfunction
[?25l:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='StripNewlineChar()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.c
[?25l"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l%inc   bar.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.c
[?25l"Xdir1/dir2/bar.c" [New File][?12l[?25h[?25l%inc      baz.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.c
[?25l"Xdir1/dir2/baz.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/FALSE.c
[?25l"Xdir1/dir2/FALSE.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.c
[?25l"Xbase.c" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc    FALSE.c foo.c[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- 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[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"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[?12l[?25h[?25l:[?12l[?25h" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?12l[?25h[?25l:[?12l[?25he test.out
[?25l"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)[?12l[?25h[?25l:[?12l[?25h%s#\\#/#g
[?25lE486: Pattern not found: \\[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 33 lines, 655 characters written[?12l[?25h[?25l:[?12l[?25hq
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for a lot of variations of the 'fileformats' option[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" first write three test files, one in each format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=
[?25l[?12l[?25h[?25l:[?12l[?25h/^unix/;/eof/-1w! XXUnix
[?25l"XXUnix" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^dos/;/eof/-1w! XXDos
[?25l"XXDos" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25hset bin noeol
[?25l[?12l[?25h[?25l:[?12l[?25h$w! XXMac
[?25l"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?12l[?25h[?25l
noeol[?12l[?25h[?25l
:[?12l[?25h$w! XXEol
[?25l"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?12l[?25h[?25l:[?12l[?25hset nobin eol
[?25l[?12l[?25h[?25l:[?12l[?25henew!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l3 buffers wiped out[?12l[?25h[?25l:[?12l[?25h" create mixed format files
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: !copy XXUnix,XXDos XXUxDs.

[?25l:  [?12l[?25h: !copy XXUnix,XXMac XXUxMac.

[?25l:  [?12l[?25h: !copy XXDos,XXMac  XXDosMac.

[?25l:  [?12l[?25h: !copy XXMac,XXEol  XXMacEol.

[?25l:  [?12l[?25h: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l:  [?12l[?25h:elseif has("win32")

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos XXUxDs

[?25l:  [?12l[?25h: !copy /b XXUnix+XXMac XXUxMac

[?25l:  [?12l[?25h: !copy /b XXDos+XXMac XXDosMac

[?25l:  [?12l[?25h: !copy /b XXMac+XXEol XXMacEol

[?25l:  [?12l[?25h: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: !cat XXUnix XXDos >XXUxDs

[?25l:!cat XXUnix XXDos >XXUxDs[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXMac >XXUxMac

[?25l:!cat XXUnix XXMac >XXUxMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXDos XXMac >XXDosMac

[?25l:!cat XXDos XXMac >XXDosMac[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXMac XXEol >XXMacEol

[?25l:!cat XXMac XXEol >XXMacEol[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25h !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l:!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?12l[?25h[?1049l

Press ENTER or type command to continue[?1049h[?1h=
[?25l:  :[?12l[?25hendif
[?25l:[?12l[?25h"
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' empty
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" 2 lines, 10 charactersdos^M
dos^M[?12l[?25h[?25l:[?12l[?25hw! XXtt01
[?25l"XXtt01" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt02
[?25l"XXtt02" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=dos
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt11
[?25l"XXtt11" [New File][dos format] 2 lines, 12 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [dos format] 2 lines, 10 charactersdosdos[?12l[?25h[?25l:[?12l[?25hw! XXtt12
[?25l"XXtt12" [New File][dos format] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt13
[?25l"XXtt13" [New File][dos format] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=mac
[?25l:$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[?12l[?25h[?25l
:[?12l[?25he! XXUnix
[?25l"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt21
[?25l"XXtt21" [New File][mac format] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?12l[?25h[?25l:[?12l[?25hw! XXtt22
[?25l"XXtt22" [New File][mac format] 3 lines, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt23
[?25l"XXtt23" [New File][mac format] 2 lines, 8 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25l^Jdos
^Jeof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to one format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt31
[?25l"XXtt31" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt32
[?25l"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt33
[?25l"XXtt33" [New File][mac format] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to two formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?12l[?25h[?25l:[?12l[?25hw! XXtt41
[?25l"XXtt41" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt42
[?25l"XXtt42" [New File] 3 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt43
[?25l"XXtt43" [New File][dos format] 3 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt51
[?25l"XXtt51" [New File] 4 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt52
[?25l"XXtt52" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt53
[?25l"XXtt53" [New File][mac format] 4 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt54
[?25l"XXtt54" [New File] 2 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt61
[?25l"XXtt61" [New File][dos format] 4 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:dos[?12l[?25h[?25l:[?12l[?25hw! XXtt62
[?25l"XXtt62" [New File][dos format] 4 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! XXtt63
[?25l"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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[?12l[?25h[?25l:[?12l[?25he! XXMacEol
[?25l"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25ldos,mac:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt64
[?25l"XXtt64" [New File][mac format] 4 lines, 26 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXMacEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to three formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt71
[?25l"XXtt71" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lunix,dos,mac:unix[?12l[?25h[?25l:[?12l[?25hw! XXtt72
[?25l"XXtt72" [New File] 2 lines, 24 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,dos,unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt81
[?25l"XXtt81" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25he! XXEol
[?25l"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l=[?12l[?25h&ffs
[?25l=[?12l[?25h&ff
[?25lmac,dos,unix:mac[?12l[?25h[?25l:[?12l[?25hw! XXtt82
[?25l"XXtt82" [New File][mac format] 2 lines, 23 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXEol
[?25l"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.[?12l[?25h[?25l:[?12l[?25h" try with 'binary' set
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt91
[?25l"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt92
[?25l"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"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.[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hw! XXtt93
[?25l"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix nobin
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXtt01
[?25l"XXtt01" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt02
[?25l"XXtt02" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt11
[?25l"XXtt11" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt12
[?25l"XXtt12" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt13
[?25l"XXtt13" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt21
[?25l"XXtt21" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt22
[?25l"XXtt22" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt23
[?25l"XXtt23" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt31
[?25l"XXtt31" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt32
[?25l"XXtt32" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt33
[?25l"XXtt33" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt41
[?25l"XXtt41" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt42
[?25l"XXtt42" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt43
[?25l"XXtt43" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt51
[?25l"XXtt51" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt52
[?25l"XXtt52" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt53
[?25l"XXtt53" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt54
[?25l"XXtt54" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt61
[?25l"XXtt61" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt62
[?25l"XXtt62" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt63
[?25l"XXtt63" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt64
[?25l"XXtt64" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt71
[?25l"XXtt71" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt72
[?25l"XXtt72" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt81
[?25l"XXtt81" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt82
[?25l"XXtt82" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt91
[?25l"XXtt91" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt92
[?25l"XXtt92" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt93
[?25l"XXtt93" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results.
[?25l[?12l[?25h[?25l:[?12l[?25h" Make fileformat of test.out the native fileformat.
[?25l[?12l[?25h[?25l:[?12l[?25h" Add a newline at the end.
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25h$r XXtt01
[?25l"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt02
[?25l"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?12l[?25h
[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXtt11
[?25l"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt12
[?25l"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt13
[?25l"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?12l[?25h
[?25l
2[?12l[?25h[?25l:[?12l[?25h$r XXtt21
[?25l"XXtt21" 3 lines, 15 charactersunixunix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt22
[?25l"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt23
[?25l"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?12l[?25h[?25l
3[?12l[?25h[?25l
:[?12l[?25h$r XXtt31
[?25l"XXtt31" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt32
[?25l"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt33
[?25l"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
4[?12l[?25h[?25l
:[?12l[?25h$r XXtt41
[?25l"XXtt41" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt42
[?25l"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt43
[?25l"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
5[?12l[?25h[?25l
:[?12l[?25h$r XXtt51
[?25l"XXtt51" 5 lines, 24 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt52
[?25l"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt53
[?25l"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt54
[?25l"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
6[?12l[?25h[?25l
:[?12l[?25h$r XXtt61
[?25l"XXtt61" 5 lines, 26 characters
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt62
[?25l"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt63
[?25l"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt64
[?25l"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?12l[?25h[?25l
7[?12l[?25h[?25l
:[?12l[?25h$r XXtt71
[?25l"XXtt71" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt72
[?25l"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?12l[?25h[?25lnoeol
END
[?12l[?25h[?25l
8[?12l[?25h[?25l
:[?12l[?25h$r XXtt81
[?25l"XXtt81" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt82
[?25l"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?12l[?25h[?25l
9[?12l[?25h[?25l
:[?12l[?25h$r XXtt91
[?25l"XXtt91" 5 lines, 32 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt92
[?25l"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt93
[?25l"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
10[?12l[?25h[?25l
:[?12l[?25h$r XXUnix
[?25l"XXUnix" 2 lines, 10 characters
unix[?12l[?25h[?25l
:[?12l[?25hset nobinary ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 130 lines, 786 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l
# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTest for insert expansion[?12l[?25h[?25l/^STARTTEST
[?12l[?25h[?25l
:so small.vim[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l"Xtestfile" [New] 3L, 57C written[?12l[?25h[?25l:[?12l[?25hse cot=
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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                                                                       [?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile"
run1 run2[+][?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h[?25l3[?12l[?25h
[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 115-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)
-- INSERTe --^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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3

run1 run2[?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h
[?25l:[?12l[?25hse cpt=.,w,i
[?25l[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^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)^ U-- Searching...
Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 57INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 57Addinge Whole line completion (^L^N^P) -- Searching...
Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=kXtestfile
[?25l[?12l[?25h[?25l:[?12l[?25hw Xtest11.one
[?25l"Xtest11.one" [New] 9L, 104C writtenXtest11.one+   [?12l[?25h[?25l:[?12l[?25hw Xtest11.two
[?25l"Xtest11.two" [New] 9L, 104C written[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?12l[?25h [?25l-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?12l[?25h[?25l-- INSERT --Xtest11
[?12l[?25h[?25l-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25h" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?12l[?25h[?25l:[?12l[?25h" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 4.INSERTa -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 445.
Make_all.mak
run1 run2d[?12l[?25h [?25l-- INSERT --[?12l[?25h[?25l
run1 run2~                                                                               [?12l[?25h
[?25l:[?12l[?25hse cpt=w
[?25l[?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=u nohid
[?25l[?12l[?25h[?25l

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch 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)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only matchENDTEST
unless[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Definition completion (^D^N^P)^ U-- Searching...
Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching...
Scanning tags.pincluded file: Xtestfile
-- Keyword completion (^N^P) The only matchtest11file      36Gepeto/Tag/ asd
asd[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h
ru[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New] 15L, 175C written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l:"
:" 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?12l[?25h[?25l:[?12l[?25hset maxmem=512 spell
[?25lvim

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[?12l[?25h[?25lasdTests for spell checking.     vim: set ft=vim :[?12l[?25h[?25lChange "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): [?12l[?25h[?25l:[?12l[?25h"
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.latin1.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 151 lines, 3412 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.latin1.add
[?25lasdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?12l[?25h[?25l/[?12l[?25h^test2:
[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.latin1.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.latin1.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.latin1.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.latin1.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25l2good: 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" NOSLITSUGS
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('8', '8')
[?25l"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[?12l[?25h[?25l:[?12l[?25h" Numbers
[?25lNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?12l[?25h[?25l:[?12l[?25hcall TestOne('9', '9')
[?25lError 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[?12l[?25h[?25l:[?12l[?25h"
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25lTest 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lasdTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 289 lines, 3844 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?12l[?25h[?25l:[?12l[?25h" text is in latin1, the test text is utf-8.
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25l: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[?12l[?25h[?25l:[?12l[?25hset enc=utf-8
[?25lTests 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[?12l[?25h[?25l:[?12l[?25hset fenc=
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Function to test .aff/.dic with list of good and bad words.
[?25l[?12l[?25h[?25l:[?12l[?25hfunc TestOne(aff, dic)
[?25l
:  [?12l[?25h  set spellfile=

[?25l:  [?12l[?25h  $put =''

[?25l:  [?12l[?25h  $put ='test '. a:aff . '-' . a:dic

[?25l:  [?12l[?25h  " Generate a .spl file from a .dic and .aff file.

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l:  [?12l[?25h  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l:  [?12l[?25h  mkspell! Xtest Xtest

[?25l:  [?12l[?25h  " use that spell file

[?25l:  [?12l[?25h  set spl=Xtest.utf-8.spl spell

[?25l:  [?12l[?25h  " list all valid words

[?25l:  [?12l[?25h  spelldump

[?25l:  [?12l[?25h  %yank

[?25l:  [?12l[?25h  quit

[?25l:  [?12l[?25h  $put

[?25l:  [?12l[?25h  $put ='-------'

[?25l:  [?12l[?25h  " find all bad words and suggestions for them

[?25l:  [?12l[?25h  exe '1;/^' . a:aff . 'good:'

[?25l:  [?12l[?25h  normal 0f:]s

[?25l:  [?12l[?25h  let prevbad = ''

[?25l:  [?12l[?25h  while 1

[?25l:    [?12l[?25h    let [bad, a] = spellbadword()

[?25l:    [?12l[?25h    if bad == '' || bad == prevbad || bad == 'badend'

[?25l:      [?12l[?25h      break

[?25l:      [?12l[?25h    endif

[?25l:    [?12l[?25h    let prevbad = bad

[?25l:    [?12l[?25h    let lst = spellsuggest(bad, 3)

[?25l:    [?12l[?25h    normal mm

[?25l:    [?12l[?25h    $put =bad

[?25l:    [?12l[?25h    $put =string(lst)

[?25l:    [?12l[?25h    normal `m]s

[?25l:    [?12l[?25h  endwhile

[?25l:  [?12l[?25hendfunc
[?25lTests 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('1', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25lthe 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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kepereneven[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
everles gesvets etele[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l"Xtest.aff" 153 lines, 3426 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest Xtest
[?25lReading 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[?12l[?25h[?25l:[?12l[?25h$put =soundfold('goobledygoook')
[?25l-------
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[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('kóopërÿnôven')
[?25l
kprnfn[?12l[?25h[?25l
:[?12l[?25h$put =soundfold('oeverloos gezwets edale')
[?25l
*fls kswts tl[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" also use an addition file
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?12l[?25h[?25l:[?12l[?25hmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25lReading 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[?12l[?25h[?25l:[?12l[?25hset spellfile=Xtest.utf-8.add
[?25lTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?12l[?25h[?25l/[?12l[?25h^test2:
[?25ltomato 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 !![?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25linputs
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_us.utf-8.spl
[?25l[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lcomment
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_gb.utf-8.spl
[?25lelequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lok
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_nz.utf-8.spl
[?25lelequint
elekwint
elekwint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25lOk
['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
[?12l[?25h[?25l
:[?12l[?25hset spl=Xtest_ca.utf-8.spl
[?25lelequint
elekwint
elekwint

elequint
[?12l[?25h[?25l/[?12l[?25h^test2:
[?25lsearch 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[?12l[?25h
[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25l['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
[?12l[?25h[?25lstartwordwordend 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[?12l[?25h[?25l:[?12l[?25hlet [str, a] = spellbadword()
[?25l[?12l[?25h[?25l:[?12l[?25h$put =str
[?25ltest
['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
[?12l[?25h[?25l
:[?12l[?25hunlet str a
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Postponed prefixes
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('2', '1')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25laddstart
/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[?12l[?25h[?25l:[?12l[?25h" Compound words
[?25l[?12l[?25h[?25l:[?12l[?25hcall TestOne('3', '3')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('4', '4')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('5', '5')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('6', '6')
[?25l"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[?12l[?25h[?25l:[?12l[?25hcall TestOne('7', '7')
[?25l"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[?12l[?25h[?25l:[?12l[?25h"
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h" clean up for valgrind
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc TestOne
[?25l[?12l[?25h[?25l:[?12l[?25hset spl= enc=latin1
[?25l1234
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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l:[?12l[?25h/^test output:/,$wq! test.out
[?25l"test.out" [New File] 270 lines, 3685 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for undo file.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile': first a simple one-line change.
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo visualbell
[?25l[?12l[?25h[?25l:[?12l[?25hset ul=100 undofile nomore
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l-- INSERT --this is one line[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hs/one/ONE/
[?25lONE
[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 change; before #2  0 seconds agoone
[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New] 1L, 17C written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', change in original file fails check
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 1L, 17CONE
[?12l[?25h[?25l:[?12l[?25hs/line/Line/
[?25lL
[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 1L, 17C written[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h" TODO: this beeps
[?25l[?12l[?25h[?5h[?5l[?25lAlready at oldest change[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 17C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?12l[?25h[?25l:[?12l[?25hset undofile
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --one
twothreefourfivesixseveneightnineten[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestfile" 4L, 17C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l1 more line; before #7  1 seconds agoeight[?12l[?25h[?25l1 more line; before #6  1 seconds agoseven[?12l[?25h[?25l1 more line; before #5  1 seconds agosix[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 7L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Test that reading the undofiles when setting undofile works
[?25l[?12l[?25h[?25l:[?12l[?25hset noundofile ul=0
[?25l[?12l[?25h[?25l-- INSERT --six
u[?12l[?25hs[?25l[?12l[?25h[?25l1 line less; before #8  0 seconds ago
~                                                                               [?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile ul=100
[?25l[?12l[?25h[?25l1 more line; before #7  1 seconds agoeight[?12l[?25h[?25l1 more line; before #6  1 seconds agoseven[?12l[?25h[?25l1 more line; before #5  1 seconds agosix[?12l[?25h[?25l1 more line; before #4  1 seconds agofive[?12l[?25h[?25l1 more line; before #3  1 seconds agofour[?12l[?25h[?25l1 more line; before #2  1 seconds agothree[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 10L, 49C appended[?12l[?25h[?25l:[?12l[?25h" And now with encryption, cryptmethod=zip
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hset undofile cm=zip
[?25l[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l-- INSERT --monday
tuesdaywednesdaythursdayfriday[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25lmonday
friday
~                                                                               [?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [crypted] 2L, 14C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l1 more line; before #11  0 seconds agothursday[?12l[?25h[?25l1 more line; before #10  0 seconds agowednesday[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 4L, 33C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25lEnter same key again: [?12l[?25h******

[?25ljan
feb
bar apr[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h******

[?25l"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #15  1 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #14  1 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #13  1 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" With encryption, cryptmethod=blowfish2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile
[?25l"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?12l[?25h*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?12l[?25h[?25l:[?12l[?25hset undofile cm=blowfish2 ff&
[?25l[?12l[?25h[?25l--No lines in buffer--[?12l[?25h[?25l-- INSERT --jan
febmaraprjun[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h
[?25l-- INSERT --foo mar[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l
~                                                                               [?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l-- INSERT --bar apr[?12l[?25h[?25l:[?12l[?25hset ul=100
[?25l[?12l[?25h[?25l:[?12l[?25hX
[?25lEnter encryption key: [?12l[?25h*******

[?25lEnter same key again: [?12l[?25h*******

[?25ljan
feb[?12l[?25h[?25l:[?12l[?25hw!
[?25l"Xtestfile" [blowfish2] 4L, 20C written[?12l[?25h[?25l:[?12l[?25hbwipe!
[?25l"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[?12l[?25h[?25l:[?12l[?25he Xtestfile
[?25l"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?12l[?25h*******

[?25l"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?12l[?25h[?25l:[?12l[?25hset key=
[?25l[?12l[?25h[?25l/[?12l[?25hbar
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #19  1 seconds agoap[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l1 more line; before #18  1 seconds agofoo mar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 8C appended[?12l[?25h[?25l1 change; before #17  1 seconds agomar[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1L, 4C appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Rename the undo file so that it gets cleaned up.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
:  [?12l[?25h: call rename("_un_Xtestfile", "Xtestundo")

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: call rename(".Xtestfile.un~", "Xtestundo")

[?25l:  [?12l[?25h:endif
[?25ljan
feb
mar
apr[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01223456789abcdefghijklmnoparstuvwxyz0123456789"
: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', '')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lInserts 10000 lines with text to fill the swap file with two levels of pointer[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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 linnecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appendd(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hlet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hlet linecount = 10000
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789[?12l[?25h[?25l:[?12l[?25hpreserve
[?25lFile preserved[?12l[?25h[?25l:[?12l[?25h" get the name of the swap file
[?25l[?12l[?25h[?25l:[?12l[?25hredir => swapname
[?25l[?12l[?25h[?25l:[?12l[?25hswapname
[?25l.Xtest.swp[?12l[?25h[?25l:[?12l[?25hredir END
[?25l[?12l[?25h[?25l:[?12l[?25hlet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899a[?12l[?25h[?25l
999899a
999999a
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25honly!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hbwipe! Xtest
[?25l[?12l[?25h[?25l:[?12l[?25hcall rename('Xswap', swapname)
[?25l[?12l[?25h[?25l:[?12l[?25hrecover Xtest
[?25lUsing 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[?12l[?25h[?25l:[?12l[?25hcall delete(swapname)
[?25l1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567899abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       199a
299a
399a
4 99a
5 99a
Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hcall append(0, 'recovery start')
[?25lrecovery start[+][?12l[?25h[?25l:[?12l[?25hwincmd w
[?25l[No Name] [+]                                                                    Xtest [+]                                                                       [?12l[?25h[?25l:[?12l[?25hlet linedollar = line('$')
[?25l[?12l[?25h[?25l:[?12l[?25hif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hlet i = 1
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25lrecovery start[?12l[?25h[?25l:[?12l[?25hq!
[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hcall append(line('$'), 'recovery end')
[?25lrecovery end[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New] 3L, 29C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25lTests for tag search with !_TAG_FILE_ENCODING.[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=utf8
[?25l: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[?12l[?25h[?25l:[?12l[?25hif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l
:  [?12l[?25h: e! test.ok

[?25l:  [?12l[?25h: w! test.out

[?25l:  [?12l[?25h: qa!

[?25l:  [?12l[?25h:endif
[?25l:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l"Xtags1.txt" [New File] 2 lines, 35 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l"Xtags2.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l"Xtags3.txt" [New File] 2 lines, 25 characters written[?12l[?25h[?25l:[?12l[?25h/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l"Xtags1" [New File] 2 lines, 81 characters written[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25lTests 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[?12l[?25h[?25l~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hcall setline('.', 'Results of test83')
[?25lResults of test83
[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case1:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l[No Name]                                                                       Results of test83test83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=Xtags1
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abcdefghijklmnopqrs
[?25l"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case1: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case2:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags2
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag /.BC
[?25l"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case2: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" case3:
[?25l[?12l[?25h[?25l:[?12l[?25hnew
[?25l~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?12l[?25h[?25l:[?12l[?25hset tags=test83-tags3
[?25l[?12l[?25h[?25l:[?12l[?25hlet v:errmsg = ''
[?25l[?12l[?25h[?25l:[?12l[?25htag abc50
[?25l"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?12l[?25h[?25l:[?12l[?25hif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l
:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: failed'

[?25l:  [?12l[?25h:else

[?25l:  [?12l[?25h: close

[?25l:  [?12l[?25h: put ='case3: ok'

[?25l:  [?12l[?25h:endif
[?25lResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 4 lines, 48 characters written

[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l- Some tests for setting 'number' and 'relativenumber'[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/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
[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden nocp nu rnu viminfo+=nviminfo
[?25l 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 donee     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  [?12l[?25h[?25l:[?12l[?25hredir @a | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! xx
[?25l"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?12l[?25h[?25l:[?12l[?25hredir @b | set nu? rnu? | redir END
[?25l  number

  relativenumber

Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! #
[?25l"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 donee     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[?12l[?25h[?25l:[?12l[?25h$put ='results:'
[?25l
1
 20
 19
 18
 17ee 
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?12l[?25h[?25l
:[?12l[?25h$put a
[?25l3 more lines21
 20ee 
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?12l[?25h[?25l:[?12l[?25h$put b
[?25l3 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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @c | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:" 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[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetlocal nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hredir @d | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setlocal must NOT reset the other global value'
[?25l
 79 :setlocal must NOT reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put c
[?25l 80 
 81   number[?12l[?25h[?25l
:[?12l[?25h$put d
[?25l 82 
 83   relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l: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[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @e | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal rnu
[?25l[?12l[?25h[?25l:[?12l[?25hsetglobal nu
[?25l[?12l[?25h[?25l:[?12l[?25hredir @f | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':setglobal MUST reset the other global value'
[?25l
:setglobal MUST reset the other global value[?12l[?25h[?25l
:[?12l[?25h$put e
[?25lnumber[?12l[?25h[?25l
:[?12l[?25h$put f
[?25lrelativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l[?12l[?25h[?25l:[?12l[?25hset nu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?12l[?25h[?25l:[?12l[?25hredir @g | setglobal nu? | redir END
[?25l  number[?12l[?25h[?25l:[?12l[?25hset nonu nornu
[?25l:$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[?12l[?25h[?25l:[?12l[?25hset rnu
[?25l 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[?12l[?25h[?25l:[?12l[?25hset nu
[?25l88    [?12l[?25h[?25l:[?12l[?25hredir @h | setglobal rnu? | redir END
[?25l  relativenumber[?12l[?25h[?25l:[?12l[?25h$put =':set MUST reset the other global value'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put g
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?12l[?25h[?25l
:[?12l[?25h$put h
[?25l2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?12l[?25h[?25l
:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hlet cwd=getcwd()
[?25l[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox[?12l[?25h[?25l:[?12l[?25h" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?12l[?25h[?25l:[?12l[?25h" get above src/
[?25l[?12l[?25h[?25l:[?12l[?25hif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l/<<PKGBUILDDIR>>[?12l[?25h[?25l:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?12l[?25h[?25l
:[?12l[?25h$put ='Testing findfile'
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =''
[?25l
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?12l[?25h[?25l
:[?12l[?25hset ssl
[?25l[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','src/test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir[?12l[?25h[?25l:[?12l[?25hcd ..
[?25l/<<PKGBUILDDIR>>/src/vim-nox[?12l[?25h[?25l:[?12l[?25h$put =findfile('test19.in','test*')
[?25l
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[?12l[?25h[?25l
:[?12l[?25h$put =findfile('test19.in','testdir')
[?25l
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[?12l[?25h[?25l
:[?12l[?25hexe "cd" cwd
[?25l/<<PKGBUILDDIR>>/src/vim-nox/testdir[?12l[?25h[?25l:[?12l[?25h/^results/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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 $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?12l[?25h[?25lExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest86.in

test1.oktest86.ok

test1.outtest86.out

test103.intest87.in

test103.oktest87.ok

test103.outtest87.out

test104.intest88.in

test104.oktest88.ok

test104.outtest88.out

test107.intest89.in

test107.oktest89.ok

test107.outtest89.out

test108.intest9.in

test108.oktest9.ok

test108.outtest9.out

test11.intest90.in

test11.oktest90.ok

test11.outtest90.out

test12.intest91.in

test12.oktest91.ok

test12.outtest91.out

test14.intest94.in

test14.oktest94.ok

test14.outtest94.out

test15.intest95.in

test15.oktest95.ok

test15.outtest95.out

test17.intest97.in

test17.oktest97.ok

test17.outtest97.out

test17a.intest98.in

test19.intest98.ok

test19.oktest98.out

test19.outtest99.in

test20.intest99.ok

test20.oktest99.out

test20.outtest_alot.vim

test22.intest_alot_latin.vim

test22.oktest_alot_utf8.vim

test22.outtest_arglist.res

test23.intest_arglist.vim

test23.oktest_assert.res

test23.outtest_assert.vim

test24.intest_assign.vim

test24.oktest_autochdir.res

test24.outtest_autochdir.vim

test25.intest_autocmd.vim

test25.oktest_autocmd_option.in

test25.outtest_autocmd_option.ok

test26.intest_autocmd_option.out

test26.oktest_autoformat_join.in

test26.outtest_autoformat_join.ok

test28.intest_autoformat_join.out

test28.oktest_backspace_opt.res

test28.outtest_backspace_opt.vim

test29.intest_breakindent.res

test29.oktest_breakindent.vim

test29.outtest_bufwintabinfo.res

test3.intest_bufwintabinfo.vim

test3.oktest_cdo.res

test3.outtest_cdo.vim

test30.intest_changelist.in

test30.oktest_changelist.ok

test30.outtest_changelist.out

test31.intest_channel.py

test31.oktest_channel.res

test31.outtest_channel.vim

test32.intest_channel_pipe.py

test32.oktest_charsearch.res

test32.outtest_charsearch.vim

test33.intest_close_count.in

test33.oktest_close_count.ok

test33.outtest_close_count.out

test34.intest_cmdline.vim

test34.oktest_command_count.vim

test34.outtest_comparators.in

test36.intest_comparators.ok

test36.oktest_comparators.out

test36.outtest_crypt.vim

test37.intest_cscope.vim

test37.oktest_cursor_func.vim

test37.outtest_delete.vim

test38.intest_diffmode.vim

test38.oktest_digraph.vim

test38.outtest_display.vim

test39.intest_erasebackword.in

test39.oktest_erasebackword.ok

test39.outtest_erasebackword.out

test4.intest_eval.in

test4.oktest_eval.ok

test4.outtest_eval.out

test40.intest_eval_func.vim

test40.oktest_ex_undo.vim

test40.outtest_execute_func.vim

test41.intest_expand.vim

test41.oktest_expand_dllpath.vim

test41.outtest_expr.vim

test42.intest_expr_utf8.vim

test42.oktest_farsi.vim

test42.outtest_feedkeys.vim

test43.intest_file_perm.vim

test43.oktest_fileformat.vim

test43.outtest_filter_cmd.vim

test44.intest_filter_map.vim

test44.oktest_fixeol.in

test44.outtest_fixeol.ok

test45.intest_fixeol.out

test45.oktest_float_func.vim

test45.outtest_fnameescape.vim

test48.intest_fnamemodify.vim

test48.oktest_fold.vim

test48.outtest_functions.vim

test49.intest_getcwd.in

test49.oktest_getcwd.ok

test49.outtest_getcwd.out

test49.vimtest_gf.vim

test5.intest_glob2regpat.vim

test5.oktest_gn.vim

test5.outtest_goto.vim

test50.intest_gui.vim

test50.oktest_hardcopy.vim

test51.intest_help_tagjump.vim

test51.oktest_hide.vim

test51.outtest_history.vim

test52.intest_hlsearch.vim

test52.oktest_increment.vim

test52.outtest_increment_dbcs.vim

test53.intest_insertcount.in

test53.oktest_insertcount.ok

test53.outtest_insertcount.out

test54.intest_job_fails.vim

test54.oktest_join.vim

test54.outtest_json.vim

test55.intest_jumps.vim

test55.oktest_lambda.vim

test55.outtest_langmap.vim

test56.intest_largefile.vim

test56.oktest_lispwords.vim

test56.outtest_listchars.in

test57.intest_listchars.ok

test57.oktest_listchars.out

test57.outtest_listlbr.in

test58.intest_listlbr.ok

test58.oktest_listlbr.out

test58.outtest_listlbr_utf8.in

test59.intest_listlbr_utf8.ok

test59.oktest_listlbr_utf8.out

test59.outtest_man.vim

test60.intest_mapping.vim

test60.oktest_marks.vim

test60.outtest_match.vim

test60.vimtest_matchadd_conceal.vim

test64.intest_matchadd_conceal_utf8.vim

test64.oktest_menu.vim

test64.outtest_messages.vim

test65.intest_mksession.vim

test65.oktest_mksession_utf8.vim

test65.outtest_modeline.vim

test66.intest_nested_function.vim

test66.oktest_netbeans.py

test66.outtest_netbeans.vim

test67.intest_normal.vim

test67.oktest_options.vim

test67.outtest_packadd.vim

test68.intest_partial.vim

test68.oktest_perl.vim

test68.outtest_popup.vim

test69.intest_profile.vim

test69.oktest_quickfix.vim

test69.outtest_regexp_latin.vim

test7.intest_regexp_utf8.vim

test7.oktest_reltime.vim

test7.outtest_ruby.vim

test70.intest_search.vim

test70.oktest_search_mbyte.in

test70.outtest_search_mbyte.ok

test72.intest_search_mbyte.out

test72.oktest_searchpos.vim

test72.outtest_set.vim

test73.intest_signs.vim

test73.oktest_smartindent.vim

test73.outtest_sort.vim

test75.intest_source.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_taglist.vim

test8.oktest_textobjects.vim

test8.outtest_timers.vim

test80.intest_true_false.vim

test80.oktest_undo.vim

test80.outtest_unlet.vim

test82.intest_usercommands.vim

test82.oktest_utf8.in

test82.outtest_utf8.ok

test83-tags2test_utf8.out

test83-tags3test_viminfo.vim

test83.intest_viml.vim

test83.oktest_visual.vim

test83.outtest_window_cmd.vim

test84.intest_window_id.vim

test84.oktest_wordcount.in

test84.outtest_wordcount.ok

test85.intest_wordcount.out

test85.oktest_writefile.vim

test85.out

: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
Xtestfile1 file1...Xtestfile1Xtestfile2 2:te 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_display.vim" 39 lines, 849 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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]                                                                  [?12l[?25h[?25l/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?12l[?25h[?25l
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_matchadd_conceal.vim" 289 lines, 9276 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vfsX60b/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vistjA0/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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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
[?12l[?25h[?25l:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?12l[?25h[?1l>[?1049lone
[?1049h[?1h=[?25l:.!sed -e 's/^/|    /'
[?12l[?25h[?25l:.!
:!echo one
[?1l>[?12l[?25h[?1049l
[No write since last change]
one

Press ENTER or type command to continue[?1049h[?1h=[?25l:.!!
[?12l[?25h
[?25lExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?12l[?25h[?25l7 lines filtered:.,$!./Xsed_format.sh
[?12l[?25h[?25l7 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/vbHXmsO/11removed from /tmp/vbHXmsO/11goood' added to /tmp/vbHXmsO/11removed from /tmp/vbHXmsO/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'[?1l>[?12l[?25h[?1049l
[No write since last change]
stdin not open for reading!

shell returned 2

Press ENTER or type command to continue[?1049h[?1h=
[?25lExecuting 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]                                                                  [?12l[?25h[?25l[?12l[?25h[?25l:^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
[?1l>[?12l[?25h[?1049l
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lAlready only one window[?1l>[?12l[?25h[?1049ltest_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
[?1049h[?1h=[?1l>[?1049ltest_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
[?1049h[?1h=[?25lExecuting 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[?1l>[?12l[?25h[?1049lloclistfoo:1:loclistfoo
[?1049h[?1h=
[?25lAlready 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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', '  66 their', '  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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l1: /<<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

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_compatible_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25lError detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=
[?25lExecuting Test_file_args()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l3 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l2 files to edit
[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l4 files to edit
[?1049h[?1h=
[?25lExecuting Test_help_arg()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 1 line, 10 characters[?12;25h[?12l[?25h"Xtestout" [New File] 1 line, 10 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=
[?25lExecuting Test_startup_script()[?1000h

Executing Test_startuptime()[?1l>[?12l[?25h[?1049l[?1000l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"one" [New File]

[?1l>[?12l[?25h[?1049l[?1000h[?1049h[?1h=[?25l"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?1000l
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?12;25h[?12l[?25h[?25l"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written

[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_read_stdin_utf8()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l"-stdin-" 2 lines, 24 characters[?12;25h[?12l[?25h"Xtestout" [New File] 2 lines, 24 characters written
[?1l>[?12l[?25h[?1049l
Vim: Reading from stdin...
[?1049h[?1h=[?25l"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?12l[?25h[?25l1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?12l[?25h

[?25lExecuting 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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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  2019/06/23 12:24: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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_viml.vim" 1315 lines, 31693 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/vxQ7ioL/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vxQ7ioL/0" 13L, 248C written
"test_viml.vim" 1315L, 31693C
   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/vxQ7ioL/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vxQ7ioL/1" 14L, 281C written
"test_viml.vim" 1315L, 31693C
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/vxQ7ioL/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vxQ7ioL/2" 17L, 445C written
"test_viml.vim" 1315L, 31693C
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
[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"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

[?1l>[?12l[?25h[?1049lVIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot_utf8.vim" 11 lines, 440 characters[?1l>[?12l[?25h[?1049lExecuting 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test_alot.vim" 49 lines, 1258 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_OptionSet_modeline()

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" 49L, 1258C

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 Fwordfile1

cmd1

  2 Fwordfile2

cmd2

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_modeline.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             tBufReadPre              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      
Octobere        
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      
Octobere        
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      
Octobere        
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()[?12l[?25h[?25lExecuting Test_cursorhold_insert_ctrl_x()[?12l[?25h[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_empty_doau()

No matching autocommands

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" 49L, 1258C

Executing Test_func_sandbox()

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_glob2regpat_invalid()

Executing Test_glob2regpat_valid()

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] 8784L, 372352Cline 7690 of 8784 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1324 of 8784 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

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()[?12l[?25h

[?25l1[?12l[?25h
[?25l2[?12l[?25h
[?25l3[?12l[?25h
[?25l4[?12l[?25h
[?25l5[?12l[?25h
[?25l6[?12l[?25h
[?25l7[?12l[?25h
[?25l8[?12l[?25h
[?25lExecuting 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_modeline_fails_always()
"Xmodeline_fails_backupdir" 2L, 41C

"Xmodeline_fails_cdpath" 2L, 38C

"Xmodeline_fails_charconvert" 2L, 43C

"Xmodeline_fails_completefunc" 2L, 44C

"Xmodeline_fails_cscopeprg" 2L, 41C

"Xmodeline_fails_diffexpr" 2L, 40C

"Xmodeline_fails_directory" 2L, 41C

"Xmodeline_fails_equalprg" 2L, 40C

"Xmodeline_fails_errorfile" 2L, 41C

"Xmodeline_fails_exrc" 2L, 36C

"Xmodeline_fails_formatprg" 2L, 41C

"Xmodeline_fails_fsync" 2L, 37C

"Xmodeline_fails_grepprg" 2L, 39C

"Xmodeline_fails_helpfile" 2L, 40C

"Xmodeline_fails_keywordprg" 2L, 42C

"Xmodeline_fails_langmap" 2L, 39C

"Xmodeline_fails_makeef" 2L, 38C

"Xmodeline_fails_makeprg" 2L, 39C

"Xmodeline_fails_mkspellmem" 2L, 42C

"Xmodeline_fails_modelineexpr" 2L, 32C

"Xmodeline_fails_omnifunc" 2L, 40C

"Xmodeline_fails_operatorfunc" 2L, 44C

"Xmodeline_fails_printdevice" 2L, 43C

"Xmodeline_fails_patchexpr" 2L, 41C

"Xmodeline_fails_printexpr" 2L, 41C

"Xmodeline_fails_runtimepath" 2L, 43C

"Xmodeline_fails_secure" 2L, 38C

"Xmodeline_fails_shell" 2L, 37C

"Xmodeline_fails_shellcmdflag" 2L, 44C

"Xmodeline_fails_shellpipe" 2L, 41C

"Xmodeline_fails_shellquote" 2L, 42C

"Xmodeline_fails_shellredir" 2L, 42C

"Xmodeline_fails_shellxquote" 2L, 43C

"Xmodeline_fails_spellfile" 2L, 41C

"Xmodeline_fails_spellsuggest" 2L, 44C

"Xmodeline_fails_titleold" 2L, 40C

"Xmodeline_fails_viewdir" 2L, 39C

"Xmodeline_fails_viminfo" 2L, 39C

"Xmodeline_fails_undodir" 2L, 39C

"Xmodeline_fails_t_AB" 2L, 36C

"Xmodeline_fails_t_ce" 2L, 36C

"Xmodeline_fails_t_sr" 2L, 36C

"Xmodeline_fails_t_8b" 2L, 36C

Executing Test_modeline_fails_modelineexpr()
"Xmodeline_fails_foldexpr" 2L, 40C

"Xmodeline_fails_foldtext" 2L, 40C

"Xmodeline_fails_formatexpr" 2L, 42C

"Xmodeline_fails_iconstring" 2L, 42C

"Xmodeline_fails_includeexpr" 2L, 43C

"Xmodeline_fails_indentexpr" 2L, 42C

"Xmodeline_fails_rulerformat" 2L, 43C

"Xmodeline_fails_statusline" 2L, 42C

"Xmodeline_fails_tabline" 2L, 39C

"Xmodeline_fails_titlestring" 2L, 43C

Executing Test_modeline_filetype()
"Xmodeline_filetype" 2L, 24C

Executing Test_modeline_filetype_fails()
"Xmodeline_fails_filetype" 2L, 31C

Executing Test_modeline_invalid()
"Xmodeline" 2L, 13C

Executing Test_modeline_keymap()
"Xmodeline_keymap" 2L, 32C

Executing Test_modeline_keymap_fails()
"Xmodeline_fails_keymap" 2L, 35C

Executing Test_modeline_syntax()
"Xmodeline_syntax" 2L, 25C

Executing Test_modeline_syntax_fails()
"Xmodeline_fails_syntax" 2L, 32C

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 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
[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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_repeat_many()[?12l[?25h

[?25lExecuting Test_repeat_three()[?12l[?25h

[?25lExecuting Test_retain_partial()[?12l[?25h

[?25lExecuting 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()[?12l[?25h

[?25lExecuting Test_stop_in_callback()[?12l[?25h

[?25lExecuting 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[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_dir_delete()[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25lExecuting 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()[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=[?1l>[?1049l[?1049h[?1h=
[?25l"colored" [New File]

Executing Test_trunc()

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()[?12l[?25h[?25ltilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 256 tests"messages" 584L, 15447C

"messages" 845L, 23978C written

[?1l>[?12l[?25h[?1049l

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_OptionSet_modeline()
    Skipped
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_empty_doau()
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_sandbox()
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_glob2regpat_invalid()
Executing Test_glob2regpat_valid()
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_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_modeline_fails_always()
Executing Test_modeline_fails_modelineexpr()
Executing Test_modeline_filetype()
Executing Test_modeline_filetype_fails()
Executing Test_modeline_invalid()
Executing Test_modeline_keymap()
Executing Test_modeline_keymap_fails()
Executing Test_modeline_syntax()
Executing Test_modeline_syntax_fails()
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_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 256 tests
SKIPPED Test_OptionSet_modeline(): test_override() missing

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
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
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
dh_testroot
/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
*** DEBIAN *** INSTALLING VARIANT vim-tiny
dh_installdirs
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
/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
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
*** DEBIAN *** INSTALLING VARIANT vim-gtk
dh_installdirs
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R
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
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
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.UTF-8/man1/xxd.1
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
cp src/vim-tiny/vim src/vim-tiny/vim.tiny
dh_testroot
/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
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1
# variant-related installations
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
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1/xxd.1
cp src/vim-gtk/vim src/vim-gtk/vim.gtk
cp -r ../runtime/tools/* /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools
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
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
# 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
chmod 644 /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/*
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
sed -i "/@LANG_ALTS@/d" debian/vim-tiny.postinst
*** DEBIAN *** INSTALLING VARIANT vim-gtk3
dh_installdirs
# fake help installation for vim-tiny
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
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
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
make[1]: Entering directory '/<<PKGBUILDDIR>>'
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
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
sed -i "/@LANG_ALTS@/d" debian/vim-gtk.postinst
# 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
dh_installchangelogs
cp src/vim-gtk3/vim src/vim-gtk3/vim.gtk3
# 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_bugfiles -A
dh_link
dh_installdocs
touch install-stamp-vim-gtk
dh_testdir
dh_bugfiles -A
touch install-stamp-xxd
dh_testdir
cat debian/tiny/vimrc.tiny.in | sed 's/@VIMCUR@/vim80/' > debian/tiny/vimrc.tiny
touch install-stamp-vim-gtk3
dh_testroot
dh_testdir
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_install
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
cp src/vim-nox/vim src/vim-nox/vim.nox
# variant-related installations
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
sed -i "/@LANG_ALTS@/d" debian/vim-athena.postinst
# fake help installation for vim-tiny
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
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
dh_link
cp src/vim-basic/vim src/vim-basic/vim.basic
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
# variant-related installations
dh_install
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_bugfiles -A
dh_link
dh_link
touch install-stamp-vim-tiny
dh_testdir
dh_link
dh_bugfiles -A
dh_bugfiles -A
dh_testroot
touch install-stamp-vim-athena
touch install-stamp-vim-nox
dh_testdir
dh_bugfiles -A
dh_strip
dh_testdir
touch install-stamp-vim-basic
dh_compress
dh_testroot
dh_testdir
dh_fixperms
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_testroot
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_testroot
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_installdeb
dh_shlibdeps
dh_compress
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_compress
dh_fixperms
dh_builddeb
dpkg-deb: building package 'xxd-dbgsym' in '../xxd-dbgsym_8.0.0197-4+deb9u3_armhf.deb'.
dh_compress
dpkg-deb: building package 'xxd' in '../xxd_8.0.0197-4+deb9u3_armhf.deb'.
dh_lintian
dh_fixperms
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_installdeb
dh_testdir
dh_lintian
dh_shlibdeps
dh_testroot
dh_installdeb
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_shlibdeps
dh_md5sums
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-tiny-dbgsym' in '../vim-tiny-dbgsym_8.0.0197-4+deb9u3_armhf.deb'.
dpkg-deb: building package 'vim-tiny' in '../vim-tiny_8.0.0197-4+deb9u3_armhf.deb'.
dh_testdir
dh_testroot
dh_compress
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
dh_compress
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
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-4+deb9u3_armhf.deb'.
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-athena-dbgsym' in '../vim-athena-dbgsym_8.0.0197-4+deb9u3_armhf.deb'.
dh_md5sums
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-gtk3-dbgsym' in '../vim-gtk3-dbgsym_8.0.0197-4+deb9u3_armhf.deb'.
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
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-nox-dbgsym' in '../vim-nox-dbgsym_8.0.0197-4+deb9u3_armhf.deb'.
dpkg-deb: building package 'vim-athena' in '../vim-athena_8.0.0197-4+deb9u3_armhf.deb'.
dpkg-deb: building package 'vim-gtk' in '../vim-gtk_8.0.0197-4+deb9u3_armhf.deb'.
dpkg-deb: building package 'vim-gtk3' in '../vim-gtk3_8.0.0197-4+deb9u3_armhf.deb'.
dpkg-deb: building package 'vim-nox' in '../vim-nox_8.0.0197-4+deb9u3_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: 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-4+deb9u3_armhf.deb'.
dpkg-deb: building package 'vim' in '../vim_8.0.0197-4+deb9u3_armhf.deb'.
 dpkg-genbuildinfo --build=any
 dpkg-genchanges --build=any -mRaspbian wandboard test autobuilder <root@raspbian.org> >../vim_8.0.0197-4+deb9u3_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 2019-06-24T00:27:46Z

Finished
--------

I: Built successfully

+------------------------------------------------------------------------------+
| Post Build Chroot                                                            |
+------------------------------------------------------------------------------+


+------------------------------------------------------------------------------+
| Changes                                                                      |
+------------------------------------------------------------------------------+


vim_8.0.0197-4+deb9u3_armhf.changes:
------------------------------------

Format: 1.8
Date: Fri, 21 Jun 2019 00:10:35 -0400
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-4+deb9u3
Distribution: stretch-staging
Urgency: medium
Maintainer: Raspbian wandboard 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: 930718
Changes:
 vim (2:8.0.0197-4+deb9u3) stretch-security; urgency=medium
 .
   * Backport patch 8.1.0067 to fix loss of syntax highlighting (Closes: #930718)
     + 8.1.0067: syntax highlighting not working when re-entering a buffer
Checksums-Sha1:
 2658a99067f8e70d182185f6791b94e8509563c7 3678560 vim-athena-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 6d02398d90b35872b1858ea46b093afe70240099 981084 vim-athena_8.0.0197-4+deb9u3_armhf.deb
 35208fae4fd26a16b25aa17432edbbc0cdf93431 2819750 vim-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 a6e16e9d1e598299a0c636d5464551fa66d44190 4014694 vim-gtk-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 5fa24b690f433c42dd605304d1ff7748a0b6e332 3845480 vim-gtk3-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 d578997ef5bd5da408994f5f4306d6a81af46181 996474 vim-gtk3_8.0.0197-4+deb9u3_armhf.deb
 71d7566ea8817f6fa4515d19e3777e7232d03160 995866 vim-gtk_8.0.0197-4+deb9u3_armhf.deb
 bab59ad234f7b69a9b9f27510cc9c4624fc242d5 3129830 vim-nox-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 e60e1667bedf437619a367e0b6212c2a0dc2346a 893972 vim-nox_8.0.0197-4+deb9u3_armhf.deb
 37b85fa36bdd1d621b2fab8e9aa6f82ddab2028e 1095510 vim-tiny-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 1380249a91e26d4226832553aba20e5184dafc02 338062 vim-tiny_8.0.0197-4+deb9u3_armhf.deb
 9943cd6c74940e95ba84df08ebbfa98af923eca5 15407 vim_8.0.0197-4+deb9u3_armhf.buildinfo
 bc32f196d383cc73b628f06d74202b4030497ced 791078 vim_8.0.0197-4+deb9u3_armhf.deb
 d497573e4ab179030fe841ba8662ff927601c546 10774 xxd-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 c4c08bb64c34fa1753af1e3194654d0dfa03ad0c 131530 xxd_8.0.0197-4+deb9u3_armhf.deb
Checksums-Sha256:
 bd8d230450aa0551f7d3c3ee473d2b413c94d9b5bb178447863a691c5ca32bcc 3678560 vim-athena-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 0aa8ef1daf3dbf5a7595eaf79d1b3920c8159ed46b7863272ba4cf6145039001 981084 vim-athena_8.0.0197-4+deb9u3_armhf.deb
 1fbb0811f7a5190b09412931de83b1c96e2c93b33c7b9ecce2b022c6f7153aca 2819750 vim-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 2d01f77160e5f4b8090915bda4ba07816ef00cc1516f360169dc38f35f65c0a9 4014694 vim-gtk-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 590313bbbc36887ec6f78112264dc110e8634d31d71e9e3cc9b6619130c40387 3845480 vim-gtk3-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 4ad8f43bb362249c1a7352259899b59a05f24e5204bbb92bd391ae922ea07326 996474 vim-gtk3_8.0.0197-4+deb9u3_armhf.deb
 cc7d875efa5079fcdd6a5adc658433ce70829a8ee1d93a453df4b50c6ef9c019 995866 vim-gtk_8.0.0197-4+deb9u3_armhf.deb
 d9af0c64f375819588775eabee36db8328c9e58ae8cdf582dd7e15fd5ea84161 3129830 vim-nox-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 ad877f2b9bee9b51714782ba3ab0f3c89d1b5c5fb89838e3fdfef9c370bef392 893972 vim-nox_8.0.0197-4+deb9u3_armhf.deb
 c99fddbbebf048966d6513ac513d8c7d3c3eac8f2322a59b249b73546ec32b7a 1095510 vim-tiny-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 d0235eed256065f34d9dfd9d1863e0730f40ba66768e3fa28daa4e3e3c289114 338062 vim-tiny_8.0.0197-4+deb9u3_armhf.deb
 87f4ba01cd5cf8646c038c4ef56c726ad364d79a77115f29dae6b2ae68c0a3b9 15407 vim_8.0.0197-4+deb9u3_armhf.buildinfo
 4523a3cd5624fcbb2507171408554bcce7cd05652448c4b980e8966360f041bb 791078 vim_8.0.0197-4+deb9u3_armhf.deb
 6aeaa98a8671813cb762f32af53925775b58a40c83068d05bcd3b9449890b98d 10774 xxd-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 1571d233d5a3306789723227910853e910c591d5111a1315b0aea12178ee2392 131530 xxd_8.0.0197-4+deb9u3_armhf.deb
Files:
 1a67982d1f7f8657e8d6fdb4708a6575 3678560 debug extra vim-athena-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 297310e2724fe12a147aa2714aa87f68 981084 editors extra vim-athena_8.0.0197-4+deb9u3_armhf.deb
 e3e05144f39b5102c99852539419dfed 2819750 debug extra vim-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 776139fc55e59bdb661131e6e9df5801 4014694 debug extra vim-gtk-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 b43335edd4cf93e221309d8fa5f2f832 3845480 debug extra vim-gtk3-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 789427266493ddec4d26dd7d4f69bdac 996474 editors extra vim-gtk3_8.0.0197-4+deb9u3_armhf.deb
 3bd13ff68cc632d80a0f12cd5c186cf0 995866 editors extra vim-gtk_8.0.0197-4+deb9u3_armhf.deb
 911cd2beed8bd6ad2494ae3c2de2bc10 3129830 debug extra vim-nox-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 1c05675f6f9e83726123442936e7c7e6 893972 editors extra vim-nox_8.0.0197-4+deb9u3_armhf.deb
 5b27b3eda600df858d061a9145a46775 1095510 debug extra vim-tiny-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 9d71a9c3ce4de31be1072dce9c7f1fee 338062 editors important vim-tiny_8.0.0197-4+deb9u3_armhf.deb
 6a3fdcfdc7ce564943c262d0e214f1c6 15407 editors optional vim_8.0.0197-4+deb9u3_armhf.buildinfo
 c0469f032c0394519415c6f3fb0526f1 791078 editors optional vim_8.0.0197-4+deb9u3_armhf.deb
 4dea69fd5e8722d086c0bc7d381ace7d 10774 debug extra xxd-dbgsym_8.0.0197-4+deb9u3_armhf.deb
 e9fcb6c66d2b7bc0712b8d24b4974f42 131530 editors extra xxd_8.0.0197-4+deb9u3_armhf.deb

+------------------------------------------------------------------------------+
| Package contents                                                             |
+------------------------------------------------------------------------------+


vim-athena-dbgsym_8.0.0197-4+deb9u3_armhf.deb
---------------------------------------------

 new debian package, version 2.0.
 size 3678560 bytes: control archive=519 bytes.
     495 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-athena-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 3884
 Depends: vim-athena (= 2:8.0.0197-4+deb9u3)
 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: 293bd34ae115d98362ed2ed6ec6310d1c10d2a0e

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/29/
-rw-r--r-- root/root   3966748 2019-06-21 04:10 ./usr/lib/debug/.build-id/29/3bd34ae115d98362ed2ed6ec6310d1c10d2a0e.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-athena-dbgsym -> vim-athena


vim-athena_8.0.0197-4+deb9u3_armhf.deb
--------------------------------------

 new debian package, version 2.0.
 size 981084 bytes: control archive=1755 bytes.
    1214 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-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2352
 Depends: vim-common (= 2:8.0.0197-4+deb9u3), vim-gui-common (= 2:8.0.0197-4+deb9u3), vim-runtime (= 2:8.0.0197-4+deb9u3), 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root   2390556 2019-06-21 04:10 ./usr/bin/vim.athena
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/vim-athena/
-rw-r--r-- root/root       516 2019-06-21 04:10 ./usr/share/bug/vim-athena/presubj
-rwxr-xr-x root/root       204 2019-06-21 04:10 ./usr/share/bug/vim-athena/script
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-athena -> vim-gui-common
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       146 2019-06-21 04:10 ./usr/share/lintian/overrides/vim-athena


vim-dbgsym_8.0.0197-4+deb9u3_armhf.deb
--------------------------------------

 new debian package, version 2.0.
 size 2819750 bytes: control archive=510 bytes.
     474 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 3000
 Depends: vim (= 2:8.0.0197-4+deb9u3)
 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: 73532da62af74aad6a83108e54d60ce67f4d6052

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/73/
-rw-r--r-- root/root   3060848 2019-06-21 04:10 ./usr/lib/debug/.build-id/73/532da62af74aad6a83108e54d60ce67f4d6052.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-dbgsym -> vim


vim-gtk-dbgsym_8.0.0197-4+deb9u3_armhf.deb
------------------------------------------

 new debian package, version 2.0.
 size 4014694 bytes: control archive=518 bytes.
     486 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-gtk-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 4212
 Depends: vim-gtk (= 2:8.0.0197-4+deb9u3)
 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: 4cf5e0f4f98d5fa360cc1ac1a831035a9c6e5408

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/4c/
-rw-r--r-- root/root   4302380 2019-06-21 04:10 ./usr/lib/debug/.build-id/4c/f5e0f4f98d5fa360cc1ac1a831035a9c6e5408.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-gtk-dbgsym -> vim-gtk


vim-gtk3-dbgsym_8.0.0197-4+deb9u3_armhf.deb
-------------------------------------------

 new debian package, version 2.0.
 size 3845480 bytes: control archive=519 bytes.
     489 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-gtk3-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 4048
 Depends: vim-gtk3 (= 2:8.0.0197-4+deb9u3)
 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: a00fcab22757535b2784cb762b15b3fc11a77bae

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/a0/
-rw-r--r-- root/root   4134320 2019-06-21 04:10 ./usr/lib/debug/.build-id/a0/0fcab22757535b2784cb762b15b3fc11a77bae.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-gtk3-dbgsym -> vim-gtk3


vim-gtk3_8.0.0197-4+deb9u3_armhf.deb
------------------------------------

 new debian package, version 2.0.
 size 996474 bytes: control archive=1829 bytes.
    1379 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-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2379
 Depends: vim-common (= 2:8.0.0197-4+deb9u3), vim-gui-common (= 2:8.0.0197-4+deb9u3), vim-runtime (= 2:8.0.0197-4+deb9u3), 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root   2417868 2019-06-21 04:10 ./usr/bin/vim.gtk3
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/vim-gtk3/
-rw-r--r-- root/root       516 2019-06-21 04:10 ./usr/share/bug/vim-gtk3/presubj
-rwxr-xr-x root/root       204 2019-06-21 04:10 ./usr/share/bug/vim-gtk3/script
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-gtk3 -> vim-gui-common
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       142 2019-06-21 04:10 ./usr/share/lintian/overrides/vim-gtk3


vim-gtk_8.0.0197-4+deb9u3_armhf.deb
-----------------------------------

 new debian package, version 2.0.
 size 995866 bytes: control archive=1810 bytes.
    1324 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-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2375
 Depends: vim-common (= 2:8.0.0197-4+deb9u3), vim-gui-common (= 2:8.0.0197-4+deb9u3), vim-runtime (= 2:8.0.0197-4+deb9u3), 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root   2413876 2019-06-21 04:10 ./usr/bin/vim.gtk
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/vim-gtk/
-rw-r--r-- root/root       516 2019-06-21 04:10 ./usr/share/bug/vim-gtk/presubj
-rwxr-xr-x root/root       204 2019-06-21 04:10 ./usr/share/bug/vim-gtk/script
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-gtk -> vim-gui-common
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       140 2019-06-21 04:10 ./usr/share/lintian/overrides/vim-gtk


vim-nox-dbgsym_8.0.0197-4+deb9u3_armhf.deb
------------------------------------------

 new debian package, version 2.0.
 size 3129830 bytes: control archive=518 bytes.
     486 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-nox-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 3333
 Depends: vim-nox (= 2:8.0.0197-4+deb9u3)
 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: 1f18c745577ea01d9eb88bbb96de37a57e1f76f4

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/1f/
-rw-r--r-- root/root   3402568 2019-06-21 04:10 ./usr/lib/debug/.build-id/1f/18c745577ea01d9eb88bbb96de37a57e1f76f4.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-nox-dbgsym -> vim-nox


vim-nox_8.0.0197-4+deb9u3_armhf.deb
-----------------------------------

 new debian package, version 2.0.
 size 893972 bytes: control archive=1723 bytes.
    1101 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-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2134
 Depends: vim-common (= 2:8.0.0197-4+deb9u3), vim-runtime (= 2:8.0.0197-4+deb9u3), 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root   2166820 2019-06-21 04:10 ./usr/bin/vim.nox
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/vim-nox/
-rw-r--r-- root/root       516 2019-06-21 04:10 ./usr/share/bug/vim-nox/presubj
-rwxr-xr-x root/root       204 2019-06-21 04:10 ./usr/share/bug/vim-nox/script
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-nox -> vim-common
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       140 2019-06-21 04:10 ./usr/share/lintian/overrides/vim-nox


vim-tiny-dbgsym_8.0.0197-4+deb9u3_armhf.deb
-------------------------------------------

 new debian package, version 2.0.
 size 1095510 bytes: control archive=518 bytes.
     489 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-tiny-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 1221
 Depends: vim-tiny (= 2:8.0.0197-4+deb9u3)
 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: a8a325c537b4d890d8a5ce5f6f8b9f87bcc2e2f9

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/a8/
-rw-r--r-- root/root   1239320 2019-06-21 04:10 ./usr/lib/debug/.build-id/a8/a325c537b4d890d8a5ce5f6f8b9f87bcc2e2f9.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-tiny-dbgsym -> vim-tiny


vim-tiny_8.0.0197-4+deb9u3_armhf.deb
------------------------------------

 new debian package, version 2.0.
 size 338062 bytes: control archive=1721 bytes.
      20 bytes,     1 lines      conffiles            
     847 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-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 830
 Depends: vim-common (= 2:8.0.0197-4+deb9u3), 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./etc/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./etc/vim/
-rw-r--r-- root/root       662 2019-06-21 04:10 ./etc/vim/vimrc.tiny
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root    819948 2019-06-21 04:10 ./usr/bin/vim.tiny
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/vim-tiny/
-rw-r--r-- root/root       516 2019-06-21 04:10 ./usr/share/bug/vim-tiny/presubj
-rwxr-xr-x root/root       204 2019-06-21 04:10 ./usr/share/bug/vim-tiny/script
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim-tiny -> vim-common
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       142 2019-06-21 04:10 ./usr/share/lintian/overrides/vim-tiny
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/vim/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/vim/vim80/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/vim/vim80/doc/
-rw-r--r-- root/root       324 2019-06-21 04:10 ./usr/share/vim/vim80/doc/README.Debian
-rw-r--r-- root/root      1431 2019-06-21 04:10 ./usr/share/vim/vim80/doc/help.txt
-rw-r--r-- root/root        30 2019-06-21 04:10 ./usr/share/vim/vim80/doc/tags
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/vim/vimrc.tiny -> /etc/vim/vimrc.tiny


vim_8.0.0197-4+deb9u3_armhf.deb
-------------------------------

 new debian package, version 2.0.
 size 791078 bytes: control archive=1658 bytes.
     966 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-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 1880
 Depends: vim-common (= 2:8.0.0197-4+deb9u3), vim-runtime (= 2:8.0.0197-4+deb9u3), 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root   1906932 2019-06-21 04:10 ./usr/bin/vim.basic
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/bug/vim/
-rw-r--r-- root/root       516 2019-06-21 04:10 ./usr/share/bug/vim/presubj
-rwxr-xr-x root/root       204 2019-06-21 04:10 ./usr/share/bug/vim/script
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/vim -> vim-common
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       138 2019-06-21 04:10 ./usr/share/lintian/overrides/vim


xxd-dbgsym_8.0.0197-4+deb9u3_armhf.deb
--------------------------------------

 new debian package, version 2.0.
 size 10774 bytes: control archive=481 bytes.
     400 bytes,    13 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: xxd-dbgsym
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 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-4+deb9u3)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for xxd
 Build-Ids: 311ccd70a83fa0a2ac2bdacdbada29a6a5c98fab

drwxr-xr-x root/root         0 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/lib/debug/.build-id/31/
-rw-r--r-- root/root     14344 2019-06-21 04:10 ./usr/lib/debug/.build-id/31/1ccd70a83fa0a2ac2bdacdbada29a6a5c98fab.debug
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
lrwxrwxrwx root/root         0 2019-06-21 04:10 ./usr/share/doc/xxd-dbgsym -> xxd


xxd_8.0.0197-4+deb9u3_armhf.deb
-------------------------------

 new debian package, version 2.0.
 size 131530 bytes: control archive=817 bytes.
     516 bytes,    15 lines      control              
     634 bytes,    10 lines      md5sums              
 Package: xxd
 Source: vim
 Version: 2:8.0.0197-4+deb9u3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 163
 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 2019-06-21 04:10 ./
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/bin/
-rwxr-xr-x root/root     13848 2019-06-21 04:10 ./usr/bin/xxd
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/doc/xxd/
-rw-r--r-- root/root      1774 2019-06-21 04:10 ./usr/share/doc/xxd/NEWS.Debian.gz
-rw-r--r-- root/root     87211 2019-06-21 04:10 ./usr/share/doc/xxd/changelog.Debian.gz
-rw-r--r-- root/root     10927 2019-06-21 04:10 ./usr/share/doc/xxd/copyright
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/fr/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/fr/man1/
-rw-r--r-- root/root      4905 2019-06-21 04:10 ./usr/share/man/fr/man1/xxd.1.gz
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/it/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/it/man1/
-rw-r--r-- root/root      4819 2019-06-21 04:10 ./usr/share/man/it/man1/xxd.1.gz
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/ja/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/ja/man1/
-rw-r--r-- root/root      4774 2019-06-21 04:10 ./usr/share/man/ja/man1/xxd.1.gz
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/man1/
-rw-r--r-- root/root      4309 2019-06-21 04:10 ./usr/share/man/man1/xxd.1.gz
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/pl/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/pl/man1/
-rw-r--r-- root/root      4642 2019-06-21 04:10 ./usr/share/man/pl/man1/xxd.1.gz
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/ru/
drwxr-xr-x root/root         0 2019-06-21 04:10 ./usr/share/man/ru/man1/
-rw-r--r-- root/root      6117 2019-06-21 04:10 ./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: 502928
Build-Time: 4395
Distribution: stretch-staging
Host Architecture: armhf
Install-Time: 3195
Job: vim_2:8.0.0197-4+deb9u3
Machine Architecture: armhf
Package: vim
Package-Time: 7648
Source-Version: 2:8.0.0197-4+deb9u3
Space: 502928
Status: successful
Version: 2:8.0.0197-4+deb9u3
--------------------------------------------------------------------------------
Finished at 2019-06-24T00:27:46Z
Build needed 02:07:28, 502928k disc space