Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/z/zsh-syntax-highlighting/zsh-syntax-highlighting_0.7.1-2_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/zsh-syntax-highlighting-0.7.1-2_f38rhdc/zsh-syntax-highlighting_0.7.1-2_all.buildinfo Get source package info: zsh-syntax-highlighting=0.7.1-2 Source URL: http://snapshot.notset.fr/mr/package/zsh-syntax-highlighting/0.7.1-2/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.69-11.1 automake=1:1.16.1-4 autopoint=0.19.8.1-10 autotools-dev=20180224.1 base-files=11 base-passwd=3.5.47 bash=5.0-6 binutils=2.34-4 binutils-common=2.34-4 binutils-x86-64-linux-gnu=2.34-4 bsdmainutils=11.1.2+b1 bsdutils=1:2.34-0.1 build-essential=12.8 bzip2=1.0.8-2 coreutils=8.30-3+b1 cpp=4:9.2.1-3.1 cpp-9=9.2.1-31 dash=0.5.10.2-6 debconf=1.5.73 debhelper=12.9 debianutils=4.9.1 dh-autoreconf=19 dh-strip-nondeterminism=1.6.3-2 diffutils=1:3.7-3 dpkg=1.19.7 dpkg-dev=1.19.7 dwz=0.13-5 fdisk=2.34-0.1 file=1:5.38-4 findutils=4.7.0-1 g++=4:9.2.1-3.1 g++-9=9.2.1-31 gcc=4:9.2.1-3.1 gcc-10-base=10-20200304-1 gcc-9=9.2.1-31 gcc-9-base=9.2.1-31 gettext=0.19.8.1-10 gettext-base=0.19.8.1-10 grep=3.4-1 groff-base=1.22.4-4 gzip=1.10-1 hostname=3.23 init-system-helpers=1.57 intltool-debian=0.35.0+20060710.5 libacl1=2.2.53-6 libarchive-zip-perl=1.67-2 libasan5=9.2.1-31 libatomic1=10-20200304-1 libattr1=1:2.4.48-5 libaudit-common=1:2.8.5-2 libaudit1=1:2.8.5-2+b1 libbinutils=2.34-4 libblkid1=2.34-0.1 libbsd0=0.10.0-1 libbz2-1.0=1.0.8-2 libc-bin=2.29-10 libc-dev-bin=2.29-10 libc6=2.29-10 libc6-dev=2.29-10 libcap-ng0=0.7.9-2.1+b2 libcap2=1:2.32-1 libcc1-0=10-20200304-1 libcroco3=0.6.13-1 libcrypt-dev=1:4.4.15-1 libcrypt1=1:4.4.15-1 libctf-nobfd0=2.34-4 libctf0=2.34-4 libdb5.3=5.3.28+dfsg1-0.6 libdebconfclient0=0.251 libdebhelper-perl=12.9 libdpkg-perl=1.19.7 libelf1=0.176-1.1 libfdisk1=2.34-0.1 libffi7=3.3-3 libfile-stripnondeterminism-perl=1.6.3-2 libgcc-9-dev=9.2.1-31 libgcc-s1=10-20200304-1 libgcc1=1:10-20200304-1 libgcrypt20=1.8.5-5 libgdbm-compat4=1.18.1-5 libgdbm6=1.18.1-5 libglib2.0-0=2.64.0-2 libgmp10=2:6.2.0+dfsg-4 libgomp1=10-20200304-1 libgpg-error0=1.37-1 libicu63=63.2-3 libisl22=0.22.1-1 libitm1=10-20200304-1 liblsan0=10-20200304-1 liblz4-1=1.9.2-2 liblzma5=5.2.4-1+b1 libmagic-mgc=1:5.38-4 libmagic1=1:5.38-4 libmount1=2.34-0.1 libmpc3=1.1.0-1 libmpfr6=4.0.2-1 libncursesw6=6.2-1 libpam-modules=1.3.1-5 libpam-modules-bin=1.3.1-5 libpam-runtime=1.3.1-5 libpam0g=1.3.1-5 libpcre2-8-0=10.34-7 libpcre3=2:8.39-12+b1 libperl5.30=5.30.0-9 libpipeline1=1.5.2-2 libquadmath0=10-20200304-1 libseccomp2=2.4.2-2 libselinux1=3.0-1+b1 libsigsegv2=2.12-2 libsmartcols1=2.34-0.1 libstdc++-9-dev=9.2.1-31 libstdc++6=10-20200304-1 libsub-override-perl=0.09-2 libsystemd0=245-1 libtinfo6=6.2-1 libtool=2.4.6-14 libtsan0=10-20200304-1 libubsan1=10-20200304-1 libuchardet0=0.0.6-3 libudev1=245-1 libunistring2=0.9.10-2 libuuid1=2.34-0.1 libxml2=2.9.10+dfsg-4 linux-libc-dev=5.4.19-1 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-4 make=4.2.1-1.2 man-db=2.9.1-1 mawk=1.3.4.20200120-2 ncurses-base=6.2-1 ncurses-bin=6.2-1 patch=2.7.6-6 perl=5.30.0-9 perl-base=5.30.0-9 perl-modules-5.30=5.30.0-9 po-debconf=1.0.21 sed=4.7-1 sensible-utils=0.0.12+nmu1 sysvinit-utils=2.96-2.1 tar=1.30+dfsg-6+b1 util-linux=2.34-0.1 xz-utils=5.2.4-1+b1 zlib1g=1:1.2.11.dfsg-2 zsh=5.8-3 zsh-common=5.8-3 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20211009T024746Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20200311T211915Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d zsh-syntax-highlighting=0.7.1-2 && mkdir -p /build/zsh-syntax-highlighting-VpRHaQ && dpkg-source --no-check -x /*.dsc /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1 && chown -R builduser:builduser /build/zsh-syntax-highlighting-VpRHaQ" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1 && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1584124682" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/zsh-syntax-highlighting-VpRHaQ /tmp/zsh-syntax-highlighting-0.7.1-2_f38rhdc bullseye /dev/null deb http://snapshot.notset.fr/archive/debian/20200311T211915Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.eFF5senHne as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.eFF5senHne Reading package lists... Building dependency tree... util-linux is already the newest version (2.34-0.1). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 132 kB of archives. After this operation, 393 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20200311T211915Z unstable/main amd64 libfakeroot amd64 1.24-1 [45.7 kB] Get:2 http://snapshot.notset.fr/archive/debian/20200311T211915Z unstable/main amd64 fakeroot amd64 1.24-1 [85.9 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 132 kB in 0s (705 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4511 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.24-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.24-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.24-1_amd64.deb ... Unpacking fakeroot (1.24-1) ... Setting up libfakeroot:amd64 (1.24-1) ... Setting up fakeroot (1.24-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.29-10) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20211009T024746Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20200311T211915Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.eFF5senHne Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm InRelease [81.6 kB] Get:2 http://snapshot.notset.fr/archive/debian/20211009T024746Z unstable InRelease [165 kB] Hit:3 http://snapshot.notset.fr/archive/debian/20200311T211915Z unstable InRelease Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources [11.4 MB] Get:5 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages [11.1 MB] Ign:6 http://snapshot.notset.fr/archive/debian/20211009T024746Z unstable/main amd64 Packages Ign:6 http://snapshot.notset.fr/archive/debian/20211009T024746Z unstable/main amd64 Packages Ign:6 http://snapshot.notset.fr/archive/debian/20211009T024746Z unstable/main amd64 Packages Get:6 http://snapshot.notset.fr/archive/debian/20211009T024746Z unstable/main amd64 Packages [11.9 MB] Fetched 34.6 MB in 30s (1140 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.eFF5senHne I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d zsh-syntax-highlighting=0.7.1-2 && mkdir -p /build/zsh-syntax-highlighting-VpRHaQ && dpkg-source --no-check -x /*.dsc /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1 && chown -R builduser:builduser /build/zsh-syntax-highlighting-VpRHaQ"' exec /tmp/mmdebstrap.eFF5senHne Reading package lists... NOTICE: 'zsh-syntax-highlighting' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/debian/zsh-syntax-highlighting.git Please use: git clone https://salsa.debian.org/debian/zsh-syntax-highlighting.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 125 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main zsh-syntax-highlighting 0.7.1-2 (dsc) [2124 B] Get:2 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main zsh-syntax-highlighting 0.7.1-2 (tar) [113 kB] Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main zsh-syntax-highlighting 0.7.1-2 (diff) [9908 B] Fetched 125 kB in 0s (630 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'zsh-syntax-highlighting_0.7.1-2.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting zsh-syntax-highlighting in /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1 dpkg-source: info: unpacking zsh-syntax-highlighting_0.7.1.orig.tar.xz dpkg-source: info: unpacking zsh-syntax-highlighting_0.7.1-2.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying set-version.patch dpkg-source: info: applying fix-test-failures-due-to-ps.patch dpkg-source: info: applying noop-use-slash-nonexistent.patch I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1 && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1584124682" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.eFF5senHne dpkg-buildpackage: info: source package zsh-syntax-highlighting dpkg-buildpackage: info: source version 0.7.1-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Daniel Shahaf dpkg-source --before-build . dpkg-source: info: using options from zsh-syntax-highlighting-0.7.1/debian/source/options: --extend-diff-ignore=(^|/)(\.revision-hash)$ debian/rules clean dh clean dh_auto_clean make -j4 clean make[1]: Entering directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' rm -f docs/all.md make[1]: Leaving directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' dh_clean debian/rules binary-indep dh binary-indep dh_update_autotools_config -i dh_autoreconf -i dh_auto_configure -i dh_auto_build -i make -j4 "INSTALL=install --strip-program=true" make[1]: Entering directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' cd docs && \ cp highlighters.md all.md && \ printf '\n\nIndividual highlighters documentation\n=====================================' >> all.md && \ for doc in highlighters/*.md; do printf '\n\n'; cat "$doc"; done >> all.md make[1]: Leaving directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' dh_auto_test -i make -j4 test make[1]: Entering directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' ZSH_PATCHLEVEL=debian/5.8-3 Running test brackets # global (driver) tests 1..1 ok 1 # 'alias -- +foo=bar' is preserved 1..1 ## cursor-matchingbracket-line-finish # BUFFER=': $foo[bar]' ok 1 - cardinality check 1..8 ## cursor-matchingbracket # BUFFER=': ((( )))' ok 1 - [3,3] «(» ok 2 - [4,4] «(» ok 3 - [5,5] «(» ok 4 - [7,7] «)» ok 5 - [8,8] «)» ok 6 - [9,9] «)» ok 7 - [9,9] «)» ok 8 - cardinality check 1..1 ## empty-styles # BUFFER=': (x)' ok 1 - cardinality check 1..15 ## loop-styles # BUFFER=': ({[({[(x)]})]})' ok 1 - [3,3] «(» ok 2 - [4,4] «{» ok 3 - [5,5] «[» ok 4 - [6,6] «(» ok 5 - [7,7] «{» ok 6 - [8,8] «[» ok 7 - [9,9] «(» ok 8 - [11,11] «)» ok 9 - [12,12] «]» ok 10 - [13,13] «}» ok 11 - [14,14] «)» ok 12 - [15,15] «]» ok 13 - [16,16] «}» ok 14 - [17,17] «)» ok 15 - cardinality check 1..5 ## mismatch-patentheses # BUFFER='echo ({x}]' ok 1 - [6,6] «(» ok 2 - [7,7] «{» ok 3 - [9,9] «}» ok 4 - [10,10] «]» ok 5 - cardinality check 1..5 ## near-quotes # BUFFER=': {"{x}"}' ok 1 - [3,3] «{» ok 2 - [5,5] «{» ok 3 - [7,7] «}» ok 4 - [9,9] «}» ok 5 - cardinality check 1..7 ## nested-parentheses # BUFFER='echo $(echo ${(z)array})' ok 1 - [7,7] «(» ok 2 - [14,14] «{» ok 3 - [15,15] «(» ok 4 - [17,17] «)» ok 5 - [23,23] «}» ok 6 - [24,24] «)» ok 7 - cardinality check 1..2 ## only-error # BUFFER=': x)' ok 1 - [4,4] «)» ok 2 - cardinality check 1..2 ## quoted-patentheses # BUFFER='echo "foo ( bar"' ok 1 - [11,11] «(» ok 2 - cardinality check 1..5 ## simple-parentheses # BUFFER='echo ({x})' ok 1 - [6,6] «(» ok 2 - [7,7] «{» ok 3 - [9,9] «}» ok 4 - [10,10] «)» ok 5 - cardinality check 1..4 ## unclosed-patentheses # BUFFER='echo ({x}' ok 1 - [6,6] «(» ok 2 - [7,7] «{» ok 3 - [9,9] «}» ok 4 - cardinality check 1..4 ## unclosed-patentheses2 # BUFFER='echo {x})' ok 1 - [6,6] «{» ok 2 - [8,8] «}» ok 3 - [9,9] «)» ok 4 - cardinality check Running test main # global (driver) tests 1..1 ok 1 # 'alias -- +foo=bar' is preserved 1..2 ## abspath-in-command-position1 # BUFFER=/ ok 1 - [1,1] «/» ok 2 - cardinality check 1..2 ## abspath-in-command-position2 # BUFFER=/bi ok 1 - [1,3] «/bi» ok 2 - cardinality check 1..2 ## abspath-in-command-position3 # BUFFER=/bin ok 1 - [1,4] «/bin» ok 2 - cardinality check 1..2 ## abspath-in-command-position4 # BUFFER=/bin/s ok 1 - [1,6] «/bin/s» ok 2 - cardinality check 1..2 ## abspath-in-command-position5 # BUFFER=/bin/sh ok 1 - [1,7] «/bin/sh» ok 2 - cardinality check 1..3 ## alias-assignment1 # BUFFER='x=y ls' ok 1 - [1,3] «x=y» ok 2 - [5,6] «ls» ok 3 - cardinality check 1..2 ## alias-basic # BUFFER=foo ok 1 - [1,3] «foo» ok 2 - cardinality check 1..2 ## alias-command-substitution # BUFFER=foobar ok 1 - [1,6] «foobar» ok 2 - cardinality check 1..2 ## alias-comment1 # BUFFER=x not ok 1 - [1,1] «x» - expected (1 1 "alias"), observed (1 1 "unknown-token"). # TODO "issue #616" ok 2 - cardinality check 1..2 ## alias-comment2 # BUFFER=x ok 1 - [1,1] «x» ok 2 - cardinality check 1..4 ## alias-complex # BUFFER='x file echo' ok 1 - [1,1] «x» ok 2 - [3,6] «file» ok 3 - [8,11] «echo» ok 4 - cardinality check 1..4 ## alias-empty # BUFFER='x echo foo' ok 1 - [1,1] «x» ok 2 - [3,6] «echo» ok 3 - [8,10] «foo» ok 4 - cardinality check 1..2 ## alias-eponymous1 # BUFFER=ls ok 1 - [1,2] «ls» ok 2 - cardinality check 1..2 ## alias-eponymous2 # BUFFER=ls ok 1 - [1,2] «ls» ok 2 - cardinality check 1..5 ## alias-loop # BUFFER='a foo; :' ok 1 - [1,1] «a» ok 2 - [3,5] «foo» ok 3 - [6,6] «;» ok 4 - [8,8] «:» ok 5 - cardinality check 1..2 ## alias-loop2 # BUFFER=ls ok 1 - [1,2] «ls» ok 2 - cardinality check 1..7 ## alias-nested-precommand # BUFFER='a -u phy1729 echo; :' ok 1 - [1,1] «a» ok 2 - [3,4] «-u» ok 3 - [6,12] «phy1729» ok 4 - [14,17] «echo» ok 5 - [18,18] «;» ok 6 - [20,20] «:» ok 7 - cardinality check 1..5 ## alias-nested # BUFFER='a foo; :' ok 1 - [1,1] «a» ok 2 - [3,5] «foo» ok 3 - [6,6] «;» ok 4 - [8,8] «:» ok 5 - cardinality check 1..2 ## alias-parameter # BUFFER='$foo' ok 1 - [1,4] «$foo» ok 2 - cardinality check 1..5 ## alias-precommand-option-argument1 # BUFFER='sudo_u phy1729 echo foo' ok 1 - [1,6] «sudo_u» ok 2 - [8,14] «phy1729» not ok 3 - [16,19] «echo» - expected (17 19 "command"), observed (16 19 "builtin"). # TODO "issue #540" ok 4 - [21,23] «foo» ok 5 - cardinality check 1..5 ## alias-precommand-option-argument2 # BUFFER='sudo_b_u phy1729 echo foo' ok 1 - [1,8] «sudo_b_u» ok 2 - [10,16] «phy1729» not ok 3 - [18,21] «echo» - expected (18 21 "command"), observed (18 21 "builtin"). # TODO "issue #540" ok 4 - [23,25] «foo» ok 5 - cardinality check 1..5 ## alias-precommand-option-argument3 # BUFFER='sudo_u phy1729 ls foo' ok 1 - [1,6] «sudo_u» ok 2 - [8,14] «phy1729» ok 3 - [16,17] «ls» ok 4 - [19,21] «foo» ok 5 - cardinality check 1..5 ## alias-precommand-option-argument4 # BUFFER='sudo_b_u phy1729 ls foo' ok 1 - [1,8] «sudo_b_u» ok 2 - [10,16] «phy1729» ok 3 - [18,19] «ls» ok 4 - [21,23] «foo» ok 5 - cardinality check 1..5 ## alias-quoted # BUFFER='"a" foo; \ls' ok 1 - [1,3] «"a"» ok 2 - [5,7] «foo» ok 3 - [8,8] «;» ok 4 - [10,12] «\ls» ok 5 - cardinality check 1..5 ## alias-redirect # BUFFER='x foo echo bar' ok 1 - [1,1] «x» ok 2 - [3,5] «foo» ok 3 - [7,10] «echo» ok 4 - [12,14] «bar» ok 5 - cardinality check 1..3 ## alias-self # BUFFER='echo bar' ok 1 - [1,4] «echo» ok 2 - [6,8] «bar» ok 3 - cardinality check 1..2 ## alias-to-dir # BUFFER=x not ok 1 - [1,1] «x» - expected (1 1 "unknown-token"), observed (1 1 "alias"). # TODO "issue #668" ok 2 - cardinality check 1..2 ## alias-unknown-token1 # BUFFER='a ' ok 1 - [1,1] «a» ok 2 - cardinality check 1..2 ## alias-unknown-token2 # BUFFER='a ' ok 1 - [1,1] «a» ok 2 - cardinality check 1..6 ## alias # BUFFER='x.alias2; alias1; alias2' ok 1 - [1,8] «x.alias2» ok 2 - [9,9] «;» ok 3 - [11,16] «alias1» ok 4 - [17,17] «;» ok 5 - [19,24] «alias2» ok 6 - cardinality check 1..8 ## always1 # BUFFER='{ ls } always { pwd }' ok 1 - [1,1] «{» ok 2 - [3,4] «ls» ok 3 - [6,6] «}» ok 4 - [8,13] «always» ok 5 - [15,15] «{» ok 6 - [17,19] «pwd» ok 7 - [21,21] «}» ok 8 - cardinality check 1..10 ## always2 # BUFFER='{ ls } always { pwd }' ok 1 - [1,1] «{» ok 2 - [2,2] «↵» ok 3 - [3,4] «ls» ok 4 - [5,5] «↵» ok 5 - [6,6] «}» ok 6 - [8,13] «always» ok 7 - [15,15] «{» ok 8 - [17,19] «pwd» ok 9 - [21,21] «}» ok 10 - cardinality check 1..9 ## always3 # BUFFER='echo { foo } always { bar }' ok 1 - [1,4] «echo» ok 2 - [6,6] «{» ok 3 - [8,10] «foo» ok 4 - [12,12] «}» ok 5 - [14,19] «always» ok 6 - [21,21] «{» ok 7 - [23,25] «bar» ok 8 - [27,27] «}» ok 9 - cardinality check 1..12 ## anonymous-function # BUFFER='() echo hello; () { echo world } "argument"' ok 1 - [1,2] «()» ok 2 - [4,7] «echo» ok 3 - [9,13] «hello» ok 4 - [14,14] «;» ok 5 - [16,17] «()» ok 6 - [19,19] «{» ok 7 - [21,24] «echo» ok 8 - [26,30] «world» ok 9 - [32,32] «}» ok 10 - [34,43] «"argument"» ok 11 - [34,43] «"argument"» ok 12 - cardinality check 1..2 ## arg0-colon # BUFFER=\''x: /' ok 1 - [1,5] «'x: /» ok 2 - cardinality check 1..3 ## arithmetic-evaluation # BUFFER='(( x == 42 ))' ok 1 - [1,2] «((» ok 2 - [12,13] «))» ok 3 - cardinality check 1..5 ## assign-append # BUFFER='a+=(lorem ipsum)' ok 1 - [1,4] «a+=(» ok 2 - [5,9] «lorem» ok 3 - [11,15] «ipsum» ok 4 - [16,16] «)» ok 5 - cardinality check 1..5 ## assign-argv # BUFFER='42=foo 43+=bar' ok 1 - [1,6] «42=foo» ok 2 - [4,6] «foo» ok 3 - [8,14] «43+=bar» ok 4 - [12,14] «bar» ok 5 - cardinality check 1..7 ## assign-array # BUFFER='(A=(hello world))' ok 1 - [1,1] «(» ok 2 - [2,4] «A=(» ok 3 - [5,9] «hello» ok 4 - [11,15] «world» ok 5 - [16,16] «)» ok 6 - [17,17] «)» ok 7 - cardinality check 1..6 ## assign-array2 # BUFFER='A=(hello world) ls' ok 1 - [1,3] «A=(» ok 2 - [4,8] «hello» ok 3 - [10,14] «world» ok 4 - [15,15] «)» ok 5 - [17,18] «ls» ok 6 - cardinality check 1..7 ## assign-array3 # BUFFER='A=(hello world) b=42' ok 1 - [1,3] «A=(» ok 2 - [4,8] «hello» ok 3 - [10,14] «world» ok 4 - [15,15] «)» ok 5 - [17,20] «b=42» ok 6 - [19,20] «42» ok 7 - cardinality check 1..4 ## assign-not-array # BUFFER='a=foo( bar ) :' ok 1 - [1,12] «a=foo( bar )» ok 2 - [3,12] «foo( bar )» ok 3 - [14,14] «:» ok 4 - cardinality check 1..4 ## assign-not-array2 # BUFFER='a=foo\( :' ok 1 - [1,7] «a=foo\(» ok 2 - [3,7] «foo\(» ok 3 - [9,9] «:» ok 4 - cardinality check 1..7 ## assign-semicolon # BUFFER='A=1; echo hello world' ok 1 - [1,3] «A=1» ok 2 - [3,3] «1» ok 3 - [4,4] «;» ok 4 - [6,9] «echo» ok 5 - [11,15] «hello» ok 6 - [17,21] «world» ok 7 - cardinality check 1..5 ## assign-subshell # BUFFER='(A=1)' ok 1 - [1,1] «(» ok 2 - [2,4] «A=1» ok 3 - [4,4] «1» ok 4 - [5,5] «)» ok 5 - cardinality check 1..4 ## assign-value-quote1 # BUFFER='s="foo'\''bar"' ok 1 - [1,11] «s="foo'bar"» ok 2 - [3,11] «"foo'bar"» ok 3 - [3,11] «"foo'bar"» ok 4 - cardinality check 1..4 ## assign-value-quote2 # BUFFER='s="foo '\'\'' bar"' ok 1 - [1,14] «s="foo '' bar"» ok 2 - [3,14] «"foo '' bar"» ok 3 - [3,14] «"foo '' bar"» ok 4 - cardinality check 1..8 ## assign # BUFFER='A=1 b=("foo" bar)' ok 1 - [1,3] «A=1» ok 2 - [3,3] «1» ok 3 - [5,7] «b=(» ok 4 - [8,12] «"foo"» ok 5 - [8,12] «"foo"» ok 6 - [14,16] «bar» ok 7 - [17,17] «)» ok 8 - cardinality check 1..4 ## assignment-quoted # BUFFER='1="foo"' ok 1 - [1,7] «1="foo"» ok 2 - [3,7] «"foo"» ok 3 - [3,7] «"foo"» ok 4 - cardinality check 1..26 ## back-quoted-argument # BUFFER='echo `echo \`42\`` "is `echo equal` to" `echo 6 times 9' ok 1 - [1,4] «echo» ok 2 - [6,18] «`echo \`42\``» ok 3 - [6,18] «`echo \`42\``» ok 4 - [6,6] «`» ok 5 - [7,10] «echo» ok 6 - [12,17] «\`42\`» ok 7 - [12,17] «\`42\`» ok 8 - [12,13] «\`» ok 9 - [14,15] «42» ok 10 - [16,17] «\`» ok 11 - [18,18] «`» ok 12 - [20,39] «"is `echo equal` to"» ok 13 - [20,39] «"is `echo equal` to"» ok 14 - [24,35] «`echo equal`» ok 15 - [24,24] «`» ok 16 - [25,28] «echo» ok 17 - [30,34] «equal» ok 18 - [35,35] «`» ok 19 - [41,55] «`echo 6 times 9» ok 20 - [41,55] «`echo 6 times 9» ok 21 - [41,41] «`» ok 22 - [42,45] «echo» ok 23 - [47,47] «6» ok 24 - [49,53] «times» ok 25 - [55,55] «9» ok 26 - cardinality check 1..7 ## back-quoted-open # BUFFER=': `ls fo' ok 1 - [1,1] «:» ok 2 - [3,8] «`ls fo» ok 3 - [3,8] «`ls fo» ok 4 - [3,3] «`» ok 5 - [4,5] «ls» ok 6 - [7,8] «fo» ok 7 - cardinality check 1..2 ## backslash-continuation # PREBUFFER='echo \ ' # BUFFER=noglob ok 1 - [1,6] «noglob» ok 2 - cardinality check 1..6 ## backslash-space # BUFFER='echo \ '\'foo\'' ; ls' ok 1 - [1,4] «echo» ok 2 - [6,12] «\ 'foo'» ok 3 - [8,12] «'foo'» ok 4 - [14,14] «;» ok 5 - [16,17] «ls» ok 6 - cardinality check 1..2 ## backslash # BUFFER='\' ok 1 - [1,1] «\» ok 2 - cardinality check 1..7 ## bang-assign-array # BUFFER='foo=(bar abaz) ! ls' ok 1 - [1,5] «foo=(» ok 2 - [6,8] «bar» ok 3 - [10,13] «abaz» ok 4 - [14,14] «)» ok 5 - [16,16] «!» ok 6 - [18,19] «ls» ok 7 - cardinality check 1..5 ## bang-assign-scalar # BUFFER='foo=bar ! ls' ok 1 - [1,7] «foo=bar» ok 2 - [5,7] «bar» ok 3 - [9,9] «!» ok 4 - [11,12] «ls» ok 5 - cardinality check 1..6 ## bang-pipeline # BUFFER='! ls | ! ls' ok 1 - [1,1] «!» ok 2 - [3,4] «ls» ok 3 - [6,6] «|» ok 4 - [8,8] «!» ok 5 - [10,11] «ls» ok 6 - cardinality check 1..7 ## braces1 # BUFFER='() { echo } }' ok 1 - [1,2] «()» ok 2 - [4,4] «{» ok 3 - [6,9] «echo» ok 4 - [11,11] «}» ok 5 - [12,12] «↵» ok 6 - [13,13] «}» ok 7 - cardinality check 1..7 ## braces2 # BUFFER='() { echo } }' ok 1 - [1,2] «()» ok 2 - [4,4] «{» ok 3 - [6,9] «echo» ok 4 - [11,11] «}» ok 5 - [12,12] «↵» ok 6 - [13,13] «}» ok 7 - cardinality check 1..5 ## brackets-matching1 # BUFFER='[[ -n foo ]]' ok 1 - [1,2] «[[» ok 2 - [4,5] «-n» ok 3 - [7,9] «foo» ok 4 - [11,12] «]]» ok 5 - cardinality check 1..5 ## brackets-matching2 # BUFFER='[ -n foo ]' ok 1 - [1,1] «[» ok 2 - [3,4] «-n» ok 3 - [6,8] «foo» ok 4 - [10,10] «]» ok 5 - cardinality check 1..6 ## brackets-mismatch1 # BUFFER='() { echo foo )' ok 1 - [1,2] «()» ok 2 - [4,4] «{» ok 3 - [6,9] «echo» ok 4 - [11,13] «foo» ok 5 - [15,15] «)» ok 6 - cardinality check 1..9 ## brackets-mismatch10-if-negative # BUFFER='elif true; then echo two; fi' ok 1 - [1,4] «elif» ok 2 - [6,9] «true» ok 3 - [10,10] «;» ok 4 - [12,15] «then» ok 5 - [17,20] «echo» ok 6 - [22,24] «two» ok 7 - [25,25] «;» ok 8 - [27,28] «fi» ok 9 - cardinality check 1..6 ## brackets-mismatch2 # BUFFER='() ( echo foo }' ok 1 - [1,2] «()» ok 2 - [4,4] «(» ok 3 - [6,9] «echo» ok 4 - [11,13] «foo» ok 5 - [15,15] «}» ok 6 - cardinality check 1..3 ## brackets-mismatch3 # BUFFER='echo )' ok 1 - [1,4] «echo» ok 2 - [6,6] «)» ok 3 - cardinality check 1..3 ## brackets-mismatch4 # BUFFER='echo }' ok 1 - [1,4] «echo» ok 2 - [6,6] «}» ok 3 - cardinality check 1..4 ## brackets-mismatch5 # BUFFER='echo { }' ok 1 - [1,4] «echo» ok 2 - [6,6] «{» ok 3 - [8,8] «}» ok 4 - cardinality check 1..7 ## brackets-mismatch6 # BUFFER='(repeat 1; do)' ok 1 - [1,1] «(» ok 2 - [2,7] «repeat» ok 3 - [9,9] «1» ok 4 - [10,10] «;» ok 5 - [12,13] «do» ok 6 - [14,14] «)» ok 7 - cardinality check 1..12 ## brackets-mismatch7 # BUFFER='for n in *; do echo $n; end' ok 1 - [1,3] «for» ok 2 - [5,5] «n» ok 3 - [7,8] «in» ok 4 - [10,10] «*» ok 5 - [10,10] «*» ok 6 - [11,11] «;» ok 7 - [13,14] «do» ok 8 - [16,19] «echo» ok 9 - [21,22] «$n» ok 10 - [23,23] «;» ok 11 - [25,27] «end» ok 12 - cardinality check 1..20 ## brackets-mismatch8-if-positive # BUFFER='if false; then echo one; elif true; then echo two; else echo three; fi' ok 1 - [1,2] «if» ok 2 - [4,8] «false» ok 3 - [9,9] «;» ok 4 - [11,14] «then» ok 5 - [16,19] «echo» ok 6 - [21,23] «one» ok 7 - [24,24] «;» ok 8 - [26,29] «elif» ok 9 - [31,34] «true» ok 10 - [35,35] «;» ok 11 - [37,40] «then» ok 12 - [42,45] «echo» ok 13 - [47,49] «two» ok 14 - [50,50] «;» ok 15 - [52,55] «else» ok 16 - [57,60] «echo» ok 17 - [62,66] «three» ok 18 - [67,67] «;» ok 19 - [69,70] «fi» ok 20 - cardinality check 1..5 ## brackets-mismatch8 # BUFFER='(ls&)' ok 1 - [1,1] «(» ok 2 - [2,3] «ls» ok 3 - [4,4] «&» ok 4 - [5,5] «)» ok 5 - cardinality check 1..9 ## brackets-mismatch9-if-positive # BUFFER='if false; then echo one; fi' ok 1 - [1,2] «if» ok 2 - [4,8] «false» ok 3 - [9,9] «;» ok 4 - [11,14] «then» ok 5 - [16,19] «echo» ok 6 - [21,23] «one» ok 7 - [24,24] «;» ok 8 - [26,27] «fi» ok 9 - cardinality check 1..7 ## brackets-premature-termination # BUFFER='[[ -n foo; echo ]]' ok 1 - [1,2] «[[» ok 2 - [4,5] «-n» ok 3 - [7,9] «foo» ok 4 - [10,10] «;» ok 5 - [12,15] «echo» ok 6 - [17,18] «]]» ok 7 - cardinality check 1..5 ## cmdpos-elision-partial # BUFFER='$x -u phy1729 ls' ok 1 - [1,2] «$x» ok 2 - [4,5] «-u» ok 3 - [7,13] «phy1729» ok 4 - [15,16] «ls» ok 5 - cardinality check 1..12 ## command-substitution-adjacent # BUFFER='echo "$(echo)$(echo)' ok 1 - [1,4] «echo» ok 2 - [6,20] «"$(echo)$(echo)» ok 3 - [6,6] «"» ok 4 - [7,13] «$(echo)» ok 5 - [7,8] «$(» ok 6 - [9,12] «echo» ok 7 - [13,13] «)» ok 8 - [14,20] «$(echo)» ok 9 - [14,15] «$(» ok 10 - [16,19] «echo» ok 11 - [20,20] «)» ok 12 - cardinality check 1..9 ## command-substitution-in-assignment # BUFFER='foo=$(echo bar) :' ok 1 - [1,15] «foo=$(echo bar)» ok 2 - [5,15] «$(echo bar)» ok 3 - [5,15] «$(echo bar)» ok 4 - [5,6] «$(» ok 5 - [7,10] «echo» ok 6 - [12,14] «bar» ok 7 - [15,15] «)» ok 8 - [17,17] «:» ok 9 - cardinality check 1..7 ## command-substitution-unclosed # BUFFER=': foo$(echo bar' ok 1 - [1,1] «:» ok 2 - [3,15] «foo$(echo bar» ok 3 - [6,15] «$(echo bar» ok 4 - [6,7] «$(» ok 5 - [8,11] «echo» ok 6 - [13,15] «bar» ok 7 - cardinality check 1..6 ## commandseparator # BUFFER=':; pwd &! ls' ok 1 - [1,1] «:» ok 2 - [2,2] «;» ok 3 - [4,6] «pwd» ok 4 - [8,9] «&!» ok 5 - [11,12] «ls» ok 6 - cardinality check 1..4 ## comment-followed # BUFFER='# foo true' ok 1 - [1,5] «♯ foo» not ok 2 - [6,6] «↵» - expected (6 6 "commandseparator"), observed (6 6 "unknown-token"). # TODO "issue #501" ok 3 - [7,10] «true» ok 4 - cardinality check 1..2 ## comment-leading # BUFFER='# echo foo' ok 1 - [1,10] «♯ echo foo» ok 2 - cardinality check 1..4 ## comment-off # BUFFER='# echo foo' ok 1 - [1,1] «♯» ok 2 - [3,6] «echo» ok 3 - [8,10] «foo» ok 4 - cardinality check 1..5 ## comments # BUFFER='echo "foo #bar" #baz # quux' ok 1 - [1,4] «echo» ok 2 - [6,15] «"foo ♯bar"» ok 3 - [6,15] «"foo ♯bar"» ok 4 - [17,27] «♯baz ♯ quux» ok 5 - cardinality check 1..8 ## commmand-parameter # BUFFER='$x "argument"; $y; $z' ok 1 - [1,2] «$x» ok 2 - [4,13] «"argument"» ok 3 - [4,13] «"argument"» ok 4 - [14,14] «;» ok 5 - [16,17] «$y» ok 6 - [18,18] «;» ok 7 - [20,21] «$z» ok 8 - cardinality check 1..25 ## control-flow # BUFFER='while if echo Hello; then ls /; else ls; fi; do stat "x"; done; repeat 10 ls' ok 1 - [1,5] «while» ok 2 - [7,8] «if» ok 3 - [10,13] «echo» ok 4 - [15,19] «Hello» ok 5 - [20,20] «;» ok 6 - [22,25] «then» ok 7 - [27,28] «ls» ok 8 - [30,30] «/» ok 9 - [31,31] «;» ok 10 - [33,36] «else» ok 11 - [38,39] «ls» ok 12 - [40,40] «;» ok 13 - [42,43] «fi» ok 14 - [44,44] «;» ok 15 - [46,47] «do» ok 16 - [49,52] «stat» ok 17 - [54,56] «"x"» ok 18 - [54,56] «"x"» ok 19 - [57,57] «;» ok 20 - [59,62] «done» ok 21 - [63,63] «;» ok 22 - [65,70] «repeat» ok 23 - [72,73] «10» ok 24 - [75,76] «ls» ok 25 - cardinality check 1..8 ## control-flow2 # BUFFER='repeat 42; do ls; done' ok 1 - [1,6] «repeat» ok 2 - [8,9] «42» ok 3 - [10,10] «;» ok 4 - [12,13] «do» ok 5 - [15,16] «ls» ok 6 - [17,17] «;» ok 7 - [19,22] «done» ok 8 - cardinality check 1..7 ## control-flow3 # BUFFER='repeat 42; ls; pwd' ok 1 - [1,6] «repeat» ok 2 - [8,9] «42» ok 3 - [10,10] «;» ok 4 - [12,13] «ls» ok 5 - [14,14] «;» ok 6 - [16,18] «pwd» ok 7 - cardinality check 1..35 ## cthulhu # BUFFER='echo Ph\'\''ng`echo lui "mg"\`echo lw\'\''nafh \\\`echo Cthu"lhu\\\` R\\'\''ly$(echo eh wag\\\`echo h\'\''nag\\\`'\'l\'' fht)agn`' ok 1 - [1,4] «echo» ok 2 - [6,113] «Ph\'ng`echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn`» ok 3 - [12,113] «`echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn`» ok 4 - [12,12] «`» ok 5 - [13,16] «echo» ok 6 - [18,20] «lui» ok 7 - [22,112] «"mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn» ok 8 - [22,25] «"mg"» ok 9 - [26,112] «\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn» ok 10 - [26,27] «\`» ok 11 - [28,31] «echo» ok 12 - [33,40] «lw\'nafh» ok 13 - [42,62] «\\\`echo Cthu"lhu\\\`» ok 14 - [42,62] «\\\`echo Cthu"lhu\\\`» ok 15 - [42,45] «\\\`» ok 16 - [46,49] «echo» ok 17 - [51,58] «Cthu"lhu» ok 18 - [55,58] «"lhu» ok 19 - [59,62] «\\\`» ok 20 - [64,112] «R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn» ok 21 - [70,109] «$(echo eh wag\\\`echo h\'nag\\\`'l' fht)» ok 22 - [70,71] «$(» ok 23 - [72,75] «echo» ok 24 - [77,78] «eh» ok 25 - [80,104] «wag\\\`echo h\'nag\\\`'l'» ok 26 - [83,101] «\\\`echo h\'nag\\\`» ok 27 - [83,86] «\\\`» ok 28 - [87,90] «echo» ok 29 - [92,97] «h\'nag» ok 30 - [98,101] «\\\`» ok 31 - [102,104] «'l'» ok 32 - [106,108] «fht» ok 33 - [109,109] «)» ok 34 - [113,113] «`» ok 35 - cardinality check 1..5 ## dirs_blacklist # BUFFER=': foo/bar /tmp/tmp.UQAxc5KYCy/foo foo/b' ok 1 - [1,1] «:» ok 2 - [3,9] «foo/bar» ok 3 - [11,33] «/tmp/tmp.UQAxc5KYCy/foo» ok 4 - [35,39] «foo/b» ok 5 - cardinality check 1..6 ## dollar-dollar # BUFFER=': "$$ $$foo"' ok 1 - [1,1] «:» ok 2 - [3,12] «"$$ $$foo"» ok 3 - [3,12] «"$$ $$foo"» ok 4 - [4,5] «$$» ok 5 - [7,8] «$$» ok 6 - cardinality check 1..9 ## dollar-noise # BUFFER=': "$- $# $* $@ $?"' ok 1 - [1,1] «:» ok 2 - [3,18] «"$- $♯ $* $@ $?"» ok 3 - [3,18] «"$- $♯ $* $@ $?"» ok 4 - [4,5] «$-» ok 5 - [7,8] «$♯» ok 6 - [10,11] «$*» ok 7 - [13,14] «$@» ok 8 - [16,17] «$?» ok 9 - cardinality check 1..16 ## dollar-paren # BUFFER=': "$(:)" "foo$(:)bar' ok 1 - [1,1] «:» ok 2 - [3,8] «"$(:)"» ok 3 - [3,3] «"» ok 4 - [8,8] «"» ok 5 - [4,7] «$(:)» ok 6 - [4,5] «$(» ok 7 - [6,6] «:» ok 8 - [7,7] «)» ok 9 - [10,20] «"foo$(:)bar» ok 10 - [10,13] «"foo» ok 11 - [18,20] «bar» ok 12 - [14,17] «$(:)» ok 13 - [14,15] «$(» ok 14 - [16,16] «:» ok 15 - [17,17] «)» ok 16 - cardinality check 1..6 ## dollar-quoted # BUFFER=': $'\''*'\'' '\'foo\' ok 1 - [1,1] «:» ok 2 - [3,6] «$'*'» ok 3 - [3,6] «$'*'» ok 4 - [8,12] «'foo'» ok 5 - [8,12] «'foo'» ok 6 - cardinality check 1..7 ## dollar-quoted2 # BUFFER=': $'\''foo\xbar\udeadbeef\uzzzz'\' ok 1 - [1,1] «:» ok 2 - [3,29] «$'foo\xbar\udeadbeef\uzzzz'» ok 3 - [3,29] «$'foo\xbar\udeadbeef\uzzzz'» ok 4 - [8,11] «\xba» ok 5 - [13,18] «\udead» ok 6 - [23,24] «\u» ok 7 - cardinality check 1..5 ## dollar-quoted3 # BUFFER=': $'\''\xa1' ok 1 - [1,1] «:» ok 2 - [3,8] «$'\xa1» ok 3 - [3,8] «$'\xa1» ok 4 - [5,8] «\xa1» ok 5 - cardinality check 1..3 ## double-hyphen-option # BUFFER='hello --world' ok 1 - [1,5] «hello» ok 2 - [7,13] «--world» ok 3 - cardinality check 1..9 ## double-quoted # BUFFER=': "foo$bar:\`:\":\$:\\:"' ok 1 - [1,1] «:» ok 2 - [3,24] «"foo$bar:\`:\":\$:\\:"» ok 3 - [3,24] «"foo$bar:\`:\":\$:\\:"» ok 4 - [7,10] «$bar» ok 5 - [12,13] «\`» ok 6 - [15,16] «\"» ok 7 - [18,19] «\$» ok 8 - [21,22] «\\» ok 9 - cardinality check 1..5 ## double-quoted2 # BUFFER=': "foo$bar' ok 1 - [1,1] «:» ok 2 - [3,10] «"foo$bar» ok 3 - [3,10] «"foo$bar» ok 4 - [7,10] «$bar» ok 5 - cardinality check 1..9 ## double-quoted3 # BUFFER=': "$" "$42foo" "\'\''\x"' ok 1 - [1,1] «:» ok 2 - [3,5] «"$"» ok 3 - [3,5] «"$"» ok 4 - [7,14] «"$42foo"» ok 5 - [7,14] «"$42foo"» ok 6 - [8,10] «$42» ok 7 - [16,21] «"\'\x"» ok 8 - [16,21] «"\'\x"» ok 9 - cardinality check 1..5 ## double-quoted4 # BUFFER=': "${foo}bar"' ok 1 - [1,1] «:» ok 2 - [3,13] «"${foo}bar"» ok 3 - [3,13] «"${foo}bar"» ok 4 - [4,9] «${foo}» ok 5 - cardinality check 1..5 ## empty-command-newline # BUFFER=':; :' ok 1 - [1,1] «:» ok 2 - [2,2] «;» not ok 3 - [3,3] «↵» - expected (3 3 "commandseparator"), observed (3 3 "unknown-token"). # TODO "issue #616" ok 4 - [4,4] «:» ok 5 - cardinality check 1..4 ## empty-command # BUFFER='echo; ;' ok 1 - [1,4] «echo» ok 2 - [5,5] «;» ok 3 - [7,7] «;» ok 4 - cardinality check 1..4 ## empty-command2 # BUFFER='echo; ;' ok 1 - [1,4] «echo» ok 2 - [5,5] «;» ok 3 - [7,7] «;» ok 4 - cardinality check 1..3 ## empty-line # BUFFER='\ ; ls' ok 1 - [3,3] «;» ok 2 - [5,6] «ls» ok 3 - cardinality check 1..5 ## escaped-single-quote # BUFFER=': '\'foo\''\'\'\'bar\' ok 1 - [1,1] «:» ok 2 - [3,14] «'foo'\''bar'» ok 3 - [3,7] «'foo'» ok 4 - [10,14] «'bar'» ok 5 - cardinality check 1..6 ## exec-redirection1 # BUFFER='exec {foo}>&/tmp ls' ok 1 - [1,4] «exec» ok 2 - [6,10] «{foo}» ok 3 - [11,12] «>&» ok 4 - [13,16] «/tmp» ok 5 - [18,19] «ls» ok 6 - cardinality check 1..11 ## function-altsyntax # BUFFER='function f { pwd }; function { pwd }' ok 1 - [1,8] «function» ok 2 - [10,10] «f» not ok 3 - [12,12] «{» - expected (12 12 "reserved-word"), observed (12 12 "default"). # TODO "issue #237" not ok 4 - [14,16] «pwd» - expected (14 16 "command"), observed (14 16 "default"). # TODO "issue #237" not ok 5 - [18,18] «}» - expected (18 18 "reserved-word"), observed (18 18 "unknown-token"). # TODO "issue #237" ok 6 - [19,19] «;» ok 7 - [21,28] «function» not ok 8 - [30,30] «{» - expected (30 30 "reserved-word"), observed (30 30 "default"). # TODO "issue #237" not ok 9 - [32,34] «pwd» - expected (32 34 "command"), observed (32 34 "default"). # TODO "issue #237" not ok 10 - [36,36] «}» - expected (36 36 "reserved-word"), observed (36 36 "unknown-token"). # TODO "issue #237" ok 11 - cardinality check 1..11 ## function-named1 # BUFFER='f() pwd; f() { balanced braces }' not ok 1 - [1,1] «f» - expected (1 1 "TBD"), observed (1 1 "unknown-token"). # TODO "issue #223" ok 2 - [2,3] «()» ok 3 - [5,7] «pwd» ok 4 - [8,8] «;» not ok 5 - [10,10] «f» - expected (10 10 "TBD"), observed (10 10 "unknown-token"). # TODO "issue #223" ok 6 - [11,12] «()» ok 7 - [14,14] «{» ok 8 - [16,23] «balanced» ok 9 - [25,30] «braces» ok 10 - [32,32] «}» ok 11 - cardinality check 1..6 ## function-named2 # BUFFER='f g h () pwd' not ok 1 - [1,1] «f» - expected (1 1 "TBD"), observed (1 1 "unknown-token"). # TODO "issue #223" not ok 2 - [3,3] «g» - expected (3 3 "TBD"), observed (3 3 "default"). # TODO "issue #223" not ok 3 - [5,5] «h» - expected (5 5 "TBD"), observed (5 5 "default"). # TODO "issue #223" ok 4 - [7,8] «()» ok 5 - [10,12] «pwd» ok 6 - cardinality check 1..4 ## function # BUFFER='cd;ls' ok 1 - [1,2] «cd» ok 2 - [3,3] «;» ok 3 - [4,5] «ls» ok 4 - cardinality check 1..9 ## glob # BUFFER=': foo* bar? *baz qux\?' ok 1 - [1,1] «:» ok 2 - [3,6] «foo*» ok 3 - [6,6] «*» ok 4 - [8,11] «bar?» ok 5 - [11,11] «?» ok 6 - [13,16] «*baz» ok 7 - [13,13] «*» ok 8 - [18,22] «qux\?» ok 9 - cardinality check 1..10 ## globs-with-quoting # BUFFER=': "foo"*'\'bar\''?"baz?"<17-29>"qu*ux"' ok 1 - [1,1] «:» ok 2 - [3,34] «"foo"*'bar'?"baz?"<17-29>"qu*ux"» ok 3 - [3,7] «"foo"» ok 4 - [8,8] «*» ok 5 - [9,13] «'bar'» ok 6 - [14,14] «?» ok 7 - [15,20] «"baz?"» ok 8 - [21,27] «<17-29>» ok 9 - [28,34] «"qu*ux"» ok 10 - cardinality check 1..2 ## hashed-command # BUFFER=zsh_syntax_highlighting_hash not ok 1 - [1,28] «zsh_syntax_highlighting_hash» - expected (1 28 "hashed-command"), observed (1 28 "command"). # TODO 'zsh/parameter cannot distinguish between hashed and command' ok 2 - cardinality check 1..5 ## history-double-quoted-escaped # BUFFER='echo "Hello\!"' ok 1 - [1,4] «echo» ok 2 - [6,14] «"Hello\!"» ok 3 - [6,14] «"Hello\!"» ok 4 - [12,13] «\!» ok 5 - cardinality check 1..4 ## history-double-quoted-no # BUFFER='echo "foo != bar !{baz}"' ok 1 - [1,4] «echo» ok 2 - [6,24] «"foo != bar !{baz}"» ok 3 - [6,24] «"foo != bar !{baz}"» ok 4 - cardinality check 1..5 ## history-double-quoted-unescaped # BUFFER='echo "Hello!"' ok 1 - [1,4] «echo» ok 2 - [6,13] «"Hello!"» ok 3 - [6,13] «"Hello!"» ok 4 - [12,12] «!» ok 5 - cardinality check 1..5 ## history-double-quoted-yes # BUFFER='echo "foo !bar"' ok 1 - [1,4] «echo» ok 2 - [6,15] «"foo !bar"» ok 3 - [6,15] «"foo !bar"» ok 4 - [11,11] «!» ok 5 - cardinality check 1..7 ## history-expansion # BUFFER='!foo bar !baz ! ; !' ok 1 - [1,4] «!foo» ok 2 - [6,8] «bar» ok 3 - [10,13] «!baz» ok 4 - [15,15] «!» ok 5 - [17,17] «;» ok 6 - [19,19] «!» ok 7 - cardinality check 1..2 ## history-expansion2 # BUFFER='^foo^bar' ok 1 - [1,8] «^foo^bar» ok 2 - cardinality check 1..2 ## inheritance # BUFFER=type ok 1 - [1,4] «type» ok 2 - cardinality check 1..4 ## jobsubst-isnt-glob # BUFFER=': %? %?foo' ok 1 - [1,1] «:» ok 2 - [3,4] «%?» ok 3 - [6,10] «%?foo» ok 4 - cardinality check 1..4 ## jobsubst-isnt-glob2 # BUFFER=': foo%?bar' ok 1 - [1,1] «:» ok 2 - [3,10] «foo%?bar» ok 3 - [7,7] «?» ok 4 - cardinality check 1..7 ## loop-newline # BUFFER='for i in \ ; do done' ok 1 - [1,3] «for» ok 2 - [5,5] «i» ok 3 - [7,8] «in» ok 4 - [12,12] «;» ok 5 - [14,15] «do» ok 6 - [17,20] «done» ok 7 - cardinality check 1..6 ## multiline-array-assignment1 # BUFFER='foo=( bar) env' ok 1 - [1,5] «foo=(» ok 2 - [6,6] «↵» ok 3 - [7,9] «bar» ok 4 - [10,10] «)» ok 5 - [12,14] «env» ok 6 - cardinality check 1..4 ## multiline-string # PREBUFFER='echo "foo1 ' # BUFFER='foo2" ./' ok 1 - [1,5] «foo2"» ok 2 - [1,5] «foo2"» ok 3 - [7,8] «./» ok 4 - cardinality check 1..4 ## multiline-string2 # BUFFER='echo '\''foo1 ' ok 1 - [1,4] «echo» ok 2 - [6,11] «'foo1↵» ok 3 - [6,11] «'foo1↵» ok 4 - cardinality check 1..10 ## multiple-quotes # BUFFER=': '\'foo\''bar"baz$quux/foo\\bar"baz$'\''quux\nfoo\001bar'\'baz ok 1 - [1,1] «:» ok 2 - [3,54] «'foo'bar"baz$quux/foo\\bar"baz$'quux\nfoo\001bar'baz» ok 3 - [3,7] «'foo'» ok 4 - [11,29] «"baz$quux/foo\\bar"» ok 5 - [15,19] «$quux» ok 6 - [24,25] «\\» ok 7 - [33,51] «$'quux\nfoo\001bar'» ok 8 - [39,40] «\n» ok 9 - [44,47] «\001» ok 10 - cardinality check 1..14 ## multiple-redirections # BUFFER='ls aux | grep java | sort | uniq | tail | head' ok 1 - [1,2] «ls» ok 2 - [4,6] «aux» ok 3 - [8,8] «|» ok 4 - [10,13] «grep» ok 5 - [15,18] «java» ok 6 - [20,20] «|» ok 7 - [22,25] «sort» ok 8 - [27,27] «|» ok 9 - [29,32] «uniq» ok 10 - [34,34] «|» ok 11 - [36,39] «tail» ok 12 - [41,41] «|» ok 13 - [43,46] «head» ok 14 - cardinality check 1..3 ## noglob-alias # BUFFER='x ls' ok 1 - [1,1] «x» ok 2 - [3,4] «ls» ok 3 - cardinality check 1..11 ## noglob-always # BUFFER='{ noglob echo * } always { echo * }' ok 1 - [1,1] «{» ok 2 - [3,8] «noglob» ok 3 - [10,13] «echo» ok 4 - [15,15] «*» ok 5 - [17,17] «}» ok 6 - [19,24] «always» ok 7 - [26,26] «{» ok 8 - [28,31] «echo» not ok 9 - [33,33] «*» - expected (33 33 "globbing"), observed (33 33 "default"). # TODO "issue #577" ok 10 - [35,35] «}» ok 11 - cardinality check 1..6 ## noglob1 # BUFFER=':; noglob echo *' ok 1 - [1,1] «:» ok 2 - [2,2] «;» ok 3 - [4,9] «noglob» ok 4 - [11,14] «echo» ok 5 - [16,16] «*» ok 6 - cardinality check 1..8 ## noglob2 # BUFFER='noglob echo *; echo *' ok 1 - [1,6] «noglob» ok 2 - [8,11] «echo» ok 3 - [13,13] «*» ok 4 - [14,14] «;» ok 5 - [16,19] «echo» ok 6 - [21,21] «*» ok 7 - [21,21] «*» ok 8 - cardinality check 1..4 ## noglob3 # BUFFER='noglob echo *' ok 1 - [1,6] «noglob» ok 2 - [8,11] «echo» ok 3 - [13,13] «*» ok 4 - cardinality check 1..12 ## noglob4 # BUFFER='noglob cat <(print -r -- *)' ok 1 - [1,6] «noglob» ok 2 - [8,10] «cat» ok 3 - [12,27] «<(print -r -- *)» ok 4 - [12,27] «<(print -r -- *)» ok 5 - [12,13] «<(» ok 6 - [14,18] «print» ok 7 - [20,21] «-r» ok 8 - [23,24] «--» ok 9 - [26,26] «*» ok 10 - [26,26] «*» ok 11 - [27,27] «)» ok 12 - cardinality check 1..5 ## null-exec # BUFFER='exec >/dev/null;' ok 1 - [1,4] «exec» ok 2 - [6,6] «>» ok 3 - [7,15] «/dev/null» not ok 4 - [16,16] «;» - expected (16 16 "commandseparator"), observed (16 16 "unknown-token"). # TODO "issue #676" ok 5 - cardinality check 1..9 ## number_range-glob # BUFFER='print <-> x<->y ' ok 1 - [1,5] «print» ok 2 - [7,9] «<->» ok 3 - [7,9] «<->» ok 4 - [11,15] «x<->y» ok 5 - [12,14] «<->» ok 6 - [17,17] «<» ok 7 - [18,23] «foo2-3» ok 8 - [24,24] «>» ok 9 - cardinality check 1..5 ## off-by-one # BUFFER='a;f;' ok 1 - [1,1] «a» ok 2 - [2,2] «;» ok 3 - [3,3] «f» ok 4 - [4,4] «;» ok 5 - cardinality check 1..4 ## option-dollar-quote-isnt-filename # BUFFER=': -$'\'n\' ok 1 - [1,1] «:» ok 2 - [3,7] «-$'n'» ok 3 - [4,7] «$'n'» ok 4 - cardinality check 1..2 ## option-path_dirs # BUFFER=bar/testing-issue-228 ok 1 - [1,21] «bar/testing-issue-228» ok 2 - cardinality check 1..4 ## option-with-quotes # BUFFER=': --user="phy1729"' ok 1 - [1,1] «:» ok 2 - [3,18] «--user="phy1729"» ok 3 - [10,18] «"phy1729"» ok 4 - cardinality check 1..4 ## order-path-after-dollar # BUFFER=': $foo \$foo' ok 1 - [1,1] «:» ok 2 - [3,6] «$foo» ok 3 - [8,12] «\$foo» ok 4 - cardinality check 1..5 ## order-path-before-globbing # BUFFER=': * \*' ok 1 - [1,1] «:» ok 2 - [3,3] «*» ok 3 - [3,3] «*» ok 4 - [5,6] «\*» ok 5 - cardinality check 1..5 ## param-precommand-option-argument1 # BUFFER='$sudo_u phy1729 echo foo' ok 1 - [1,7] «$sudo_u» ok 2 - [9,15] «phy1729» not ok 3 - [17,20] «echo» - expected (18 20 "command"), observed (17 20 "builtin"). # TODO "issue #540" ok 4 - [22,24] «foo» ok 5 - cardinality check 1..5 ## param-precommand-option-argument3 # BUFFER='$sudo_u phy1729 ls foo' ok 1 - [1,7] «$sudo_u» ok 2 - [9,15] «phy1729» ok 3 - [17,18] «ls» ok 4 - [20,22] «foo» ok 5 - cardinality check 1..3 ## parameter-expansion-untokenized1 # BUFFER='$x ls' ok 1 - [1,2] «$x» ok 2 - [4,5] «ls» ok 3 - cardinality check 1..3 ## parameter-expansion-untokenized2 # BUFFER='$x ls' ok 1 - [1,2] «$x» ok 2 - [4,5] «ls» ok 3 - cardinality check 1..6 ## parameter-star # BUFFER='() { : $* }' ok 1 - [1,2] «()» ok 2 - [4,4] «{» ok 3 - [6,6] «:» ok 4 - [8,9] «$*» ok 5 - [11,11] «}» ok 6 - cardinality check 1..2 ## parameter-value-contains-command-position1 # BUFFER='$foobar' ok 1 - [1,7] «$foobar» ok 2 - cardinality check 1..2 ## parameter-value-contains-command-position2 # BUFFER='$y' ok 1 - [1,2] «$y» ok 2 - cardinality check 1..5 ## pasted-quotes # BUFFER=': '\'foo\''bar"baz"' ok 1 - [1,1] «:» ok 2 - [3,15] «'foo'bar"baz"» ok 3 - [3,7] «'foo'» ok 4 - [11,15] «"baz"» ok 5 - cardinality check 1..3 ## path-broken-symlink # BUFFER=': broken-symlink' ok 1 - [1,1] «:» ok 2 - [3,16] «broken-symlink» ok 3 - cardinality check 1..4 ## path-dollared-word # BUFFER='$PWD.exe; ${PWD}.exe' ok 1 - [1,8] «$PWD.exe» ok 2 - [9,9] «;» ok 3 - [11,20] «${PWD}.exe» ok 4 - cardinality check 1..3 ## path-dollared-word2 # BUFFER=': \$lambda' ok 1 - [1,1] «:» ok 2 - [3,10] «\$lambda» ok 3 - cardinality check 1..4 ## path-dollared-word3 # BUFFER='$PWD; ${PWD}' ok 1 - [1,4] «$PWD» ok 2 - [5,5] «;» ok 3 - [7,12] «${PWD}» ok 4 - cardinality check 1..2 ## path-dollared-word4 # BUFFER='${' ok 1 - [1,2] «${» ok 2 - cardinality check 1..11 ## path-separators # BUFFER='ls /bin/ / A/mu A/m' ok 1 - [1,2] «ls» ok 2 - [4,8] «/bin/» ok 3 - [4,4] «/» ok 4 - [8,8] «/» ok 5 - [10,10] «/» ok 6 - [10,10] «/» ok 7 - [12,15] «A/mu» ok 8 - [13,13] «/» ok 9 - [17,19] «A/m» ok 10 - [18,18] «/» ok 11 - cardinality check 1..3 ## path-separators2 # BUFFER='ls /bin/' ok 1 - [1,2] «ls» ok 2 - [4,8] «/bin/» ok 3 - cardinality check 1..3 ## path-space # BUFFER='ls A/mu\ with\ spaces' ok 1 - [1,2] «ls» ok 2 - [4,21] «A/mu\ with\ spaces» ok 3 - cardinality check 1..3 ## path-tilde-home # BUFFER='ls ~' ok 1 - [1,2] «ls» ok 2 - [4,4] «~» ok 3 - cardinality check 1..3 ## path-tilde-home2 # BUFFER='ls ~' ok 1 - [1,2] «ls» ok 2 - [4,4] «~» ok 3 - cardinality check 1..3 ## path-tilde-home3 # BUFFER='ls \~' ok 1 - [1,2] «ls» ok 2 - [4,5] «\~» ok 3 - cardinality check 1..3 ## path-tilde-named # BUFFER='ls ~D/path-tilde-named.test' ok 1 - [1,2] «ls» ok 2 - [4,27] «~D/path-tilde-named.test» ok 3 - cardinality check 1..3 ## path # BUFFER='ls A/mu' ok 1 - [1,2] «ls» ok 2 - [4,7] «A/mu» ok 3 - cardinality check 1..3 ## path_prefix # BUFFER='ls /bin/s' ok 1 - [1,2] «ls» ok 2 - [4,9] «/bin/s» ok 3 - cardinality check 1..3 ## path_prefix2 # BUFFER='ls /bin/s' ok 1 - [1,2] «ls» ok 2 - [4,9] «/bin/s» ok 3 - cardinality check 1..2 ## path_prefix3 # PREBUFFER='ls \' # BUFFER=/bin/s ok 1 - [1,6] «/bin/s» ok 2 - cardinality check 1..4 ## precommand-killing1 # BUFFER='sudo -e /etc/passwd' ok 1 - [1,4] «sudo» ok 2 - [6,7] «-e» ok 3 - [9,19] «/etc/passwd» ok 4 - cardinality check 1..4 ## precommand-killing2 # BUFFER='sudo -e /does/not/exist' ok 1 - [1,4] «sudo» ok 2 - [6,7] «-e» not ok 3 - [9,23] «/does/not/exist» - expected (9 23 "normal"), observed (9 23 "unknown-token"). # TODO "issue #678" ok 4 - cardinality check 1..12 ## precommand-type1 # BUFFER='test ; builtin test ; builtin command test ; nice test ' ok 1 - [1,4] «test» ok 2 - [7,7] «;» ok 3 - [9,15] «builtin» ok 4 - [17,20] «test» ok 5 - [23,23] «;» ok 6 - [25,31] «builtin» ok 7 - [33,39] «command» not ok 8 - [41,44] «test» - expected (41 44 "command"), observed (41 44 "builtin"). # TODO "issue #608" ok 9 - [47,47] «;» ok 10 - [49,52] «nice» not ok 11 - [54,57] «test» - expected (54 57 "command"), observed (54 57 "builtin"). # TODO "issue #608" ok 12 - cardinality check 1..12 ## precommand-type2 # BUFFER='zstyle; builtin zstyle; builtin command zstyle; nice zstyle' ok 1 - [1,6] «zstyle» ok 2 - [7,7] «;» ok 3 - [9,15] «builtin» ok 4 - [17,22] «zstyle» ok 5 - [23,23] «;» ok 6 - [25,31] «builtin» ok 7 - [33,39] «command» not ok 8 - [41,46] «zstyle» - expected (41 46 "unknown-token"), observed (41 46 "builtin"). # TODO "issue #608" ok 9 - [47,47] «;» ok 10 - [49,52] «nice» not ok 11 - [54,59] «zstyle» - expected (54 59 "unknown-token"), observed (54 59 "builtin"). # TODO "issue #608" ok 12 - cardinality check 1..12 ## precommand-type3 # BUFFER='ls ; builtin ls ; builtin command ls ; nice ls ' ok 1 - [1,2] «ls» ok 2 - [7,7] «;» ok 3 - [9,15] «builtin» not ok 4 - [17,18] «ls» - expected (17 18 "unknown-token"), observed (17 18 "command"). # TODO "issue #608" ok 5 - [23,23] «;» ok 6 - [25,31] «builtin» ok 7 - [33,39] «command» ok 8 - [41,42] «ls» ok 9 - [47,47] «;» ok 10 - [49,52] «nice» ok 11 - [54,55] «ls» ok 12 - cardinality check 1..8 ## precommand-unknown-option # BUFFER='sudo -ux ls; sudo -x ls' ok 1 - [1,4] «sudo» ok 2 - [6,8] «-ux» ok 3 - [10,11] «ls» ok 4 - [12,12] «;» ok 5 - [14,17] «sudo» ok 6 - [19,20] «-x» ok 7 - [22,23] «ls» ok 8 - cardinality check 1..4 ## precommand # BUFFER=': command zzzzzz' ok 1 - [1,1] «:» ok 2 - [3,9] «command» ok 3 - [11,16] «zzzzzz» ok 4 - cardinality check 1..4 ## precommand2 # BUFFER='command -v ls' ok 1 - [1,7] «command» ok 2 - [9,10] «-v» ok 3 - [12,13] «ls» ok 4 - cardinality check 1..9 ## precommand3 # BUFFER='nice -n10 ls; nice -n 10 ls' ok 1 - [1,4] «nice» ok 2 - [6,9] «-n10» ok 3 - [11,12] «ls» ok 4 - [13,13] «;» ok 5 - [15,18] «nice» ok 6 - [20,21] «-n» ok 7 - [23,24] «10» ok 8 - [26,27] «ls» ok 9 - cardinality check 1..5 ## precommand4 # BUFFER='doas -nu phy1729 ls' ok 1 - [1,4] «doas» ok 2 - [6,8] «-nu» ok 3 - [10,16] «phy1729» ok 4 - [18,19] «ls» ok 5 - cardinality check 1..10 ## prefix-redirection # BUFFER='>/tmp >/tmp command echo >/tmp foo' ok 1 - [1,1] «>» ok 2 - [2,5] «/tmp» ok 3 - [7,7] «>» ok 4 - [8,11] «/tmp» ok 5 - [13,19] «command» ok 6 - [21,24] «echo» ok 7 - [26,26] «>» ok 8 - [27,30] «/tmp» ok 9 - [32,34] «foo» ok 10 - cardinality check 1..13 ## process-substitution-after-redirection # BUFFER='< <(pwd) > >(nl)' ok 1 - [1,1] «<» ok 2 - [3,8] «<(pwd)» ok 3 - [3,8] «<(pwd)» ok 4 - [3,4] «<(» ok 5 - [5,7] «pwd» ok 6 - [8,8] «)» ok 7 - [10,10] «>» ok 8 - [12,16] «>(nl)» ok 9 - [12,16] «>(nl)» ok 10 - [12,13] «>(» ok 11 - [14,15] «nl» ok 12 - [16,16] «)» ok 13 - cardinality check 1..8 ## process-substitution-redirection-isnt-globbing # BUFFER=': =("» ok 2 - [5,7] «foo» ok 3 - [9,10] «ls» ok 4 - cardinality check 1..5 ## rc-quotes # BUFFER=': ''foo''''bar''baz' ok 1 - [1,1] «:» ok 2 - [3,15] «'foo''bar'baz» ok 3 - [3,12] «'foo''bar'» ok 4 - [7,8] «''» ok 5 - cardinality check 1..4 ## redirection-comment # BUFFER=': <<#foo' ok 1 - [1,1] «:» ok 2 - [3,4] «<<» ok 3 - [5,8] «♯foo» ok 4 - cardinality check 1..8 ## redirection-in-cmdsubst # BUFFER=': $(» ok 3 - [5,6] «-x» ok 4 - [8,9] «>>» ok 5 - [11,14] «--yy» ok 6 - cardinality check 1..6 ## redirection # BUFFER='<<>&!bar' ok 1 - [1,3] «<<<» ok 2 - [4,6] «foo» ok 3 - [8,11] «echo» ok 4 - [13,16] «>>&!» ok 5 - [17,19] «bar» ok 6 - cardinality check 1..9 ## redirection2 # BUFFER='ls >(wc) | nl' ok 1 - [1,2] «ls» ok 2 - [4,8] «>(wc)» ok 3 - [4,8] «>(wc)» ok 4 - [4,5] «>(» ok 5 - [6,7] «wc» ok 6 - [8,8] «)» ok 7 - [10,10] «|» ok 8 - [12,13] «nl» ok 9 - cardinality check 1..10 ## redirection3 # BUFFER=': >>>; : <>\<<<>» ok 3 - [5,5] «>» ok 4 - [6,6] «;» ok 5 - [8,8] «:» ok 6 - [10,11] «<>» ok 7 - [12,13] «\<» ok 8 - [14,16] «<<<» ok 9 - [17,19] «EOF» ok 10 - cardinality check 1..6 ## reserved-word # BUFFER='repeat "1" do done' ok 1 - [1,6] «repeat» ok 2 - [8,10] «"1"» ok 3 - [8,10] «"1"» ok 4 - [12,13] «do» ok 5 - [15,18] «done» ok 6 - cardinality check 1..2 ## simple-command # BUFFER=ls ok 1 - [1,2] «ls» ok 2 - cardinality check 1..6 ## simple-redirection # BUFFER='ls aux | grep java' ok 1 - [1,2] «ls» ok 2 - [4,6] «aux» ok 3 - [8,8] «|» ok 4 - [10,13] «grep» ok 5 - [15,18] «java» ok 6 - cardinality check 1..19 ## subshell # BUFFER='tar cf - * | (cd /target; tar xfp -) | { cat }' ok 1 - [1,3] «tar» ok 2 - [5,6] «cf» ok 3 - [8,8] «-» ok 4 - [10,10] «*» ok 5 - [10,10] «*» ok 6 - [12,12] «|» ok 7 - [14,14] «(» ok 8 - [15,16] «cd» ok 9 - [18,24] «/target» ok 10 - [25,25] «;» ok 11 - [27,29] «tar» ok 12 - [31,33] «xfp» ok 13 - [35,35] «-» ok 14 - [36,36] «)» ok 15 - [38,38] «|» ok 16 - [40,40] «{» ok 17 - [42,44] «cat» ok 18 - [46,46] «}» ok 19 - cardinality check 1..16 ## sudo-command # BUFFER='sudo -C3 -u otheruser -i ls /; sudo ; sudo -u ; sudo notacommand' ok 1 - [1,4] «sudo» ok 2 - [6,8] «-C3» ok 3 - [10,11] «-u» ok 4 - [13,21] «otheruser» ok 5 - [23,24] «-i» ok 6 - [26,27] «ls» ok 7 - [29,29] «/» ok 8 - [30,30] «;» ok 9 - [32,35] «sudo» ok 10 - [37,37] «;» ok 11 - [39,42] «sudo» ok 12 - [44,45] «-u» ok 13 - [47,47] «;» ok 14 - [49,52] «sudo» ok 15 - [54,64] «notacommand» ok 16 - cardinality check 1..4 ## sudo-comment # BUFFER='sudo -u # comment' ok 1 - [1,4] «sudo» ok 2 - [6,7] «-u» ok 3 - [9,17] «♯ comment» ok 4 - cardinality check 1..4 ## sudo-longopt # BUFFER='sudo --askpass ls' ok 1 - [1,4] «sudo» ok 2 - [6,14] «--askpass» ok 3 - [16,17] «ls» ok 4 - cardinality check 1..14 ## sudo-redirection # BUFFER='sudo -u >/tmp otheruser ls; sudo ls; sudo -i ls' ok 1 - [1,4] «sudo» ok 2 - [6,7] «-u» ok 3 - [9,9] «>» ok 4 - [10,13] «/tmp» ok 5 - [15,23] «otheruser» ok 6 - [25,26] «ls» ok 7 - [27,27] «;» ok 8 - [29,32] «sudo» ok 9 - [34,35] «ls» ok 10 - [36,36] «;» ok 11 - [38,41] «sudo» ok 12 - [43,44] «-i» ok 13 - [46,47] «ls» ok 14 - cardinality check 1..7 ## sudo-redirection2 # BUFFER='sudo >/tmp -u otheruser ls' ok 1 - [1,4] «sudo» ok 2 - [6,6] «>» ok 3 - [7,10] «/tmp» ok 4 - [12,13] «-u» ok 5 - [15,23] «otheruser» ok 6 - [25,26] «ls» ok 7 - cardinality check 1..7 ## sudo-redirection3 # BUFFER='sudo 2>./. -u otheruser ls' ok 1 - [1,4] «sudo» ok 2 - [6,7] «2>» ok 3 - [8,10] «./.» ok 4 - [12,13] «-u» ok 5 - [15,23] «otheruser» ok 6 - [25,26] «ls» ok 7 - cardinality check 1..3 ## tilde-command-word # BUFFER='~D/env foo' ok 1 - [1,6] «~D/env» ok 2 - [8,10] «foo» ok 3 - cardinality check 1..6 ## time-and-nocorrect1 # BUFFER='time ls; nocorrect ls' ok 1 - [1,4] «time» ok 2 - [6,7] «ls» ok 3 - [8,8] «;» ok 4 - [10,18] «nocorrect» ok 5 - [20,21] «ls» ok 6 - cardinality check 1..6 ## time-and-nocorrect2 # BUFFER='time ls; nocorrect ls' ok 1 - [1,4] «time» ok 2 - [6,7] «ls» ok 3 - [8,8] «;» ok 4 - [10,18] «nocorrect» ok 5 - [20,21] «ls» ok 6 - cardinality check 1..2 ## unbackslash # BUFFER='\sh' ok 1 - [1,3] «\sh» ok 2 - cardinality check 1..2 ## unknown-command # BUFFER=azertyuiop ok 1 - [1,10] «azertyuiop» ok 2 - cardinality check 1..6 ## vanilla-newline # PREBUFFER='echo foo; echo bar ' # BUFFER=' echo baz; echo qux' ok 1 - [2,5] «echo» ok 2 - [7,9] «baz» ok 3 - [10,10] «;» ok 4 - [12,15] «echo» ok 5 - [17,19] «qux» ok 6 - cardinality check 1..7 ## vi-linewise-mode # BUFFER='foo foo bar bar' ok 1 - [1,3] «foo» ok 2 - [5,7] «foo» ok 3 - [8,8] «↵» ok 4 - [9,11] «bar» ok 5 - [13,15] «bar» ok 6 - [1,15] «foo foo↵bar bar» ok 7 - cardinality check Running test pattern # global (driver) tests 1..1 ok 1 # 'alias -- +foo=bar' is preserved 1..2 ## rm-rf # BUFFER='rm -rf /' ok 1 - [1,8] «rm -rf /» ok 2 - cardinality check Running test regexp # global (driver) tests 1..1 ok 1 # 'alias -- +foo=bar' is preserved 1..3 ## complex # BUFFER='echo 1+9-3 7+2' ok 1 - [6,10] «1+9-3» ok 2 - [12,14] «7+2» ok 3 - cardinality check 1..2 ## subexpression # BUFFER='ls foo' ok 1 - [1,3] «ls » ok 2 - cardinality check 1..2 ## word-boundary # BUFFER='sudo ls' ok 1 - [1,4] «sudo» ok 2 - cardinality check make[1]: Leaving directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' create-stamp debian/debhelper-build-stamp dh_testroot -i dh_prep -i debian/rules override_dh_auto_install make[1]: Entering directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' dh_auto_install -- PREFIX=/usr make -j4 install DESTDIR=/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" PREFIX=/usr make[2]: Entering directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' cd docs && \ cp highlighters.md all.md && \ printf '\n\nIndividual highlighters documentation\n=====================================' >> all.md && \ for doc in highlighters/*.md; do printf '\n\n'; cat "$doc"; done >> all.md install --strip-program=true -d /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/zsh-syntax-highlighting install: WARNING: ignoring --strip-program option as -s option was not specified install --strip-program=true -d /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/doc/zsh-syntax-highlighting install: WARNING: ignoring --strip-program option as -s option was not specified cp .version zsh-syntax-highlighting.zsh /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/zsh-syntax-highlighting cp COPYING.md README.md changelog.md /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/doc/zsh-syntax-highlighting sed -e '1s/ .*//' -e '/^\[build-status-[a-z]*\]: /d' < README.md > /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/doc/zsh-syntax-highlighting/README.md printf "%s_%s%s\n" "0.7.1-2" "debian" """" \ > /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/zsh-syntax-highlighting/.version printf "%s/%s\n" "debian" "0.7.1-2" \ > /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/zsh-syntax-highlighting/.revision-hash : for dirname in highlighters highlighters/*/ ; do \ install --strip-program=true -d /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/zsh-syntax-highlighting/"$dirname"; \ for fname in "$dirname"/*.zsh ; do [ -e "$fname" ] && cp "$fname" /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/zsh-syntax-highlighting"/$dirname"; done; \ done install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified install: WARNING: ignoring --strip-program option as -s option was not specified cp -R docs/* /build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1/debian/zsh-syntax-highlighting/usr/share/doc/zsh-syntax-highlighting make[2]: Leaving directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' rm debian/zsh-syntax-highlighting/usr/share/doc/zsh-syntax-highlighting/COPYING.md make[1]: Leaving directory '/build/zsh-syntax-highlighting-VpRHaQ/zsh-syntax-highlighting-0.7.1' dh_installdocs -i dh_installchangelogs -i dh_perl -i dh_link -i dh_strip_nondeterminism -i dh_compress -i dh_fixperms -i dh_missing -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i dpkg-deb: building package 'zsh-syntax-highlighting' in '../zsh-syntax-highlighting_0.7.1-2_all.deb'. dpkg-genbuildinfo --build=all dpkg-genchanges --build=all >../zsh-syntax-highlighting_0.7.1-2_all.changes dpkg-genchanges: info: binary-only arch-indep upload (source code and arch-specific packages not included) dpkg-source --after-build . dpkg-source: info: using options from zsh-syntax-highlighting-0.7.1/debian/source/options: --extend-diff-ignore=(^|/)(\.revision-hash)$ dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/zsh-syntax-highlighting-VpRHaQ /tmp/zsh-syntax-highlighting-0.7.1-2_f38rhdc I: cleaning package lists and apt cache... I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.eFF5senHne... I: success in 354.3453 seconds md5: zsh-syntax-highlighting_0.7.1-2_all.deb: OK sha1: zsh-syntax-highlighting_0.7.1-2_all.deb: OK sha256: zsh-syntax-highlighting_0.7.1-2_all.deb: OK Checksums: OK