0s autopkgtest [15:25:45]: starting date and time: 2025-03-15 15:25:45+0000 0s autopkgtest [15:25:45]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [15:25:45]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.hp_k5ye8/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:glibc --apt-upgrade r-cran-fansi --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=glibc/2.41-1ubuntu2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-arm64-34.secgroup --name adt-plucky-arm64-r-cran-fansi-20250315-152545-juju-7f2275-prod-proposed-migration-environment-2-358b8a5e-00b3-4d97-a092-4fd8b9c70e31 --image adt/ubuntu-plucky-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 161s autopkgtest [15:28:26]: testbed dpkg architecture: arm64 161s autopkgtest [15:28:26]: testbed apt version: 2.9.33 161s autopkgtest [15:28:26]: @@@@@@@@@@@@@@@@@@@@ test bed setup 161s autopkgtest [15:28:26]: testbed release detected to be: None 162s autopkgtest [15:28:27]: updating testbed package index (apt update) 163s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [126 kB] 163s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 164s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 164s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 164s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [404 kB] 164s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [101 kB] 164s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.8 kB] 164s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 Packages [78.2 kB] 164s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 c-n-f Metadata [1976 B] 164s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted arm64 c-n-f Metadata [116 B] 164s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 Packages [346 kB] 164s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe arm64 c-n-f Metadata [15.8 kB] 165s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 Packages [4948 B] 165s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse arm64 c-n-f Metadata [572 B] 165s Fetched 1094 kB in 2s (568 kB/s) 166s Reading package lists... 167s Reading package lists... 168s Building dependency tree... 168s Reading state information... 169s Calculating upgrade... 169s Calculating upgrade... 169s The following packages will be upgraded: 169s python3-jinja2 strace 170s 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 170s Need to get 608 kB of archives. 170s After this operation, 11.3 kB of additional disk space will be used. 170s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 strace arm64 6.13+ds-1ubuntu1 [499 kB] 170s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 python3-jinja2 all 3.1.5-2ubuntu1 [109 kB] 171s Fetched 608 kB in 1s (875 kB/s) 171s (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 ... 117701 files and directories currently installed.) 171s Preparing to unpack .../strace_6.13+ds-1ubuntu1_arm64.deb ... 171s Unpacking strace (6.13+ds-1ubuntu1) over (6.11-0ubuntu1) ... 171s Preparing to unpack .../python3-jinja2_3.1.5-2ubuntu1_all.deb ... 171s Unpacking python3-jinja2 (3.1.5-2ubuntu1) over (3.1.5-2) ... 171s Setting up python3-jinja2 (3.1.5-2ubuntu1) ... 172s Setting up strace (6.13+ds-1ubuntu1) ... 172s Processing triggers for man-db (2.13.0-1) ... 173s Reading package lists... 173s Building dependency tree... 173s Reading state information... 174s Solving dependencies... 174s The following packages will be REMOVED: 174s libnsl2* libpython3.12-minimal* libpython3.12-stdlib* libpython3.12t64* 174s libunwind8* linux-headers-6.11.0-8* linux-headers-6.11.0-8-generic* 174s linux-image-6.11.0-8-generic* linux-modules-6.11.0-8-generic* 174s linux-tools-6.11.0-8* linux-tools-6.11.0-8-generic* 175s 0 upgraded, 0 newly installed, 11 to remove and 5 not upgraded. 175s After this operation, 267 MB disk space will be freed. 175s (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 ... 117701 files and directories currently installed.) 175s Removing linux-tools-6.11.0-8-generic (6.11.0-8.8) ... 175s Removing linux-tools-6.11.0-8 (6.11.0-8.8) ... 175s Removing libpython3.12t64:arm64 (3.12.9-1) ... 175s Removing libpython3.12-stdlib:arm64 (3.12.9-1) ... 175s Removing libnsl2:arm64 (1.3.0-3build3) ... 175s Removing libpython3.12-minimal:arm64 (3.12.9-1) ... 175s Removing libunwind8:arm64 (1.6.2-3.1) ... 175s Removing linux-headers-6.11.0-8-generic (6.11.0-8.8) ... 176s Removing linux-headers-6.11.0-8 (6.11.0-8.8) ... 178s Removing linux-image-6.11.0-8-generic (6.11.0-8.8) ... 178s I: /boot/vmlinuz.old is now a symlink to vmlinuz-6.14.0-10-generic 178s I: /boot/initrd.img.old is now a symlink to initrd.img-6.14.0-10-generic 178s /etc/kernel/postrm.d/initramfs-tools: 178s update-initramfs: Deleting /boot/initrd.img-6.11.0-8-generic 178s /etc/kernel/postrm.d/zz-flash-kernel: 178s flash-kernel: Kernel 6.11.0-8-generic has been removed. 178s flash-kernel: A higher version (6.14.0-10-generic) is still installed, no reflashing required. 178s /etc/kernel/postrm.d/zz-update-grub: 178s Sourcing file `/etc/default/grub' 178s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 178s Generating grub configuration file ... 178s Found linux image: /boot/vmlinuz-6.14.0-10-generic 178s Found initrd image: /boot/initrd.img-6.14.0-10-generic 179s Warning: os-prober will not be executed to detect other bootable partitions. 179s Systems on them will not be added to the GRUB boot configuration. 179s Check GRUB_DISABLE_OS_PROBER documentation entry. 179s Adding boot menu entry for UEFI Firmware Settings ... 179s done 179s Removing linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 179s Processing triggers for libc-bin (2.41-1ubuntu1) ... 179s (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 ... 81650 files and directories currently installed.) 179s Purging configuration files for linux-image-6.11.0-8-generic (6.11.0-8.8) ... 179s Purging configuration files for libpython3.12-minimal:arm64 (3.12.9-1) ... 179s Purging configuration files for linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 180s autopkgtest [15:28:45]: upgrading testbed (apt dist-upgrade and autopurge) 180s Reading package lists... 180s Building dependency tree... 180s Reading state information... 181s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 181s Starting 2 pkgProblemResolver with broken count: 0 181s Done 182s Entering ResolveByKeep 182s 182s Calculating upgrade... 183s The following packages will be upgraded: 183s libc-bin libc-dev-bin libc6 libc6-dev locales 183s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 183s Need to get 9530 kB of archives. 183s After this operation, 0 B of additional disk space will be used. 183s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 libc6-dev arm64 2.41-1ubuntu2 [1750 kB] 184s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 libc-dev-bin arm64 2.41-1ubuntu2 [24.0 kB] 184s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 libc6 arm64 2.41-1ubuntu2 [2910 kB] 185s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 libc-bin arm64 2.41-1ubuntu2 [600 kB] 185s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main arm64 locales all 2.41-1ubuntu2 [4246 kB] 186s Preconfiguring packages ... 186s Fetched 9530 kB in 3s (2951 kB/s) 186s (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 ... 81647 files and directories currently installed.) 186s Preparing to unpack .../libc6-dev_2.41-1ubuntu2_arm64.deb ... 186s Unpacking libc6-dev:arm64 (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 187s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu2_arm64.deb ... 187s Unpacking libc-dev-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 187s Preparing to unpack .../libc6_2.41-1ubuntu2_arm64.deb ... 187s Unpacking libc6:arm64 (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 187s Setting up libc6:arm64 (2.41-1ubuntu2) ... 187s (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 ... 81647 files and directories currently installed.) 187s Preparing to unpack .../libc-bin_2.41-1ubuntu2_arm64.deb ... 187s Unpacking libc-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 187s Setting up libc-bin (2.41-1ubuntu2) ... 187s (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 ... 81647 files and directories currently installed.) 187s Preparing to unpack .../locales_2.41-1ubuntu2_all.deb ... 187s Unpacking locales (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 188s Setting up locales (2.41-1ubuntu2) ... 189s Generating locales (this might take a while)... 191s en_US.UTF-8... done 191s Generation complete. 191s Setting up libc-dev-bin (2.41-1ubuntu2) ... 191s Setting up libc6-dev:arm64 (2.41-1ubuntu2) ... 191s Processing triggers for man-db (2.13.0-1) ... 193s Processing triggers for systemd (257.3-1ubuntu3) ... 194s Reading package lists... 194s Building dependency tree... 194s Reading state information... 194s Starting pkgProblemResolver with broken count: 0 194s Starting 2 pkgProblemResolver with broken count: 0 194s Done 195s Solving dependencies... 195s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 196s autopkgtest [15:29:01]: rebooting testbed after setup commands that affected boot 219s autopkgtest [15:29:24]: testbed running kernel: Linux 6.14.0-10-generic #10-Ubuntu SMP PREEMPT_DYNAMIC Wed Mar 12 15:45:31 UTC 2025 221s autopkgtest [15:29:26]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-fansi 224s Get:1 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (dsc) [2110 B] 224s Get:2 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (tar) [482 kB] 224s Get:3 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (diff) [3068 B] 224s gpgv: Signature made Tue Nov 21 07:15:23 2023 UTC 224s gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1 224s gpgv: issuer "tille@debian.org" 224s gpgv: Can't check signature: No public key 224s dpkg-source: warning: cannot verify inline signature for ./r-cran-fansi_1.0.5-1.dsc: no acceptable signature found 225s autopkgtest [15:29:30]: testing package r-cran-fansi version 1.0.5-1 226s autopkgtest [15:29:31]: build not needed 228s autopkgtest [15:29:33]: test run-unit-test: preparing testbed 229s Reading package lists... 229s Building dependency tree... 229s Reading state information... 229s Starting pkgProblemResolver with broken count: 0 230s Starting 2 pkgProblemResolver with broken count: 0 230s Done 230s The following NEW packages will be installed: 230s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 230s fonts-font-awesome fonts-glyphicons-halflings fonts-mathjax 230s javascript-common libblas3 libcairo2 libdatrie1 libdeflate0 libfontconfig1 230s libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libice6 libjbig0 230s libjpeg-turbo8 libjpeg8 libjs-bootstrap libjs-bootstrap4 libjs-d3 230s libjs-es5-shim libjs-highlight.js libjs-jquery libjs-jquery-datatables 230s libjs-jquery-selectize.js libjs-jquery-ui libjs-json libjs-mathjax 230s libjs-microplugin.js libjs-modernizr libjs-popper.js libjs-prettify 230s libjs-sifter.js libjs-twitter-bootstrap-datepicker liblapack3 liblerc4 230s liblua5.4-0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 230s libpaper-utils libpaper2 libpixman-1-0 libsharpyuv0 libsm6 libtcl8.6 230s libthai-data libthai0 libtiff6 libtk8.6 libwebp7 libxcb-render0 libxcb-shm0 230s libxft2 libxrender1 libxss1 libxt6t64 littler node-bootstrap-sass 230s node-html5shiv node-normalize.css pandoc pandoc-data r-base-core 230s r-cran-base64enc r-cran-bslib r-cran-cachem r-cran-cli r-cran-commonmark 230s r-cran-crayon r-cran-diffobj r-cran-digest r-cran-evaluate r-cran-fansi 230s r-cran-fastmap r-cran-fontawesome r-cran-fs r-cran-glue r-cran-highr 230s r-cran-htmltools r-cran-httpuv r-cran-jquerylib r-cran-jsonlite r-cran-knitr 230s r-cran-later r-cran-lifecycle r-cran-littler r-cran-magrittr r-cran-memoise 230s r-cran-mime r-cran-pkgkitten r-cran-promises r-cran-r6 r-cran-rappdirs 230s r-cran-rcpp r-cran-rlang r-cran-rmarkdown r-cran-sass r-cran-shiny 230s r-cran-sourcetools r-cran-tinytex r-cran-unitizer r-cran-withr r-cran-xfun 230s r-cran-xtable r-cran-yaml unzip x11-common xdg-utils zip 231s 0 upgraded, 114 newly installed, 0 to remove and 0 not upgraded. 231s Need to get 103 MB of archives. 231s After this operation, 417 MB of additional disk space will be used. 231s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 fonts-dejavu-mono all 2.37-8 [502 kB] 231s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 fonts-dejavu-core all 2.37-8 [835 kB] 232s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 fontconfig-config arm64 2.15.0-2ubuntu1 [37.5 kB] 232s Get:4 http://ftpmaster.internal/ubuntu plucky/main arm64 libfontconfig1 arm64 2.15.0-2ubuntu1 [144 kB] 232s Get:5 http://ftpmaster.internal/ubuntu plucky/main arm64 fontconfig arm64 2.15.0-2ubuntu1 [191 kB] 232s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 232s Get:7 http://ftpmaster.internal/ubuntu plucky/universe arm64 fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-3 [118 kB] 232s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 fonts-mathjax all 2.7.9+dfsg-1 [2208 kB] 233s Get:9 http://ftpmaster.internal/ubuntu plucky/main arm64 javascript-common all 12 [5216 B] 233s Get:10 http://ftpmaster.internal/ubuntu plucky/main arm64 libblas3 arm64 3.12.1-2 [161 kB] 233s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 libpixman-1-0 arm64 0.44.0-3 [197 kB] 233s Get:12 http://ftpmaster.internal/ubuntu plucky/main arm64 libxcb-render0 arm64 1.17.0-2 [16.6 kB] 233s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 libxcb-shm0 arm64 1.17.0-2 [5884 B] 233s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 libxrender1 arm64 1:0.9.10-1.1build1 [18.8 kB] 233s Get:15 http://ftpmaster.internal/ubuntu plucky/main arm64 libcairo2 arm64 1.18.2-2 [560 kB] 233s Get:16 http://ftpmaster.internal/ubuntu plucky/main arm64 libdatrie1 arm64 0.2.13-3build1 [19.2 kB] 233s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 libdeflate0 arm64 1.23-1 [46.2 kB] 233s Get:18 http://ftpmaster.internal/ubuntu plucky/main arm64 libgfortran5 arm64 15-20250222-0ubuntu1 [444 kB] 233s Get:19 http://ftpmaster.internal/ubuntu plucky/main arm64 libgomp1 arm64 15-20250222-0ubuntu1 [146 kB] 233s Get:20 http://ftpmaster.internal/ubuntu plucky/main arm64 libgraphite2-3 arm64 1.3.14-2ubuntu1 [70.6 kB] 233s Get:21 http://ftpmaster.internal/ubuntu plucky/main arm64 libharfbuzz0b arm64 10.2.0-1 [490 kB] 233s Get:22 http://ftpmaster.internal/ubuntu plucky/main arm64 x11-common all 1:7.7+23ubuntu3 [21.7 kB] 233s Get:23 http://ftpmaster.internal/ubuntu plucky/main arm64 libice6 arm64 2:1.1.1-1 [42.3 kB] 233s Get:24 http://ftpmaster.internal/ubuntu plucky/main arm64 libjpeg-turbo8 arm64 2.1.5-3ubuntu2 [165 kB] 233s Get:25 http://ftpmaster.internal/ubuntu plucky/main arm64 libjpeg8 arm64 8c-2ubuntu11 [2148 B] 233s Get:26 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-bootstrap all 3.4.1+dfsg-3 [129 kB] 233s Get:27 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 233s Get:28 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-bootstrap4 all 4.6.1+dfsg1-4 [537 kB] 234s Get:29 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-d3 all 3.5.17-4 [132 kB] 234s Get:30 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-es5-shim all 4.6.7-2 [39.8 kB] 234s Get:31 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 234s Get:32 http://ftpmaster.internal/ubuntu plucky/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 234s Get:33 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-datatables all 1.11.5+dfsg-2 [146 kB] 234s Get:34 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-sifter.js all 0.6.0+dfsg-3 [12.6 kB] 234s Get:35 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-microplugin.js all 0.0.3+dfsg-1.1 [3712 B] 234s Get:36 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-selectize.js all 0.12.6+dfsg-1.1 [51.0 kB] 234s Get:37 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-jquery-ui all 1.13.2+dfsg-1 [252 kB] 234s Get:38 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-json all 0~20221030+~1.0.8-1 [20.6 kB] 234s Get:39 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-prettify all 2015.12.04+dfsg-1.1 [39.3 kB] 234s Get:40 http://ftpmaster.internal/ubuntu plucky/main arm64 liblapack3 arm64 3.12.1-2 [2307 kB] 235s Get:41 http://ftpmaster.internal/ubuntu plucky/main arm64 liblerc4 arm64 4.0.0+ds-5ubuntu1 [167 kB] 235s Get:42 http://ftpmaster.internal/ubuntu plucky/main arm64 liblua5.4-0 arm64 5.4.7-1 [158 kB] 235s Get:43 http://ftpmaster.internal/ubuntu plucky/main arm64 libthai-data all 0.1.29-2build1 [158 kB] 235s Get:44 http://ftpmaster.internal/ubuntu plucky/main arm64 libthai0 arm64 0.1.29-2build1 [18.2 kB] 235s Get:45 http://ftpmaster.internal/ubuntu plucky/main arm64 libpango-1.0-0 arm64 1.56.2-1 [237 kB] 235s Get:46 http://ftpmaster.internal/ubuntu plucky/main arm64 libpangoft2-1.0-0 arm64 1.56.2-1 [49.5 kB] 235s Get:47 http://ftpmaster.internal/ubuntu plucky/main arm64 libpangocairo-1.0-0 arm64 1.56.2-1 [27.6 kB] 235s Get:48 http://ftpmaster.internal/ubuntu plucky/main arm64 libpaper2 arm64 2.2.5-0.3 [17.3 kB] 235s Get:49 http://ftpmaster.internal/ubuntu plucky/main arm64 libpaper-utils arm64 2.2.5-0.3 [15.4 kB] 235s Get:50 http://ftpmaster.internal/ubuntu plucky/main arm64 libsharpyuv0 arm64 1.5.0-0.1 [16.9 kB] 235s Get:51 http://ftpmaster.internal/ubuntu plucky/main arm64 libsm6 arm64 2:1.2.4-1 [16.4 kB] 235s Get:52 http://ftpmaster.internal/ubuntu plucky/main arm64 libtcl8.6 arm64 8.6.16+dfsg-1 [987 kB] 235s Get:53 http://ftpmaster.internal/ubuntu plucky/main arm64 libjbig0 arm64 2.1-6.1ubuntu2 [29.3 kB] 235s Get:54 http://ftpmaster.internal/ubuntu plucky/main arm64 libwebp7 arm64 1.5.0-0.1 [194 kB] 235s Get:55 http://ftpmaster.internal/ubuntu plucky/main arm64 libtiff6 arm64 4.5.1+git230720-4ubuntu4 [193 kB] 235s Get:56 http://ftpmaster.internal/ubuntu plucky/main arm64 libxft2 arm64 2.3.6-1build1 [44.1 kB] 235s Get:57 http://ftpmaster.internal/ubuntu plucky/main arm64 libxss1 arm64 1:1.2.3-1build3 [7244 B] 235s Get:58 http://ftpmaster.internal/ubuntu plucky/main arm64 libtk8.6 arm64 8.6.16-1 [776 kB] 236s Get:59 http://ftpmaster.internal/ubuntu plucky/main arm64 libxt6t64 arm64 1:1.2.1-1.2build1 [168 kB] 236s Get:60 http://ftpmaster.internal/ubuntu plucky/main arm64 zip arm64 3.0-14ubuntu2 [173 kB] 236s Get:61 http://ftpmaster.internal/ubuntu plucky/main arm64 unzip arm64 6.0-28ubuntu6 [178 kB] 236s Get:62 http://ftpmaster.internal/ubuntu plucky/main arm64 xdg-utils all 1.2.1-2ubuntu1 [66.0 kB] 236s Get:63 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-base-core arm64 4.4.3-1 [28.4 MB] 244s Get:64 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-littler arm64 0.3.20-2 [96.1 kB] 244s Get:65 http://ftpmaster.internal/ubuntu plucky/universe arm64 littler all 0.3.20-2 [2554 B] 244s Get:66 http://ftpmaster.internal/ubuntu plucky/universe arm64 node-bootstrap-sass all 3.4.3-2 [187 kB] 244s Get:67 http://ftpmaster.internal/ubuntu plucky/universe arm64 node-html5shiv all 3.7.3+dfsg-5 [13.5 kB] 244s Get:68 http://ftpmaster.internal/ubuntu plucky/universe arm64 node-normalize.css all 8.0.1-5 [10.8 kB] 244s Get:69 http://ftpmaster.internal/ubuntu plucky/universe arm64 pandoc-data all 3.1.11.1-3build1 [78.8 kB] 244s Get:70 http://ftpmaster.internal/ubuntu plucky/universe arm64 pandoc arm64 3.1.11.1+ds-2 [28.1 MB] 252s Get:71 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-base64enc arm64 0.1-3-3 [27.4 kB] 252s Get:72 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-rlang arm64 1.1.5-1 [1707 kB] 252s Get:73 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-fastmap arm64 1.2.0-1 [70.6 kB] 252s Get:74 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-cachem arm64 1.1.0-1 [74.1 kB] 252s Get:75 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-digest arm64 0.6.37-1 [200 kB] 252s Get:76 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-htmltools arm64 0.5.8.1-1 [373 kB] 252s Get:77 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-jquerylib all 0.1.4+dfsg-4 [13.5 kB] 252s Get:78 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-jsonlite arm64 1.9.1+dfsg-1 [445 kB] 253s Get:79 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-cli arm64 3.6.4-1 [1374 kB] 253s Get:80 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-glue arm64 1.8.0-1 [163 kB] 253s Get:81 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-lifecycle all 1.0.4+dfsg-1 [110 kB] 253s Get:82 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-memoise all 2.0.1-1 [53.9 kB] 253s Get:83 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-mime arm64 0.12-2 [35.8 kB] 253s Get:84 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-fs arm64 1.6.5+dfsg-1 [244 kB] 253s Get:85 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-r6 all 2.6.1-1 [101 kB] 253s Get:86 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-rappdirs arm64 0.3.3-1 [47.5 kB] 253s Get:87 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-sass arm64 0.4.9+dfsg-1 [957 kB] 253s Get:88 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-bslib all 0.8.0+dfsg-1 [4294 kB] 254s Get:89 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-commonmark arm64 1.9.2-2 [129 kB] 254s Get:90 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-crayon all 1.5.3-1 [165 kB] 254s Get:91 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-diffobj arm64 0.3.5-1 [1116 kB] 255s Get:92 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-evaluate all 1.0.3-1 [114 kB] 255s Get:93 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-fansi arm64 1.0.5-1 [616 kB] 255s Get:94 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-fontawesome all 0.5.3-1 [1331 kB] 255s Get:95 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-xfun arm64 0.51+dfsg-1 [573 kB] 255s Get:96 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-highr all 0.11+dfsg-1 [38.5 kB] 256s Get:97 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-pkgkitten all 0.2.4-1 [27.2 kB] 256s Get:98 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-rcpp arm64 1.0.14-1 [1978 kB] 256s Get:99 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-later arm64 1.4.1+dfsg-1 [141 kB] 256s Get:100 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-magrittr arm64 2.0.3-1 [154 kB] 256s Get:101 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-promises arm64 1.3.2+dfsg-1 [290 kB] 256s Get:102 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-httpuv arm64 1.6.15+dfsg-1 [489 kB] 257s Get:103 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-yaml arm64 2.3.10-1 [108 kB] 257s Get:104 http://ftpmaster.internal/ubuntu plucky/main arm64 libjs-mathjax all 2.7.9+dfsg-1 [5665 kB] 260s Get:105 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-knitr all 1.49+dfsg-1 [859 kB] 261s Get:106 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-tinytex all 0.56-1 [148 kB] 261s Get:107 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-modernizr all 3.13.0-0.1 [101 kB] 261s Get:108 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-xtable all 1:1.8-4-2 [689 kB] 261s Get:109 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-sourcetools arm64 0.1.7-1-1 [47.2 kB] 261s Get:110 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-withr all 3.0.2+dfsg-1 [214 kB] 261s Get:111 http://ftpmaster.internal/ubuntu plucky/universe arm64 libjs-twitter-bootstrap-datepicker all 1.3.1+dfsg1-4.1 [28.5 kB] 261s Get:112 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-shiny all 1.10.0+dfsg-2 [3124 kB] 263s Get:113 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-rmarkdown all 2.29+dfsg-1 [1501 kB] 264s Get:114 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-cran-unitizer all 1.4.21-1 [1428 kB] 265s Preconfiguring packages ... 265s Fetched 103 MB in 34s (3040 kB/s) 265s Selecting previously unselected package fonts-dejavu-mono. 265s (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 ... 81647 files and directories currently installed.) 265s Preparing to unpack .../000-fonts-dejavu-mono_2.37-8_all.deb ... 265s Unpacking fonts-dejavu-mono (2.37-8) ... 265s Selecting previously unselected package fonts-dejavu-core. 265s Preparing to unpack .../001-fonts-dejavu-core_2.37-8_all.deb ... 266s Unpacking fonts-dejavu-core (2.37-8) ... 266s Selecting previously unselected package fontconfig-config. 266s Preparing to unpack .../002-fontconfig-config_2.15.0-2ubuntu1_arm64.deb ... 266s Unpacking fontconfig-config (2.15.0-2ubuntu1) ... 266s Selecting previously unselected package libfontconfig1:arm64. 266s Preparing to unpack .../003-libfontconfig1_2.15.0-2ubuntu1_arm64.deb ... 266s Unpacking libfontconfig1:arm64 (2.15.0-2ubuntu1) ... 266s Selecting previously unselected package fontconfig. 266s Preparing to unpack .../004-fontconfig_2.15.0-2ubuntu1_arm64.deb ... 266s Unpacking fontconfig (2.15.0-2ubuntu1) ... 266s Selecting previously unselected package fonts-font-awesome. 266s Preparing to unpack .../005-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 266s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 266s Selecting previously unselected package fonts-glyphicons-halflings. 266s Preparing to unpack .../006-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-3_all.deb ... 266s Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 266s Selecting previously unselected package fonts-mathjax. 266s Preparing to unpack .../007-fonts-mathjax_2.7.9+dfsg-1_all.deb ... 266s Unpacking fonts-mathjax (2.7.9+dfsg-1) ... 266s Selecting previously unselected package javascript-common. 266s Preparing to unpack .../008-javascript-common_12_all.deb ... 266s Unpacking javascript-common (12) ... 266s Selecting previously unselected package libblas3:arm64. 266s Preparing to unpack .../009-libblas3_3.12.1-2_arm64.deb ... 266s Unpacking libblas3:arm64 (3.12.1-2) ... 266s Selecting previously unselected package libpixman-1-0:arm64. 266s Preparing to unpack .../010-libpixman-1-0_0.44.0-3_arm64.deb ... 266s Unpacking libpixman-1-0:arm64 (0.44.0-3) ... 266s Selecting previously unselected package libxcb-render0:arm64. 266s Preparing to unpack .../011-libxcb-render0_1.17.0-2_arm64.deb ... 266s Unpacking libxcb-render0:arm64 (1.17.0-2) ... 266s Selecting previously unselected package libxcb-shm0:arm64. 266s Preparing to unpack .../012-libxcb-shm0_1.17.0-2_arm64.deb ... 266s Unpacking libxcb-shm0:arm64 (1.17.0-2) ... 266s Selecting previously unselected package libxrender1:arm64. 266s Preparing to unpack .../013-libxrender1_1%3a0.9.10-1.1build1_arm64.deb ... 266s Unpacking libxrender1:arm64 (1:0.9.10-1.1build1) ... 266s Selecting previously unselected package libcairo2:arm64. 266s Preparing to unpack .../014-libcairo2_1.18.2-2_arm64.deb ... 266s Unpacking libcairo2:arm64 (1.18.2-2) ... 267s Selecting previously unselected package libdatrie1:arm64. 267s Preparing to unpack .../015-libdatrie1_0.2.13-3build1_arm64.deb ... 267s Unpacking libdatrie1:arm64 (0.2.13-3build1) ... 267s Selecting previously unselected package libdeflate0:arm64. 267s Preparing to unpack .../016-libdeflate0_1.23-1_arm64.deb ... 267s Unpacking libdeflate0:arm64 (1.23-1) ... 267s Selecting previously unselected package libgfortran5:arm64. 267s Preparing to unpack .../017-libgfortran5_15-20250222-0ubuntu1_arm64.deb ... 267s Unpacking libgfortran5:arm64 (15-20250222-0ubuntu1) ... 267s Selecting previously unselected package libgomp1:arm64. 267s Preparing to unpack .../018-libgomp1_15-20250222-0ubuntu1_arm64.deb ... 267s Unpacking libgomp1:arm64 (15-20250222-0ubuntu1) ... 267s Selecting previously unselected package libgraphite2-3:arm64. 267s Preparing to unpack .../019-libgraphite2-3_1.3.14-2ubuntu1_arm64.deb ... 267s Unpacking libgraphite2-3:arm64 (1.3.14-2ubuntu1) ... 267s Selecting previously unselected package libharfbuzz0b:arm64. 267s Preparing to unpack .../020-libharfbuzz0b_10.2.0-1_arm64.deb ... 267s Unpacking libharfbuzz0b:arm64 (10.2.0-1) ... 267s Selecting previously unselected package x11-common. 267s Preparing to unpack .../021-x11-common_1%3a7.7+23ubuntu3_all.deb ... 267s Unpacking x11-common (1:7.7+23ubuntu3) ... 267s Selecting previously unselected package libice6:arm64. 267s Preparing to unpack .../022-libice6_2%3a1.1.1-1_arm64.deb ... 267s Unpacking libice6:arm64 (2:1.1.1-1) ... 267s Selecting previously unselected package libjpeg-turbo8:arm64. 267s Preparing to unpack .../023-libjpeg-turbo8_2.1.5-3ubuntu2_arm64.deb ... 267s Unpacking libjpeg-turbo8:arm64 (2.1.5-3ubuntu2) ... 267s Selecting previously unselected package libjpeg8:arm64. 267s Preparing to unpack .../024-libjpeg8_8c-2ubuntu11_arm64.deb ... 267s Unpacking libjpeg8:arm64 (8c-2ubuntu11) ... 267s Selecting previously unselected package libjs-bootstrap. 267s Preparing to unpack .../025-libjs-bootstrap_3.4.1+dfsg-3_all.deb ... 267s Unpacking libjs-bootstrap (3.4.1+dfsg-3) ... 267s Selecting previously unselected package libjs-popper.js. 267s Preparing to unpack .../026-libjs-popper.js_1.16.1+ds-6_all.deb ... 267s Unpacking libjs-popper.js (1.16.1+ds-6) ... 267s Selecting previously unselected package libjs-bootstrap4. 267s Preparing to unpack .../027-libjs-bootstrap4_4.6.1+dfsg1-4_all.deb ... 267s Unpacking libjs-bootstrap4 (4.6.1+dfsg1-4) ... 267s Selecting previously unselected package libjs-d3. 267s Preparing to unpack .../028-libjs-d3_3.5.17-4_all.deb ... 267s Unpacking libjs-d3 (3.5.17-4) ... 267s Selecting previously unselected package libjs-es5-shim. 267s Preparing to unpack .../029-libjs-es5-shim_4.6.7-2_all.deb ... 267s Unpacking libjs-es5-shim (4.6.7-2) ... 267s Selecting previously unselected package libjs-highlight.js. 267s Preparing to unpack .../030-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 267s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 267s Selecting previously unselected package libjs-jquery. 267s Preparing to unpack .../031-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 267s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 267s Selecting previously unselected package libjs-jquery-datatables. 267s Preparing to unpack .../032-libjs-jquery-datatables_1.11.5+dfsg-2_all.deb ... 267s Unpacking libjs-jquery-datatables (1.11.5+dfsg-2) ... 267s Selecting previously unselected package libjs-sifter.js. 267s Preparing to unpack .../033-libjs-sifter.js_0.6.0+dfsg-3_all.deb ... 267s Unpacking libjs-sifter.js (0.6.0+dfsg-3) ... 267s Selecting previously unselected package libjs-microplugin.js. 267s Preparing to unpack .../034-libjs-microplugin.js_0.0.3+dfsg-1.1_all.deb ... 267s Unpacking libjs-microplugin.js (0.0.3+dfsg-1.1) ... 267s Selecting previously unselected package libjs-jquery-selectize.js. 268s Preparing to unpack .../035-libjs-jquery-selectize.js_0.12.6+dfsg-1.1_all.deb ... 268s Unpacking libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 268s Selecting previously unselected package libjs-jquery-ui. 268s Preparing to unpack .../036-libjs-jquery-ui_1.13.2+dfsg-1_all.deb ... 268s Unpacking libjs-jquery-ui (1.13.2+dfsg-1) ... 268s Selecting previously unselected package libjs-json. 268s Preparing to unpack .../037-libjs-json_0~20221030+~1.0.8-1_all.deb ... 268s Unpacking libjs-json (0~20221030+~1.0.8-1) ... 268s Selecting previously unselected package libjs-prettify. 268s Preparing to unpack .../038-libjs-prettify_2015.12.04+dfsg-1.1_all.deb ... 268s Unpacking libjs-prettify (2015.12.04+dfsg-1.1) ... 268s Selecting previously unselected package liblapack3:arm64. 268s Preparing to unpack .../039-liblapack3_3.12.1-2_arm64.deb ... 268s Unpacking liblapack3:arm64 (3.12.1-2) ... 268s Selecting previously unselected package liblerc4:arm64. 268s Preparing to unpack .../040-liblerc4_4.0.0+ds-5ubuntu1_arm64.deb ... 268s Unpacking liblerc4:arm64 (4.0.0+ds-5ubuntu1) ... 268s Selecting previously unselected package liblua5.4-0:arm64. 268s Preparing to unpack .../041-liblua5.4-0_5.4.7-1_arm64.deb ... 268s Unpacking liblua5.4-0:arm64 (5.4.7-1) ... 268s Selecting previously unselected package libthai-data. 268s Preparing to unpack .../042-libthai-data_0.1.29-2build1_all.deb ... 268s Unpacking libthai-data (0.1.29-2build1) ... 268s Selecting previously unselected package libthai0:arm64. 268s Preparing to unpack .../043-libthai0_0.1.29-2build1_arm64.deb ... 268s Unpacking libthai0:arm64 (0.1.29-2build1) ... 268s Selecting previously unselected package libpango-1.0-0:arm64. 268s Preparing to unpack .../044-libpango-1.0-0_1.56.2-1_arm64.deb ... 268s Unpacking libpango-1.0-0:arm64 (1.56.2-1) ... 268s Selecting previously unselected package libpangoft2-1.0-0:arm64. 268s Preparing to unpack .../045-libpangoft2-1.0-0_1.56.2-1_arm64.deb ... 268s Unpacking libpangoft2-1.0-0:arm64 (1.56.2-1) ... 268s Selecting previously unselected package libpangocairo-1.0-0:arm64. 268s Preparing to unpack .../046-libpangocairo-1.0-0_1.56.2-1_arm64.deb ... 268s Unpacking libpangocairo-1.0-0:arm64 (1.56.2-1) ... 268s Selecting previously unselected package libpaper2:arm64. 268s Preparing to unpack .../047-libpaper2_2.2.5-0.3_arm64.deb ... 268s Unpacking libpaper2:arm64 (2.2.5-0.3) ... 268s Selecting previously unselected package libpaper-utils. 268s Preparing to unpack .../048-libpaper-utils_2.2.5-0.3_arm64.deb ... 268s Unpacking libpaper-utils (2.2.5-0.3) ... 268s Selecting previously unselected package libsharpyuv0:arm64. 268s Preparing to unpack .../049-libsharpyuv0_1.5.0-0.1_arm64.deb ... 268s Unpacking libsharpyuv0:arm64 (1.5.0-0.1) ... 268s Selecting previously unselected package libsm6:arm64. 268s Preparing to unpack .../050-libsm6_2%3a1.2.4-1_arm64.deb ... 268s Unpacking libsm6:arm64 (2:1.2.4-1) ... 268s Selecting previously unselected package libtcl8.6:arm64. 268s Preparing to unpack .../051-libtcl8.6_8.6.16+dfsg-1_arm64.deb ... 268s Unpacking libtcl8.6:arm64 (8.6.16+dfsg-1) ... 268s Selecting previously unselected package libjbig0:arm64. 268s Preparing to unpack .../052-libjbig0_2.1-6.1ubuntu2_arm64.deb ... 268s Unpacking libjbig0:arm64 (2.1-6.1ubuntu2) ... 268s Selecting previously unselected package libwebp7:arm64. 268s Preparing to unpack .../053-libwebp7_1.5.0-0.1_arm64.deb ... 268s Unpacking libwebp7:arm64 (1.5.0-0.1) ... 268s Selecting previously unselected package libtiff6:arm64. 268s Preparing to unpack .../054-libtiff6_4.5.1+git230720-4ubuntu4_arm64.deb ... 268s Unpacking libtiff6:arm64 (4.5.1+git230720-4ubuntu4) ... 269s Selecting previously unselected package libxft2:arm64. 269s Preparing to unpack .../055-libxft2_2.3.6-1build1_arm64.deb ... 269s Unpacking libxft2:arm64 (2.3.6-1build1) ... 269s Selecting previously unselected package libxss1:arm64. 269s Preparing to unpack .../056-libxss1_1%3a1.2.3-1build3_arm64.deb ... 269s Unpacking libxss1:arm64 (1:1.2.3-1build3) ... 269s Selecting previously unselected package libtk8.6:arm64. 269s Preparing to unpack .../057-libtk8.6_8.6.16-1_arm64.deb ... 269s Unpacking libtk8.6:arm64 (8.6.16-1) ... 269s Selecting previously unselected package libxt6t64:arm64. 269s Preparing to unpack .../058-libxt6t64_1%3a1.2.1-1.2build1_arm64.deb ... 269s Unpacking libxt6t64:arm64 (1:1.2.1-1.2build1) ... 269s Selecting previously unselected package zip. 269s Preparing to unpack .../059-zip_3.0-14ubuntu2_arm64.deb ... 269s Unpacking zip (3.0-14ubuntu2) ... 269s Selecting previously unselected package unzip. 269s Preparing to unpack .../060-unzip_6.0-28ubuntu6_arm64.deb ... 269s Unpacking unzip (6.0-28ubuntu6) ... 269s Selecting previously unselected package xdg-utils. 269s Preparing to unpack .../061-xdg-utils_1.2.1-2ubuntu1_all.deb ... 269s Unpacking xdg-utils (1.2.1-2ubuntu1) ... 269s Selecting previously unselected package r-base-core. 269s Preparing to unpack .../062-r-base-core_4.4.3-1_arm64.deb ... 269s Unpacking r-base-core (4.4.3-1) ... 269s Selecting previously unselected package r-cran-littler. 269s Preparing to unpack .../063-r-cran-littler_0.3.20-2_arm64.deb ... 269s Unpacking r-cran-littler (0.3.20-2) ... 269s Selecting previously unselected package littler. 269s Preparing to unpack .../064-littler_0.3.20-2_all.deb ... 269s Unpacking littler (0.3.20-2) ... 269s Selecting previously unselected package node-bootstrap-sass. 269s Preparing to unpack .../065-node-bootstrap-sass_3.4.3-2_all.deb ... 269s Unpacking node-bootstrap-sass (3.4.3-2) ... 269s Selecting previously unselected package node-html5shiv. 269s Preparing to unpack .../066-node-html5shiv_3.7.3+dfsg-5_all.deb ... 269s Unpacking node-html5shiv (3.7.3+dfsg-5) ... 269s Selecting previously unselected package node-normalize.css. 269s Preparing to unpack .../067-node-normalize.css_8.0.1-5_all.deb ... 269s Unpacking node-normalize.css (8.0.1-5) ... 269s Selecting previously unselected package pandoc-data. 269s Preparing to unpack .../068-pandoc-data_3.1.11.1-3build1_all.deb ... 269s Unpacking pandoc-data (3.1.11.1-3build1) ... 269s Selecting previously unselected package pandoc. 270s Preparing to unpack .../069-pandoc_3.1.11.1+ds-2_arm64.deb ... 270s Unpacking pandoc (3.1.11.1+ds-2) ... 270s Selecting previously unselected package r-cran-base64enc. 271s Preparing to unpack .../070-r-cran-base64enc_0.1-3-3_arm64.deb ... 271s Unpacking r-cran-base64enc (0.1-3-3) ... 271s Selecting previously unselected package r-cran-rlang. 271s Preparing to unpack .../071-r-cran-rlang_1.1.5-1_arm64.deb ... 271s Unpacking r-cran-rlang (1.1.5-1) ... 271s Selecting previously unselected package r-cran-fastmap. 271s Preparing to unpack .../072-r-cran-fastmap_1.2.0-1_arm64.deb ... 271s Unpacking r-cran-fastmap (1.2.0-1) ... 271s Selecting previously unselected package r-cran-cachem. 271s Preparing to unpack .../073-r-cran-cachem_1.1.0-1_arm64.deb ... 271s Unpacking r-cran-cachem (1.1.0-1) ... 271s Selecting previously unselected package r-cran-digest. 271s Preparing to unpack .../074-r-cran-digest_0.6.37-1_arm64.deb ... 271s Unpacking r-cran-digest (0.6.37-1) ... 271s Selecting previously unselected package r-cran-htmltools. 271s Preparing to unpack .../075-r-cran-htmltools_0.5.8.1-1_arm64.deb ... 271s Unpacking r-cran-htmltools (0.5.8.1-1) ... 271s Selecting previously unselected package r-cran-jquerylib. 271s Preparing to unpack .../076-r-cran-jquerylib_0.1.4+dfsg-4_all.deb ... 271s Unpacking r-cran-jquerylib (0.1.4+dfsg-4) ... 271s Selecting previously unselected package r-cran-jsonlite. 271s Preparing to unpack .../077-r-cran-jsonlite_1.9.1+dfsg-1_arm64.deb ... 271s Unpacking r-cran-jsonlite (1.9.1+dfsg-1) ... 271s Selecting previously unselected package r-cran-cli. 271s Preparing to unpack .../078-r-cran-cli_3.6.4-1_arm64.deb ... 271s Unpacking r-cran-cli (3.6.4-1) ... 271s Selecting previously unselected package r-cran-glue. 271s Preparing to unpack .../079-r-cran-glue_1.8.0-1_arm64.deb ... 271s Unpacking r-cran-glue (1.8.0-1) ... 271s Selecting previously unselected package r-cran-lifecycle. 271s Preparing to unpack .../080-r-cran-lifecycle_1.0.4+dfsg-1_all.deb ... 271s Unpacking r-cran-lifecycle (1.0.4+dfsg-1) ... 271s Selecting previously unselected package r-cran-memoise. 271s Preparing to unpack .../081-r-cran-memoise_2.0.1-1_all.deb ... 271s Unpacking r-cran-memoise (2.0.1-1) ... 271s Selecting previously unselected package r-cran-mime. 271s Preparing to unpack .../082-r-cran-mime_0.12-2_arm64.deb ... 271s Unpacking r-cran-mime (0.12-2) ... 271s Selecting previously unselected package r-cran-fs. 271s Preparing to unpack .../083-r-cran-fs_1.6.5+dfsg-1_arm64.deb ... 271s Unpacking r-cran-fs (1.6.5+dfsg-1) ... 271s Selecting previously unselected package r-cran-r6. 271s Preparing to unpack .../084-r-cran-r6_2.6.1-1_all.deb ... 271s Unpacking r-cran-r6 (2.6.1-1) ... 271s Selecting previously unselected package r-cran-rappdirs. 271s Preparing to unpack .../085-r-cran-rappdirs_0.3.3-1_arm64.deb ... 271s Unpacking r-cran-rappdirs (0.3.3-1) ... 271s Selecting previously unselected package r-cran-sass. 271s Preparing to unpack .../086-r-cran-sass_0.4.9+dfsg-1_arm64.deb ... 271s Unpacking r-cran-sass (0.4.9+dfsg-1) ... 271s Selecting previously unselected package r-cran-bslib. 271s Preparing to unpack .../087-r-cran-bslib_0.8.0+dfsg-1_all.deb ... 271s Unpacking r-cran-bslib (0.8.0+dfsg-1) ... 272s Selecting previously unselected package r-cran-commonmark. 272s Preparing to unpack .../088-r-cran-commonmark_1.9.2-2_arm64.deb ... 272s Unpacking r-cran-commonmark (1.9.2-2) ... 272s Selecting previously unselected package r-cran-crayon. 272s Preparing to unpack .../089-r-cran-crayon_1.5.3-1_all.deb ... 272s Unpacking r-cran-crayon (1.5.3-1) ... 272s Selecting previously unselected package r-cran-diffobj. 272s Preparing to unpack .../090-r-cran-diffobj_0.3.5-1_arm64.deb ... 272s Unpacking r-cran-diffobj (0.3.5-1) ... 272s Selecting previously unselected package r-cran-evaluate. 272s Preparing to unpack .../091-r-cran-evaluate_1.0.3-1_all.deb ... 272s Unpacking r-cran-evaluate (1.0.3-1) ... 272s Selecting previously unselected package r-cran-fansi. 272s Preparing to unpack .../092-r-cran-fansi_1.0.5-1_arm64.deb ... 272s Unpacking r-cran-fansi (1.0.5-1) ... 272s Selecting previously unselected package r-cran-fontawesome. 272s Preparing to unpack .../093-r-cran-fontawesome_0.5.3-1_all.deb ... 272s Unpacking r-cran-fontawesome (0.5.3-1) ... 272s Selecting previously unselected package r-cran-xfun. 272s Preparing to unpack .../094-r-cran-xfun_0.51+dfsg-1_arm64.deb ... 272s Unpacking r-cran-xfun (0.51+dfsg-1) ... 272s Selecting previously unselected package r-cran-highr. 272s Preparing to unpack .../095-r-cran-highr_0.11+dfsg-1_all.deb ... 272s Unpacking r-cran-highr (0.11+dfsg-1) ... 272s Selecting previously unselected package r-cran-pkgkitten. 272s Preparing to unpack .../096-r-cran-pkgkitten_0.2.4-1_all.deb ... 272s Unpacking r-cran-pkgkitten (0.2.4-1) ... 272s Selecting previously unselected package r-cran-rcpp. 272s Preparing to unpack .../097-r-cran-rcpp_1.0.14-1_arm64.deb ... 272s Unpacking r-cran-rcpp (1.0.14-1) ... 272s Selecting previously unselected package r-cran-later. 272s Preparing to unpack .../098-r-cran-later_1.4.1+dfsg-1_arm64.deb ... 272s Unpacking r-cran-later (1.4.1+dfsg-1) ... 272s Selecting previously unselected package r-cran-magrittr. 272s Preparing to unpack .../099-r-cran-magrittr_2.0.3-1_arm64.deb ... 272s Unpacking r-cran-magrittr (2.0.3-1) ... 272s Selecting previously unselected package r-cran-promises. 272s Preparing to unpack .../100-r-cran-promises_1.3.2+dfsg-1_arm64.deb ... 272s Unpacking r-cran-promises (1.3.2+dfsg-1) ... 272s Selecting previously unselected package r-cran-httpuv. 272s Preparing to unpack .../101-r-cran-httpuv_1.6.15+dfsg-1_arm64.deb ... 272s Unpacking r-cran-httpuv (1.6.15+dfsg-1) ... 272s Selecting previously unselected package r-cran-yaml. 272s Preparing to unpack .../102-r-cran-yaml_2.3.10-1_arm64.deb ... 272s Unpacking r-cran-yaml (2.3.10-1) ... 272s Selecting previously unselected package libjs-mathjax. 272s Preparing to unpack .../103-libjs-mathjax_2.7.9+dfsg-1_all.deb ... 272s Unpacking libjs-mathjax (2.7.9+dfsg-1) ... 273s Selecting previously unselected package r-cran-knitr. 273s Preparing to unpack .../104-r-cran-knitr_1.49+dfsg-1_all.deb ... 273s Unpacking r-cran-knitr (1.49+dfsg-1) ... 273s Selecting previously unselected package r-cran-tinytex. 273s Preparing to unpack .../105-r-cran-tinytex_0.56-1_all.deb ... 273s Unpacking r-cran-tinytex (0.56-1) ... 273s Selecting previously unselected package libjs-modernizr. 273s Preparing to unpack .../106-libjs-modernizr_3.13.0-0.1_all.deb ... 273s Unpacking libjs-modernizr (3.13.0-0.1) ... 273s Selecting previously unselected package r-cran-xtable. 273s Preparing to unpack .../107-r-cran-xtable_1%3a1.8-4-2_all.deb ... 273s Unpacking r-cran-xtable (1:1.8-4-2) ... 273s Selecting previously unselected package r-cran-sourcetools. 273s Preparing to unpack .../108-r-cran-sourcetools_0.1.7-1-1_arm64.deb ... 273s Unpacking r-cran-sourcetools (0.1.7-1-1) ... 273s Selecting previously unselected package r-cran-withr. 273s Preparing to unpack .../109-r-cran-withr_3.0.2+dfsg-1_all.deb ... 273s Unpacking r-cran-withr (3.0.2+dfsg-1) ... 274s Selecting previously unselected package libjs-twitter-bootstrap-datepicker. 274s Preparing to unpack .../110-libjs-twitter-bootstrap-datepicker_1.3.1+dfsg1-4.1_all.deb ... 274s Unpacking libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 274s Selecting previously unselected package r-cran-shiny. 274s Preparing to unpack .../111-r-cran-shiny_1.10.0+dfsg-2_all.deb ... 274s Unpacking r-cran-shiny (1.10.0+dfsg-2) ... 274s Selecting previously unselected package r-cran-rmarkdown. 274s Preparing to unpack .../112-r-cran-rmarkdown_2.29+dfsg-1_all.deb ... 274s Unpacking r-cran-rmarkdown (2.29+dfsg-1) ... 274s Selecting previously unselected package r-cran-unitizer. 274s Preparing to unpack .../113-r-cran-unitizer_1.4.21-1_all.deb ... 274s Unpacking r-cran-unitizer (1.4.21-1) ... 274s Setting up libjs-json (0~20221030+~1.0.8-1) ... 274s Setting up javascript-common (12) ... 274s Setting up libgraphite2-3:arm64 (1.3.14-2ubuntu1) ... 274s Setting up libpixman-1-0:arm64 (0.44.0-3) ... 274s Setting up libsharpyuv0:arm64 (1.5.0-0.1) ... 274s Setting up fonts-mathjax (2.7.9+dfsg-1) ... 274s Setting up liblerc4:arm64 (4.0.0+ds-5ubuntu1) ... 274s Setting up libjs-mathjax (2.7.9+dfsg-1) ... 274s Setting up libxrender1:arm64 (1:0.9.10-1.1build1) ... 274s Setting up libdatrie1:arm64 (0.2.13-3build1) ... 274s Setting up libjs-popper.js (1.16.1+ds-6) ... 274s Setting up libxcb-render0:arm64 (1.17.0-2) ... 274s Setting up libjs-sifter.js (0.6.0+dfsg-3) ... 274s Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 274s Setting up unzip (6.0-28ubuntu6) ... 274s Setting up x11-common (1:7.7+23ubuntu3) ... 274s Setting up node-html5shiv (3.7.3+dfsg-5) ... 274s Setting up libdeflate0:arm64 (1.23-1) ... 274s Setting up libjs-microplugin.js (0.0.3+dfsg-1.1) ... 274s Setting up libxcb-shm0:arm64 (1.17.0-2) ... 274s Setting up libgomp1:arm64 (15-20250222-0ubuntu1) ... 274s Setting up libjs-modernizr (3.13.0-0.1) ... 274s Setting up libjbig0:arm64 (2.1-6.1ubuntu2) ... 274s Setting up libjs-es5-shim (4.6.7-2) ... 274s Setting up zip (3.0-14ubuntu2) ... 274s Setting up libblas3:arm64 (3.12.1-2) ... 274s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode 274s Setting up libjs-d3 (3.5.17-4) ... 274s Setting up fonts-dejavu-mono (2.37-8) ... 274s Setting up libtcl8.6:arm64 (8.6.16+dfsg-1) ... 274s Setting up fonts-dejavu-core (2.37-8) ... 274s Setting up libjpeg-turbo8:arm64 (2.1.5-3ubuntu2) ... 274s Setting up libgfortran5:arm64 (15-20250222-0ubuntu1) ... 274s Setting up libwebp7:arm64 (1.5.0-0.1) ... 274s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 274s Setting up liblua5.4-0:arm64 (5.4.7-1) ... 274s Setting up libharfbuzz0b:arm64 (10.2.0-1) ... 274s Setting up libthai-data (0.1.29-2build1) ... 274s Setting up node-bootstrap-sass (3.4.3-2) ... 274s Setting up libjs-prettify (2015.12.04+dfsg-1.1) ... 274s Setting up libxss1:arm64 (1:1.2.3-1build3) ... 274s Setting up libjs-bootstrap4 (4.6.1+dfsg1-4) ... 274s Setting up libpaper2:arm64 (2.2.5-0.3) ... 274s Setting up pandoc-data (3.1.11.1-3build1) ... 274s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 274s Setting up node-normalize.css (8.0.1-5) ... 274s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 275s Setting up xdg-utils (1.2.1-2ubuntu1) ... 275s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 275s Setting up libjs-bootstrap (3.4.1+dfsg-3) ... 275s Setting up libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 275s Setting up libjpeg8:arm64 (8c-2ubuntu11) ... 275s Setting up libice6:arm64 (2:1.1.1-1) ... 275s Setting up liblapack3:arm64 (3.12.1-2) ... 275s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode 275s Setting up fontconfig-config (2.15.0-2ubuntu1) ... 275s Setting up libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 275s Setting up libpaper-utils (2.2.5-0.3) ... 275s Setting up libjs-jquery-datatables (1.11.5+dfsg-2) ... 275s Setting up libthai0:arm64 (0.1.29-2build1) ... 275s Setting up libjs-jquery-ui (1.13.2+dfsg-1) ... 275s Setting up pandoc (3.1.11.1+ds-2) ... 275s Setting up libtiff6:arm64 (4.5.1+git230720-4ubuntu4) ... 275s Setting up libfontconfig1:arm64 (2.15.0-2ubuntu1) ... 275s Setting up libsm6:arm64 (2:1.2.4-1) ... 275s Setting up fontconfig (2.15.0-2ubuntu1) ... 277s Regenerating fonts cache... done. 277s Setting up libxft2:arm64 (2.3.6-1build1) ... 277s Setting up libtk8.6:arm64 (8.6.16-1) ... 277s Setting up libpango-1.0-0:arm64 (1.56.2-1) ... 277s Setting up libcairo2:arm64 (1.18.2-2) ... 277s Setting up libxt6t64:arm64 (1:1.2.1-1.2build1) ... 277s Setting up libpangoft2-1.0-0:arm64 (1.56.2-1) ... 277s Setting up libpangocairo-1.0-0:arm64 (1.56.2-1) ... 277s Setting up r-base-core (4.4.3-1) ... 277s Creating config file /etc/R/Renviron with new version 277s Setting up r-cran-crayon (1.5.3-1) ... 277s Setting up r-cran-sourcetools (0.1.7-1-1) ... 277s Setting up r-cran-commonmark (1.9.2-2) ... 277s Setting up r-cran-r6 (2.6.1-1) ... 277s Setting up r-cran-pkgkitten (0.2.4-1) ... 277s Setting up r-cran-magrittr (2.0.3-1) ... 277s Setting up r-cran-rappdirs (0.3.3-1) ... 277s Setting up r-cran-littler (0.3.20-2) ... 277s Setting up r-cran-fs (1.6.5+dfsg-1) ... 277s Setting up r-cran-rcpp (1.0.14-1) ... 277s Setting up r-cran-diffobj (0.3.5-1) ... 277s Setting up r-cran-rlang (1.1.5-1) ... 277s Setting up littler (0.3.20-2) ... 277s Setting up r-cran-xfun (0.51+dfsg-1) ... 277s Setting up r-cran-withr (3.0.2+dfsg-1) ... 277s Setting up r-cran-mime (0.12-2) ... 277s Setting up r-cran-base64enc (0.1-3-3) ... 277s Setting up r-cran-digest (0.6.37-1) ... 277s Setting up r-cran-yaml (2.3.10-1) ... 277s Setting up r-cran-evaluate (1.0.3-1) ... 277s Setting up r-cran-highr (0.11+dfsg-1) ... 277s Setting up r-cran-fansi (1.0.5-1) ... 277s Setting up r-cran-glue (1.8.0-1) ... 277s Setting up r-cran-xtable (1:1.8-4-2) ... 277s Setting up r-cran-cli (3.6.4-1) ... 277s Setting up r-cran-lifecycle (1.0.4+dfsg-1) ... 277s Setting up r-cran-fastmap (1.2.0-1) ... 277s Setting up r-cran-jsonlite (1.9.1+dfsg-1) ... 277s Setting up r-cran-later (1.4.1+dfsg-1) ... 277s Setting up r-cran-htmltools (0.5.8.1-1) ... 277s Setting up r-cran-tinytex (0.56-1) ... 277s Setting up r-cran-knitr (1.49+dfsg-1) ... 277s Setting up r-cran-cachem (1.1.0-1) ... 277s Setting up r-cran-sass (0.4.9+dfsg-1) ... 277s Setting up r-cran-unitizer (1.4.21-1) ... 277s Setting up r-cran-fontawesome (0.5.3-1) ... 277s Setting up r-cran-jquerylib (0.1.4+dfsg-4) ... 277s Setting up r-cran-memoise (2.0.1-1) ... 277s Setting up r-cran-promises (1.3.2+dfsg-1) ... 277s Setting up r-cran-httpuv (1.6.15+dfsg-1) ... 277s Setting up r-cran-bslib (0.8.0+dfsg-1) ... 277s Setting up r-cran-shiny (1.10.0+dfsg-2) ... 277s Setting up r-cran-rmarkdown (2.29+dfsg-1) ... 277s Processing triggers for libc-bin (2.41-1ubuntu2) ... 277s Processing triggers for man-db (2.13.0-1) ... 279s Processing triggers for install-info (7.1.1-1) ... 280s autopkgtest [15:30:25]: test run-unit-test: [----------------------- 280s BEGIN TEST run.R 280s 280s R version 4.4.3 (2025-02-28) -- "Trophy Case" 280s Copyright (C) 2025 The R Foundation for Statistical Computing 280s Platform: aarch64-unknown-linux-gnu 280s 280s R is free software and comes with ABSOLUTELY NO WARRANTY. 280s You are welcome to redistribute it under certain conditions. 280s Type 'license()' or 'licence()' for distribution details. 280s 280s R is a collaborative project with many contributors. 280s Type 'contributors()' for more information and 280s 'citation()' on how to cite R or R packages in publications. 280s 280s Type 'demo()' for some demos, 'help()' for on-line help, or 280s 'help.start()' for an HTML browser interface to help. 280s Type 'q()' to quit R. 280s 281s > # to avoid variability on terminals with different capabilities 281s > # plus generally random options being set 281s > 281s > if(getRversion() < "3.2.2") { 281s + warning("Cannot run tests with R version less than 3.2.2.") 281s + } else if(!suppressWarnings(require('fansi'))) { 281s + # this is to avoid accidentally running tests under valgrind without fansi 281s + # installed... (no, we've never done this...) 281s + warning("Cannot run tests without package `fansi`") 281s + } else if(!suppressWarnings(require('unitizer'))) { 281s + warning("Cannot run tests without package `unitizer`") 281s + } else { 281s + old.opt <- options( 281s + fansi.tabs.as.spaces=FALSE, 281s + fansi.tab.stops=8L, 281s + fansi.warn=TRUE, 281s + fansi.term.cap=c('bright', '256') 281s + # warnPartialMatchArgs = TRUE, 281s + # warnPartialMatchAttr = TRUE, 281s + # warnPartialMatchDollar = TRUE 281s + ) 281s + on.exit(old.opt) 281s + pat.all <- "^[^.].*\\.[Rr]$" 281s + pattern <- pat.all 281s + # pattern <- "over" 281s + unitize_dir( 281s + 'unitizer', 281s + pattern=pattern, 281s + state='suggested' 281s + ) 281s + # we skip utf8 tests on solaris due to the problems with deparse (and maybe 281s + # others, don't have a solaris system handy for testing). 281s + if( 281s + !grepl("solaris|sun", Sys.info()[['sysname']], ignore.case=TRUE) && 281s + identical(pattern, pat.all) 281s + ) { 281s + unitize('special/utf8.R', state='suggested') 281s + } 281s + # UCD 12.1 update in 4.0.4 produces correct widths for emoji 281s + if(getRversion() >= "4.0.4" && identical(pattern, pat.all)) 281s + unitize('special/emo-graph.R', state='suggested') 281s + } 281s Loading required package: fansi 281s Loading required package: unitizer 281s State tracking is disabled by default to comply with CRAN policies. Add `options(unitizer.state='suggested')` to your 'Rprofile' file to enable, or `options(unitizer.state='off')` to quash this message without enabling. Prior to enabling, be sure to read `?unitizerState`,in particular the 'CRAN non-compliance' section. 281s 281s Preloads... 281s Loading unitizer data... 281s Parsing tests... 281s Parsing has.R 281s Parsing interactions.R 281s Parsing misc.R 281s Parsing nchar.R 281s Parsing normalize.R 281s Parsing overflow.R 282s Parsing strip.R 282s Parsing strsplit.R 282s Parsing substr.R 282s Parsing tabs.R 282s Parsing tohtml.R 282s Parsing trimws.R 282s Parsing url.R 282s Parsing wrap.R 283s Evaluating tests... 283s 283s 1/14 has.R: 283s 1/14 has.R: library(fansi) 283s 1/14 has.R: unitizer_sect("has", { 283s 1/14 has.R: has_ctl(paste0(red, "hello", end)) 283s [1] TRUE 283s 1/14 has.R: has_ctl(paste0("hello", end)) 283s [1] TRUE 283s 1/14 has.R: has_ctl(paste0("hello")) 283s [1] FALSE 283s 1/14 has.R: in.middle <- c("world", paste0("hello", red), "wow") 283s 1/14 has.R: in.end <- c("world", "wow", paste0("hello", red)) 283s 1/14 has.R: in.start <- c(paste0("hello", red), "wow", "world") 283s 1/14 has.R: has_ctl(in.middle) 283s [1] FALSE TRUE FALSE 283s 1/14 has.R: has_ctl(in.end) 283s [1] FALSE FALSE TRUE 283s 1/14 has.R: has_ctl(in.start) 283s [1] TRUE FALSE FALSE 283s 1/14 has.R: has_ctl(c(in.start, NA)) 283s [1] TRUE FALSE FALSE NA 283s 1/14 has.R: has_ctl("hello\nworld") 283s [1] TRUE 283s 1/14 has.R: has_sgr("hello\nworld") 283s [1] FALSE 283s 1/14 has.R: has_sgr(in.end) 283s [1] FALSE FALSE TRUE 283s 1/14 has.R: has_ctl("hello\033p world") 283s [1] TRUE 283s 1/14 has.R: unitizer_sect("corner cases", { 283s 1/14 has.R: has_ctl("hello\033[31#0mworld") 283s [1] TRUE 283s 1/14 has.R: suppressWarnings(has_ctl("hello\033[31#0mworld")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello world", ctl = c("sgr", "sgr")) 283s [1] FALSE 283s Warning in has_ctl("hello\033[31#0") : 283s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 283s 1/14 has.R: has_ctl("hello\033[31#0") 283s [1] TRUE 283s 1/14 has.R: unitizer_sect("select ctl", { 283s 1/14 has.R: has_ctl("hello\033[31mworld", ctl = c("sgr")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello\033[31mworld", ctl = c("csi")) 283s [1] FALSE 283s 1/14 has.R: has_ctl("hello\033[31!mworld", ctl = c("sgr")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello\033[31!mworld", ctl = c("csi")) 283s [1] FALSE 283s 1/14 has.R: has_ctl("hello\033[31lworld", ctl = c("csi")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello\nworld", ctl = c("all", "nl")) 283s [1] FALSE 283s 1/14 has.R: has_ctl("hello\nworld", ctl = c("all", "c0")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello\tworld", ctl = c("all", "c0")) 283s [1] FALSE 283s 1/14 has.R: has_ctl("hello\tworld", ctl = c("c0")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello\033pworld", ctl = c("esc")) 283s [1] TRUE 283s 1/14 has.R: has_ctl("hello\033pworld", ctl = c("all", "esc")) 283s [1] FALSE 283s 1/14 has.R: unitizer_sect("bad inputs", { 283s 1/14 has.R: has_ctl("hello world", warn = NULL) 283s Error in has_ctl("hello world", warn = NULL) : 283s Argument `warn` must be TRUE or FALSE. 283s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 283s 1/14 has.R: has_ctl("hello world", ctl = 1:3) 283s Error in has_ctl("hello world", ctl = 1:3) : 283s Argument `ctl` must be character. 283s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 283s 1/14 has.R: has_ctl("hello world", ctl = "bananas") 283s Error in has_ctl("hello world", ctl = "bananas") : 283s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 283s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 283s 1/14 has.R: has_ctl("hello world", ctl = NA_character_) 283s Error in has_ctl("hello world", ctl = NA_character_) : 283s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 283s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 283s 1/14 has.R: has_ctl(c("\033[31mhello", "wo\nrld"), ctl = character()) 283s [1] FALSE FALSE 283s 1/14 has.R: unitizer_sect("deprecation", { 283s Parameter `which` has been deprecated; use `ctl` instead. 283s 1/14 has.R: has_ctl("hello world", which = "sgr") 283s [1] FALSE 283s 283s 2/14 interactions.R: 283s 2/14 interactions.R: library(fansi) 284s 2/14 interactions.R: unitizer_sect("substr", { 284s 2/14 interactions.R: str.0 <- c("\033[44mhello", "world") 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4) 284s [1] "\033[44mell\033[0m" "orl" 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = TRUE) 284s [1] "\033[44mell\033[0m" "\033[44morl\033[0m" 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = "\033[33m") 284s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 284s 2/14 interactions.R: substr2_ctl(str.0, 2, 4, carry = "\033[33m") 284s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 284s 2/14 interactions.R: substr_sgr(str.0, 2, 4, carry = "\033[33m") 284s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 284s 2/14 interactions.R: substr2_sgr(str.0, 2, 4, carry = "\033[33m") 284s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 284s 2/14 interactions.R: str.1 <- c("hello", "\033[44mworld", "barrow") 284s 2/14 interactions.R: substr_ctl(str.1, 2, 4) 284s [1] "ell" "\033[44morl\033[0m" "arr" 284s 2/14 interactions.R: substr_ctl(str.1, 2, 4, carry = TRUE) 284s [1] "ell" "\033[44morl\033[0m" "\033[44marr\033[0m" 284s 2/14 interactions.R: substr_ctl(str.1, 2, 4, carry = "\033[33m") 284s [1] "\033[33mell\033[0m" "\033[33;44morl\033[0m" "\033[33;44marr\033[0m" 284s 2/14 interactions.R: str.2 <- c("\033[33mA\033[44mBCD", "ABCD", "\033[39mABCD") 284s 2/14 interactions.R: substr_ctl(str.2, 2, 2) 284s [1] "\033[33;44mB\033[0m" "B" "B" 284s 2/14 interactions.R: substr_ctl(str.2, 2, 2, carry = TRUE) 284s [1] "\033[33;44mB\033[0m" "\033[33;44mB\033[0m" "\033[44mB\033[0m" 284s 2/14 interactions.R: substr_ctl(str.2, 2, 2, carry = TRUE, terminate = FALSE) 284s [1] "\033[33;44mB" "B" "\033[0;44mB" 284s 2/14 interactions.R: str.3 <- c("\033[35mA\033[42mB", "\033[49mCD") 284s 2/14 interactions.R: substr_ctl(str.3, 2, 2, carry = TRUE, terminate = FALSE) 284s [1] "\033[35;42mB" "\033[0;35mD" 284s 2/14 interactions.R: wrp.0 <- c("once upon \033[44ma time in a land far away ov 284s 2/14 interactions.R: unitizer_sect("wrap/trim", { 284s 2/14 interactions.R: strwrap_ctl(wrp.0, 20) 284s [1] "once upon \033[44ma time in\033[0m" "\033[44ma land far away\033[0m" 284s [3] "\033[44mover\033[0m" "the mountains and" 284s [5] "\033[7msea lived a fair\033[0m" "\033[7mcreature\033[0m" 284s [7] "with \033[4mdark itentions\033[0m" "\033[4mand a yappy dog.\033[0m" 284s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = TRUE) 284s [1] "once upon \033[44ma time in\033[0m" 284s [2] "\033[44ma land far away\033[0m" 284s [3] "\033[44mover\033[0m" 284s [4] "\033[44mthe mountains and\033[0m" 284s [5] "\033[7;44msea lived a fair\033[0m" 284s [6] "\033[7;44mcreature\033[0m" 284s [7] "\033[7;44mwith \033[4mdark itentions\033[0m" 284s [8] "\033[4;7;44mand a yappy dog.\033[0m" 284s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in\033[0m" 284s [2] "\033[33;44ma land far away\033[0m" 284s [3] "\033[33;44mover\033[0m" 284s [4] "\033[33;44mthe mountains and\033[0m" 284s [5] "\033[7;33;44msea lived a fair\033[0m" 284s [6] "\033[7;33;44mcreature\033[0m" 284s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 284s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 284s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in\033[0m" 284s [2] "\033[33;44ma land far away\033[0m" 284s [3] "\033[33;44mover\033[0m" 284s [4] "\033[33;44mthe mountains and\033[0m" 284s [5] "\033[7;33;44msea lived a fair\033[0m" 284s [6] "\033[7;33;44mcreature\033[0m" 284s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 284s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 284s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in\033[0m" 284s [2] "\033[33;44ma land far away\033[0m" 284s [3] "\033[33;44mover\033[0m" 284s [4] "\033[33;44mthe mountains and\033[0m" 284s [5] "\033[7;33;44msea lived a fair\033[0m" 284s [6] "\033[7;33;44mcreature\033[0m" 284s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 284s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 284s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in\033[0m" 284s [2] "\033[33;44ma land far away\033[0m" 284s [3] "\033[33;44mover\033[0m" 284s [4] "\033[33;44mthe mountains and\033[0m" 284s [5] "\033[7;33;44msea lived a fair\033[0m" 284s [6] "\033[7;33;44mcreature\033[0m" 284s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 284s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 284s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in \033[0m" 284s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 284s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 284s 2/14 interactions.R: strtrim_sgr(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in \033[0m" 284s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 284s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 284s 2/14 interactions.R: strtrim2_ctl(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in \033[0m" 284s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 284s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 284s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in \033[0m" 284s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 284s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 284s 2/14 interactions.R: wrp.1 <- c("once upon \033[44ma time in a land far away ov 284s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, carry = "\033[33m") 284s [1] "\033[33monce upon \033[44ma time in \033[0m" 284s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 284s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 284s 2/14 interactions.R: wrp.2 <- c("hello \033[42mworld", "goodnight\033[49m moon" 284s 2/14 interactions.R: strwrap_ctl(wrp.2, 10, carry = "\033[35m", simplify = FALS 284s [[1]] 284s [1] "\033[35mhello\033[0m" "\033[35;42mworld\033[0m" 284s 284s [[2]] 284s [1] "\033[35;42mgoodnight\033[0m" "\033[35mmoon\033[0m" 284s 284s [[3]] 284s [1] "\033[35moh \033[39mboy" 284s 284s 2/14 interactions.R: strwrap_ctl(wrp.2, 10, carry = "\033[35m", simplify = FALS 284s [[1]] 284s [1] "hello" "\033[42mworld" 284s 284s [[2]] 284s [1] "goodnight" "\033[0;35mmoon" 284s 284s [[3]] 284s [1] "oh \033[39mboy" 284s 284s 2/14 interactions.R: unitizer_sect("normalize", { 284s 2/14 interactions.R: str.2 <- c("\033[44mhello", "wo\033[mrld", "barrow") 284s 2/14 interactions.R: normalize_state(str.2) 284s [1] "\033[44mhello" "world" "barrow" 284s 2/14 interactions.R: normalize_state(str.2, carry = TRUE) 284s [1] "\033[44mhello" "wo\033[49mrld" "barrow" 284s 2/14 interactions.R: normalize_state(str.2, carry = "\033[33m") 284s [1] "\033[44mhello" "wo\033[39m\033[49mrld" "barrow" 284s 2/14 interactions.R: unitizer_sect("carry corner cases", { 284s 2/14 interactions.R: substr_ctl("", 2, 3, carry = "\033[33m") 284s [1] "" 284s 2/14 interactions.R: substr_ctl("", 2, 3, carry = "\033[33m", terminate = FALSE 284s [1] "" 284s 2/14 interactions.R: substr_ctl("\033[39m", 2, 3, carry = "\033[33m", terminate 284s [1] "\033[0m" 284s 2/14 interactions.R: substr_ctl("\033[39m", 2, 3, carry = "\033[33m", terminate 284s [1] "\033[39m" 284s 2/14 interactions.R: substr_ctl("", 0, 1, carry = "\033[33m") 284s [1] "" 284s 2/14 interactions.R: substr_ctl("", 0, 1, carry = "\033[33m", terminate = FALSE 284s [1] "" 284s 2/14 interactions.R: substr_ctl("\033[39m", 0, 1, carry = "\033[33m", terminate 284s [1] "\033[0m" 284s 2/14 interactions.R: substr_ctl("\033[39m", 0, 1, carry = "\033[33m", terminate 284s [1] "\033[39m" 284s 2/14 interactions.R: substr_ctl("", 0, 0, carry = "\033[33m") 284s [1] "" 284s 2/14 interactions.R: substr_ctl("", 0, 0, carry = "\033[33m", terminate = FALSE 284s [1] "" 284s 2/14 interactions.R: substr_ctl("\033[39m", 0, 0, carry = "\033[33m", terminate 284s [1] "" 284s 2/14 interactions.R: substr_ctl(character(), 2, 4, carry = "\033[33m") 284s character(0) 284s 2/14 interactions.R: substr_ctl(NA, 2, 4, carry = "\033[33m") 284s [1] NA 284s 2/14 interactions.R: substr_ctl(environment(), 2, 4, carry = "\033[33m") 284s Error in as.character(args[["x"]]) : 284s cannot coerce type 'environment' to vector of type 'character' 284s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV 284s 2/14 interactions.R: substr_ctl("hello", 2, 4, carry = c("\033[33m", "\033[44m" 284s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 284s Argument `carry` must be scalar. 284s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = NA_character_) 284s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 284s Argument `carry` may not be NA. 284s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = character()) 284s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 284s Argument `carry` must be scalar. 284s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = 1) 284s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 284s Argument `carry` must be logical or character. 284s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = Inf) 284s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 284s Argument `carry` must be logical or character. 284s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: sgrs <- c("A\033[31mB", "C\033[1mD", "E\033[4mF", "G\033[1 284s 2/14 interactions.R: substr_ctl(sgrs, 2, 2, carry = TRUE) 284s [1] "\033[31mB\033[0m" "\033[1;31mD\033[0m" 284s [3] "\033[1;4;31mF\033[0m" "\033[1;4;31;13mH\033[0m" 284s [5] "\033[1;4;31;62;13mJ\033[0m" "\033[1;4;62;13mL\033[0m" 284s [7] "\033[1;4;52;62;13mN\033[0m" "\033[1;4;52;13mP\033[0m" 284s [9] "\033[4;52;13mR\033[0m" "\033[52;13mT\033[0m" 284s [11] "\033[13mU\033[0m" "W" 284s 2/14 interactions.R: normalize_state(str.2, carry = NA_character_) 284s Error in normalize_state(str.2, carry = NA_character_) : 284s Argument `carry` may not be NA. 284s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: normalize_state(str.2, carry = character()) 284s Error in normalize_state(str.2, carry = character()) : 284s Argument `carry` must be scalar. 284s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: normalize_state(str.2, carry = 1) 284s Error in normalize_state(str.2, carry = 1) : 284s Argument `carry` must be logical or character. 284s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: normalize_state(str.2, carry = Inf) 284s Error in normalize_state(str.2, carry = Inf) : 284s Argument `carry` must be logical or character. 284s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = NA_character_) 284s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 284s Argument `carry` may not be NA. 284s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, carry = character()) 284s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 284s Argument `carry` must be scalar. 284s Calls: unitize_dir ... strwrap_sgr -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, carry = 1) 284s Error in strwrap2_ctl(wrp.0, 20, carry = 1) : 284s Argument `carry` must be logical or character. 284s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, carry = Inf) 284s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 284s Argument `carry` must be logical or character. 284s Calls: unitize_dir ... strwrap2_sgr -> strwrap2_ctl -> VAL_IN_ENV -> stop2 284s 2/14 interactions.R: strwrap_ctl(c("\033[33mA \033[4mB", "\033[44mC D"), carry 284s [1] "\033[33mA\033[0m" "\033[4;33mB\033[0m" "\033[4;33;44mC\033[0m" 284s [4] "\033[4;33;44mD\033[0m" 284s 2/14 interactions.R: unitizer_sect("terminate", { 284s 2/14 interactions.R: str.0 <- c("hel\033[33m", "wo\033[44mrld") 284s 2/14 interactions.R: substr_ctl(str.0, 2, 5, terminate = FALSE) 284s [1] "el\033[33m" "o\033[44mrld" 284s 2/14 interactions.R: substr_sgr(str.0, 2, 5, terminate = FALSE) 284s [1] "el\033[33m" "o\033[44mrld" 284s 2/14 interactions.R: substr2_ctl(str.0, 2, 5, terminate = FALSE) 284s [1] "el\033[33m" "o\033[44mrld" 284s 2/14 interactions.R: substr2_sgr(str.0, 2, 5, terminate = FALSE) 284s [1] "el\033[33m" "o\033[44mrld" 284s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, terminate = FALSE) 284s [1] "once upon \033[44ma time in" "a land far away" 284s [3] "over" "the mountains and" 284s [5] "\033[7msea lived a fair" "creature" 284s [7] "with \033[4mdark itentions" "and a yappy dog." 284s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, terminate = FALSE) 284s [1] "once upon \033[44ma time in" "a land far away" 284s [3] "over" "the mountains and" 284s [5] "\033[7msea lived a fair" "creature" 284s [7] "with \033[4mdark itentions" "and a yappy dog." 284s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, terminate = FALSE) 284s [1] "once upon \033[44ma time in" "a land far away" 284s [3] "over" "the mountains and" 284s [5] "\033[7msea lived a fair" "creature" 284s [7] "with \033[4mdark itentions" "and a yappy dog." 285s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, terminate = FALSE) 285s [1] "once upon \033[44ma time in" "a land far away" 285s [3] "over" "the mountains and" 285s [5] "\033[7msea lived a fair" "creature" 285s [7] "with \033[4mdark itentions" "and a yappy dog." 285s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, terminate = FALSE) 285s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 285s [3] "with \033[4mdark itentions " 285s 2/14 interactions.R: strtrim_sgr(wrp.0, 20, terminate = FALSE) 285s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 285s [3] "with \033[4mdark itentions " 285s 2/14 interactions.R: strtrim2_ctl(wrp.0, 20, terminate = FALSE) 285s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 285s [3] "with \033[4mdark itentions " 285s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, terminate = FALSE) 285s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 285s [3] "with \033[4mdark itentions " 285s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, terminate = NA) 285s Error in strtrim2_ctl(x = x, width = width, warn = warn, tabs.as.spaces = tabs.as.spaces, : 285s Argument `terminate` must be TRUE or FALSE 285s Calls: unitize_dir ... strtrim2_sgr -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 2/14 interactions.R: unitizer_sect("bridge", { 285s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[31m") 285s [1] "\033[0;31m" 285s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[31m", normalize = TRUE) 285s [1] "\033[49m\033[31m" 285s 2/14 interactions.R: fansi:::bridge("", "\033[31m") 285s [1] "\033[31m" 285s 2/14 interactions.R: fansi:::bridge("\033[42m", "") 285s [1] "\033[0m" 285s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[42m") 285s [1] "" 285s 2/14 interactions.R: end <- c("\033[31", "\033[41m", NA_character_, "\033[44m") 285s 2/14 interactions.R: restart <- c("", NA_character_, "\033[45m", "\033[45m") 285s 2/14 interactions.R: fansi:::bridge(end, restart) 285s [1] "" "" "" "\033[45m" 285s 2/14 interactions.R: base.st <- "%s\033]8;%s;%s\033\\" 285s 2/14 interactions.R: url <- "https://x.yz" 285s 2/14 interactions.R: u0 <- sprintf(base.st, "", "", url) 285s 2/14 interactions.R: fansi:::bridge(paste0("\033[42m", u0), "\033[31m") 285s [1] "\033[0;31m\033]8;;\033\\" 285s 2/14 interactions.R: fansi:::bridge("\033[31m", paste0("\033[42m", u0)) 285s [1] "\033[0;42m\033]8;;https://x.yz\033\\" 285s 2/14 interactions.R: txt <- c("A\033[31mBC", "D\033[39mE\033[42mF") 285s 2/14 interactions.R: `substr_ctl<-`(txt, 2, 2, value = "?", normalize = TRUE, c 285s [1] "A?\033[31mC" "D\033[39m?\033[42mF" 285s 2/14 interactions.R: unitizer_sect("at end / close", { 285s 2/14 interactions.R: x <- c("a\033[31mb", "c", "\033[42md") 285s 2/14 interactions.R: state_at_end(x) 285s [1] "\033[31m" "" "\033[42m" 285s 2/14 interactions.R: state_at_end(x, carry = TRUE) 285s [1] "\033[31m" "\033[31m" "\033[31;42m" 285s 2/14 interactions.R: state_at_end(x, carry = TRUE, normalize = TRUE) 285s [1] "\033[31m" "\033[31m" "\033[31m\033[42m" 285s 2/14 interactions.R: state_at_end("a\033[pb") 285s Warning in state_at_end("a\033[pb") : 285s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 285s [1] "" 285s 2/14 interactions.R: state_at_end("a\033[pb", warn = FALSE) 285s [1] "" 285s 2/14 interactions.R: state_at_end(c("\033[42mA", NA_character_, "\033[31mA")) 285s [1] "\033[42m" NA "\033[31m" 285s 2/14 interactions.R: state_at_end(c("\033[42mA", NA_character_, "\033[31mA"), c 285s [1] "\033[42m" NA NA 285s 2/14 interactions.R: close_state(x) 285s [1] "\033[0m" "" "\033[0m" 285s 2/14 interactions.R: close_state(x, normalize = TRUE) 285s [1] "\033[39m" "" "\033[49m" 285s 2/14 interactions.R: close_state("a\033[pb") 285s [1] "" 285s Warning in close_state("a\033[pb") : 285s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 285s 2/14 interactions.R: close_state("a\033[pb", warn = FALSE) 285s [1] "" 285s 2/14 interactions.R: state_no_arg <- function(x) { 285s 2/14 interactions.R: x <- "\360" 285s 2/14 interactions.R: Encoding(x) <- "UTF-8" 285s 2/14 interactions.R: state_no_arg(x) 285s [1] "Encountered a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 285s 2/14 interactions.R: y <- "\033[45phello" 285s 2/14 interactions.R: state_no_arg(y) 285s [1] "Encountered a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 285s 285s 3/14 misc.R: 285s 3/14 misc.R: library(unitizer) 285s 3/14 misc.R: library(fansi) 285s 3/14 misc.R: unitizer_sect("term_cap_test", { 285s 3/14 misc.R: tct <- term_cap_test() 285s bright  -> \033[91;104mbright \033[0m 285s 256  -> \033[38;5;196;48;5;21m256 \033[0m 285s truecolor -> \033[38;2;255;0;0;48;2;0;0;255mtruecolor\033[0m 285s 3/14 misc.R: tct 285s [1] "\033[91;104mbright \033[0m" 285s [2] "\033[38;5;196;48;5;21m256 \033[0m" 285s [3] "\033[38;2;255;0;0;48;2;0;0;255mtruecolor\033[0m" 285s 3/14 misc.R: fansi_lines(LETTERS, step = 6) 285s [1] "\033[37;48;5;23mA\033[39;49m" "\033[37;48;5;29mB\033[39;49m" 285s [3] "\033[30;48;5;35mC\033[39;49m" "\033[30;48;5;41mD\033[39;49m" 285s [5] "\033[30;48;5;47mE\033[39;49m" "\033[37;48;5;53mF\033[39;49m" 285s [7] "\033[37;48;5;59mG\033[39;49m" "\033[37;48;5;65mH\033[39;49m" 285s [9] "\033[30;48;5;71mI\033[39;49m" "\033[30;48;5;77mJ\033[39;49m" 285s [11] "\033[30;48;5;83mK\033[39;49m" "\033[37;48;5;89mL\033[39;49m" 285s [13] "\033[37;48;5;95mM\033[39;49m" "\033[37;48;5;101mN\033[39;49m" 285s [15] "\033[30;48;5;107mO\033[39;49m" "\033[30;48;5;113mP\033[39;49m" 285s [17] "\033[30;48;5;119mQ\033[39;49m" "\033[37;48;5;125mR\033[39;49m" 285s [19] "\033[37;48;5;131mS\033[39;49m" "\033[37;48;5;137mT\033[39;49m" 285s [21] "\033[30;48;5;143mU\033[39;49m" "\033[30;48;5;149mV\033[39;49m" 285s [23] "\033[30;48;5;155mW\033[39;49m" "\033[37;48;5;161mX\033[39;49m" 285s [25] "\033[37;48;5;167mY\033[39;49m" "\033[37;48;5;173mZ\033[39;49m" 285s 3/14 misc.R: local({ 285s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 285s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 285s [1] "" "a" 285s 3/14 misc.R: unitizer_sect("add_int", { 285s 3/14 misc.R: fansi:::add_int(1, 1) 285s [1] 2 285s 3/14 misc.R: fansi:::add_int(2^31 - 1, 1) 285s Error in fansi:::add_int(2^31 - 1, 1) : 285s Integer overflow in file utils.c at line 99; contact maintainer. 285s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 285s 3/14 misc.R: fansi:::add_int(2^31 - 1, 0) 285s [1] 2147483647 285s 3/14 misc.R: fansi:::add_int(-2^31 + 1, 0) 285s [1] -2147483647 285s 3/14 misc.R: fansi:::add_int(-2^31 + 1, -1) 285s Error in fansi:::add_int(-2^31 + 1, -1) : 285s Integer overflow in file utils.c at line 99; contact maintainer. 285s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 285s 3/14 misc.R: unitizer_sect("unhandled", { 285s 3/14 misc.R: string.0 <- c("\033[41mhello world\033[m", "foo\033[22>m", "\033[9 285s 3/14 misc.R: unhandled_ctl(string.0) 285s index start stop error translated esc 285s 1 2 4 9 invalid-substr FALSE \033[22>m 285s 2 3 1 6 invalid-substr FALSE \033[999m 285s 3 4 5 11 invalid-substr FALSE \033[31#3m 285s 4 5 2 6 non-SGR/hyperlink FALSE \033[31k 285s 5 6 6 7 non-CSI/OSC FALSE \033m 285s 3/14 misc.R: string.1 <- c("foo\033[22>mhello\033[9999m", "a\033[31k", "hello\0 285s 3/14 misc.R: unhandled_ctl(string.1) 285s index start stop error translated esc 285s 1 1 4 9 invalid-substr FALSE \033[22>m 285s 2 1 15 21 invalid-substr FALSE \033[9999m 285s 3 2 2 6 non-SGR/hyperlink FALSE \033[31k 285s 4 3 6 7 non-CSI/OSC FALSE \033m 285s 5 3 9 14 unknown-substr FALSE \033[180m 285s 6 3 21 21 malformed-ESC FALSE \033 285s 3/14 misc.R: unhandled_ctl("hello\033\033\033[45p wor\ald") 285s index start stop error translated esc 285s 1 1 6 7 malformed-ESC FALSE \033\033 285s 2 1 8 12 non-SGR/hyperlink FALSE \033[45p 285s 3 1 17 17 C0 FALSE \a 285s 3/14 misc.R: unhandled_ctl("\033[38;5;220mworld\033[m", "bright") 285s index start stop error translated esc 285s 1 1 1 11 exceed-term-cap FALSE \033[38;5;220m 285s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bright") 285s index start stop error translated esc 285s 1 1 1 16 exceed-term-cap FALSE \033[38;2;10;20;30m 285s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bri") 285s Error in unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bri") : 285s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 285s Calls: unitize_dir ... withVisible -> unhandled_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", NULL) 285s Error in unhandled_ctl("\033[38;2;10;20;30mworld\033[m", NULL) : 285s Argument `term.cap` must be character. 285s Calls: unitize_dir ... withVisible -> unhandled_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: unhandled_ctl("AB\033[34m\033]9\033\\\033[1m\033[2LCD") 285s index start stop error translated esc 285s 1 1 17 20 non-SGR/hyperlink FALSE \033[2L 285s 3/14 misc.R: unhandled_ctl("AB\033[34m\033]9\033[1m\033[2LCD") 285s index start stop error translated esc 285s 1 1 8 20 malformed-CSI/OSC FALSE \033]9\033[1m\033[2LCD 285s 3/14 misc.R: unhandled_ctl("A\033[45#1pB\033[256pC\033[256mD") 285s index start stop error translated esc 285s 1 1 2 8 CSI/OSC-bad-substr FALSE \033[45#1p 285s 2 1 10 15 non-SGR/hyperlink FALSE \033[256p 285s 3 1 17 22 invalid-substr FALSE \033[256m 285s 3/14 misc.R: unhandled_ctl("\033[38m") 285s index start stop error translated esc 285s 1 1 1 5 invalid-substr FALSE \033[38m 285s 3/14 misc.R: unitizer_sect("strtrim", { 285s 3/14 misc.R: strtrim_ctl(" hello world", 7) 285s [1] " hello " 285s 3/14 misc.R: strtrim_ctl("\033[42m hello world\033[m", 7) 285s [1] "\033[42m hello \033[0m" 285s 3/14 misc.R: strtrim_ctl(" hello\nworld", 7) 285s [1] " hello\nw" 285s 3/14 misc.R: strtrim_ctl("\033[42m hello\nworld\033[m", 7) 285s [1] "\033[42m hello\nw\033[0m" 285s 3/14 misc.R: strtrim_ctl("\nhello\nworld", 7) 285s [1] "\nhello\nwo" 285s 3/14 misc.R: strtrim_ctl("\033[42m\nhello\nworld\033[m", 7) 285s [1] "\033[42m\nhello\nwo\033[0m" 285s 3/14 misc.R: strtrim_ctl("\thello\rworld foobar", 12) 285s Warning in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 285s [1] "\thello\rworld f" 285s 3/14 misc.R: strtrim_ctl("\033[42m\thello\rworld\033[m foobar", 12) 285s Warning in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 285s [1] "\033[42m\thello\rworld\033[m f" 285s 3/14 misc.R: strtrim2_ctl("\033[42m\thello world\033[m foobar", 12, tabs.as.spa 285s [1] "\033[42m hell\033[0m" 285s 3/14 misc.R: strtrim_sgr("\033[42m\the\allo world\033[m foobar", 12, warn = FAL 285s [1] "\033[42m\the\allo worl\033[0m" 285s 3/14 misc.R: strtrim2_sgr("\033[42m\the\allo world\033[m foobar", 12, tabs.as.s 285s [1] "\033[42m he\allo wor\033[0m" 285s 3/14 misc.R: identical(strtrim_ctl(c("AB", NA_character_, "CD"), 1), strtrim(c( 285s [1] TRUE 285s 3/14 misc.R: strtrim_ctl(c("AB", NA_character_, "CD"), 1, carry = TRUE) 285s [1] "A" NA NA 285s 3/14 misc.R: hello2.0 <- "\033[42m\thello world\033[m foobar" 285s 3/14 misc.R: strtrim_ctl(1:3, width = 10) 285s [1] "1" "2" "3" 285s 3/14 misc.R: strtrim_ctl(hello2.0, width = "35") 285s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `width` must be a positive scalar numeric representable as an integer. 285s Calls: unitize_dir ... eval -> eval -> withVisible -> strtrim_ctl -> strtrim2_ctl 285s 3/14 misc.R: strtrim_ctl(hello2.0, width = NA_integer_) 285s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `width` must be a positive scalar numeric representable as an integer. 285s Calls: unitize_dir ... eval -> eval -> withVisible -> strtrim_ctl -> strtrim2_ctl 285s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, warn = NULL) 285s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `warn` must be TRUE or FALSE. 285s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `ctl` must be character. 285s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, ctl = 0) 285s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, ctl = "bananas") 285s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 285s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 285s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim2_ctl(1:3, width = 10) 285s [1] "1" "2" "3" 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = "35") 285s Error in strtrim2_ctl(hello2.0, width = "35") : 285s Argument `width` must be a positive scalar numeric representable as an integer. 285s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strtrim2_ctl 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = NA_integer_) 285s Error in strtrim2_ctl(hello2.0, width = NA_integer_) : 285s Argument `width` must be a positive scalar numeric representable as an integer. 285s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strtrim2_ctl 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, warn = NULL) 285s Error in strtrim2_ctl(hello2.0, width = 10, warn = NULL) : 285s Argument `warn` must be TRUE or FALSE. 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = NA) 285s Error in strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = NA) : 285s Argument `tabs.as.spaces` must be TRUE or FALSE. 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = 1:3) 285s Error in strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = 1:3) : 285s Argument `tabs.as.spaces` must be TRUE or FALSE. 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tab.stops = -(1:3))Error in strtrim2_ctl(hello2.0, width = 10, tab.stops = -(1:3)) : 285s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 285s Error in strtrim2_ctl(hello2.0, width = 10, tab.stops = 0) : 285s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tab.stops = 0) 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, ctl = 0) 285s Error in strtrim2_ctl(hello2.0, width = 10, ctl = 0) : 285s Argument `ctl` must be character. 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, ctl = "bananas") 285s Error in strtrim2_ctl(hello2.0, width = 10, ctl = "bananas") : 285s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 285s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 285s 3/14 misc.R: unitizer_sect("enc check", { 285s 3/14 misc.R: x <- y <- "He\237" 286s 3/14 misc.R: Encoding(x) <- "latin1" 286s Error in fansi:::check_enc(x, 1) : 286s Internal Error: unexpected encoding 2 encountered at index 1. Contact maintainer. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 286s 3/14 misc.R: fansi:::check_enc(x, 1) 286s 3/14 misc.R: Encoding(y) <- "bytes" 286s 3/14 misc.R: fansi:::check_enc(y, 1) 286s Error in fansi:::check_enc(y, 1) : 286s Byte encoded string encountered at index 1. Byte encoded strings are not supported. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 286s 3/14 misc.R: fansi:::check_enc("hello", 1) 286s [1] TRUE 286s 3/14 misc.R: unitizer_sect("what as int", { 286s 3/14 misc.R: fansi:::ctl_as_int(c(1, 2, 3, 4, 5)) 286s [1] 112 286s 3/14 misc.R: fansi:::ctl_as_int(c(2, 3, 4, 5)) 286s [1] 15 286s 3/14 misc.R: fansi:::ctl_as_int(c(1, 2, 3, 9)) 286s Error in fansi:::ctl_as_int(c(1, 2, 3, 9)) : 286s Internal Error: max ctl value allowed is 6. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 286s 3/14 misc.R: fansi:::ctl_as_int(c(2, 3, 9)) 286s Error in fansi:::ctl_as_int(c(2, 3, 9)) : 286s Internal Error: max ctl value allowed is 6. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 286s 3/14 misc.R: unitizer_sect("HTML helper", { 286s 3/14 misc.R: html_esc(character()) 286s character(0) 286s 3/14 misc.R: html_esc(1:10) 286s Error in html_esc(1:10) : Argument `x` must be character, is integer. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 286s 3/14 misc.R: html_esc(NA_character_) 286s [1] NA 286s 3/14 misc.R: html_esc("") 286s [1] "<he&llo>" 286s 3/14 misc.R: html_esc("ow&wo") 286s [1] "ow&wo" 286s 3/14 misc.R: html_esc(c("hello", "wors", NA, "")) 286s [1] "hello" "wor<ld>s" NA "" 286s 3/14 misc.R: html_esc(c("he'l\"lo", "wors", NA, "")) 286s [1] "he'l"lo" "wor<ld>s" NA 286s [4] "" 286s 3/14 misc.R: html_esc("<<<<") 286s [1] "<<<<" 286s 3/14 misc.R: html_esc("<123hello>") 286s [1] "<123hello>" 286s 3/14 misc.R: txt <- c("day > night", "hello world") 286s 3/14 misc.R: html_code_block(character()) 286s [1] "
" 286s 3/14 misc.R: html_code_block(txt) 286s [1] "
day > night\nhello world
" 286s 3/14 misc.R: html_code_block(1:10) 286s Error in html_code_block(1:10) : 286s Argument `x` must be character, is integer. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_code_block 286s 3/14 misc.R: html_code_block(txt, class = c("not-fansi", "plain")) 286s [1] "
day > night\nhello world
" 286s 3/14 misc.R: html_code_block(txt, class = NULL) 286s Error in html_code_block(txt, class = NULL) : 286s Argument `class` must be character, is NULL. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_code_block 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "<>") 286s [1] "h&e'l\"lo" "wor<ld>s" NA "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "><") 286s [1] "h&e'l\"lo" "wor<ld>s" NA "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "<&>") 286s [1] "h&e'l\"lo" "wor<ld>s" NA "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>") 286s [1] "h&e'l\"lo" "wor<ld>s" NA 286s [4] "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>\"") 286s [1] "h&e'l"lo" "wor<ld>s" NA 286s [4] "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'&>\"<") 286s [1] "h&e'l"lo" "wor<ld>s" NA 286s [4] "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "") 286s [1] "h&e'l\"lo" "wors" NA "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>\"<") 286s [1] "h&e'l"lo" "wor<ld>s" NA 286s [4] "" 286s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), character()) : 286s Argument `what` must be scalar character and not NA. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), character()) 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), NA_character_) 286s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), NA_character_) : 286s Argument `what` must be scalar character and not NA. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), 1:5) 286s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), 1:5) : 286s Argument `what` must be character, is integer. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&><") 286s [1] "h&e'l\"lo" "wor<ld>s" NA 286s [4] "" 286s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'x><") 286s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), "'x><") : 286s Argument `what` may only contain ASCII characters "&", "<", ">", "'", or "\"". 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 286s 3/14 misc.R: unitizer_sect("hooks", { 286s 3/14 misc.R: h.1 <- list(set = function(...) cat("Set hooks: ", names(list(...) 286s 3/14 misc.R: h.2 <- list(set = function(...) cat("Set hooks: ", names(list(...) 286s 3/14 misc.R: h.3 <- list(set = function(...) cat("Set hooks: ", names(list(...) 286s 3/14 misc.R: h.4 <- list(set = function(...) stop("error in set"), get = functi 286s Error in set_knit_hooks(list(1, 2)) : 286s Argument `hooks` does not appear to be `knitr::knit_hooks`. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: set_knit_hooks(list(1, 2)) 286s 3/14 misc.R: set_knit_hooks(list(function() NULL, function() NULL)) 286s Error in set_knit_hooks(list(function() NULL, function() NULL)) : 286s Argument `hooks` does not appear to be `knitr::knit_hooks`. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: res1 <- set_knit_hooks(h.1, .test = TRUE) 286s Set hooks: output 286s 286s 3/14 misc.R: res1[["new.hooks"]][["output"]]("hello") 286s [1] "old.hook" 286s 3/14 misc.R: res1[["new.hooks"]][["output"]]("hello\033[31m world") 286s [1] "
hello world
" 286s 3/14 misc.R: res1a <- set_knit_hooks(h.1, split.nl = TRUE, .test = TRUE) 286s Set hooks: output 286s 286s 3/14 misc.R: res1a[["new.hooks"]][["output"]]("hello\033[31m wo\nrld") 286s [1] "
hello wo\nrld
" 286s 3/14 misc.R: p.f.2 <- function(x, y) NULL 286s 3/14 misc.R: p.f.3 <- function(x, class) sprintf("new proc fun, '%s'", class) 286s 3/14 misc.R: p.f.4 <- function(x, class) stop("new proc fun") 286s 3/14 misc.R: set_knit_hooks(h.1, split.nl = "banana") 286s Error in set_knit_hooks(h.1, split.nl = "banana") : 286s Argument `split.n` must be TRUE or FALSE 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: set_knit_hooks(h.1, proc.fun = p.f.2) 286s Error in set_knit_hooks(h.1, proc.fun = p.f.2) : 286s Argument `proc.fun` must be a function with formals named `x` and `class`. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s Error in set_knit_hooks(h.1, which = "hello") : 286s Argument `which` must be character containing values in c("output", "warning", "error", "message") 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: set_knit_hooks(h.1, which = "hello") 286s 3/14 misc.R: set_knit_hooks(h.1, which = NULL) 286s Error in set_knit_hooks(h.1, which = NULL) : 286s Argument `which` must be character containing values in c("output", "warning", "error", "message") 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: res2 <- set_knit_hooks(h.1, which = c("output", "message"), class 286s Set hooks: output message 286s 286s 3/14 misc.R: res2[["new.hooks"]][["message"]]("hello") 286s [1] "old.hook" 286s 3/14 misc.R: res2[["new.hooks"]][["message"]]("hello\033[31m world") 286s [1] "new proc fun, 'f-message'" 286s 3/14 misc.R: res2[["new.hooks"]][["output"]]("hello\033[31m world") 286s [1] "new proc fun, 'f-output'" 286s 3/14 misc.R: res3 <- set_knit_hooks(h.1, which = c("message", "warning"), 286s Set hooks: message warning 286s 286s 3/14 misc.R: res3[["new.hooks"]][["warning"]]("hello") 286s [1] "old.hook" 286s 3/14 misc.R: res3[["new.hooks"]][["warning"]]("hello\033[31mworld") 286s Error in proc.fun(x = x, class = class) : new proc fun 286s Error in res3[["new.hooks"]][["warning"]]("hello\033[31mworld") : 286s Argument `proc.fun` for `set_knit_hooks` caused an error when processing output; see prior error. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 286s 3/14 misc.R: set_knit_hooks(h.2) 286s Set hooks: output 286s 286s Warning in set_knit_hooks(h.2) : 286s Retrieved 'output' hook is not a function; are you sure you passed `knitr::knit_hooks` as the `hooks` argument? Quitting after setting 0/1 hooks 286s $output 286s NULL 286s 286s 3/14 misc.R: set_knit_hooks(h.3) 286s Error in hooks$get(hook.name) : error in get 286s Warning in set_knit_hooks(h.3) : 286s Failed retrieving 'output' hook from the knit hooks; are you sure you passed `knitr::knit_hooks` as the `hooks` argument? Quitting after setting 0/1 hooks 286s Set hooks: output 286s 286s $output 286s NULL 286s 286s 3/14 misc.R: set_knit_hooks(h.4) 286s Error in (function (...) : error in set 286s Warning in set_knit_hooks(h.4) : 286s Failure while trying to set hooks; see prior error; are you sure you passed `knitr::knit_hooks` as the `hooks` argument? 286s 286s $output 286s function() "old.hook" 286s 286s 286s 3/14 misc.R: set_knit_hooks(h.1, style = NULL) 286s Error in set_knit_hooks(h.1, style = NULL) : 286s Argument `style` must be character. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: set_knit_hooks(h.1, class = 1:10) 286s Error in set_knit_hooks(h.1, class = 1:10) : 286s Argument `class` should be a character vector the same length as `which`. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s Error in set_knit_hooks(h.1, class = letters) : 286s Argument `class` should be a character vector the same length as `which`. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: set_knit_hooks(h.1, class = letters) 286s 3/14 misc.R: set_knit_hooks(h.1, which = c("output", "message", "output")) 286s Error in set_knit_hooks(h.1, which = c("output", "message", "output")) : 286s Argument `which` may not contain duplicate values (output). 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 286s 3/14 misc.R: unitizer_sect("output funs", { 286s 3/14 misc.R: fansi_lines(1:3) 286s [1] "\033[37;48;5;18m1\033[39;49m" "\033[37;48;5;19m2\033[39;49m" 286s [3] "\033[37;48;5;20m3\033[39;49m" 286s 3/14 misc.R: fansi_lines(1:3, step = "hello") 286s Error in fansi_lines(1:3, step = "hello") : 286s Argument `step` must be a strictly positive scalar integer. 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> fansi_lines 286s 3/14 misc.R: capture.output(fwl("\033[43mhello")) 286s [1] "\033[43mhello" "\033[0m" 286s 3/14 misc.R: unitizer_sect("validation", { 286s Error in fansi:::VAL_IN_ENV(booboo = "error") : 286s Internal Error: some arguments to validate unknown 286s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 286s 3/14 misc.R: fansi:::VAL_IN_ENV(booboo = "error") 286s 286s 4/14 nchar.R: 286s 4/14 nchar.R: library(fansi) 286s 4/14 nchar.R: unitizer_sect("basic tests", { 286s 4/14 nchar.R: nchar_ctl(c("hello", "world")) 286s [1] 5 5 286s 4/14 nchar.R: nchar_ctl(c("hello", "world"), type = "width") 286s [1] 5 5 286s 4/14 nchar.R: nchar_ctl(c("hello", "world"), type = "wi") 286s [1] 5 5 286s 4/14 nchar.R: na.world <- c("hello", NA, "world", "") 286s 4/14 nchar.R: identical(nchar_ctl(na.world), nchar(na.world)) 286s [1] TRUE 286s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = FALSE), nchar(na.world, 286s [1] TRUE 286s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = NA, type = "width"), nchar 286s [1] TRUE 286s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = TRUE, type = "width"), 286s [1] TRUE 286s 4/14 nchar.R: identical(nzchar_ctl(na.world), nzchar(na.world)) 286s [1] TRUE 286s 4/14 nchar.R: identical(nzchar_ctl(na.world, keepNA = TRUE), nzchar(na.world, 286s [1] TRUE 286s 4/14 nchar.R: identical(nzchar_ctl(na.world, keepNA = NA), nzchar(na.world, 286s [1] TRUE 286s 4/14 nchar.R: identical(nchar_ctl(na.world, type = "bytes"), nchar(na.world, 286s [1] TRUE 286s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = FALSE, type = "bytes"), 286s [1] TRUE 286s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = TRUE, type = "bytes"), 286s [1] TRUE 286s 4/14 nchar.R: w.names <- c(a = "hello", b = "world") 287s 4/14 nchar.R: identical(nchar_ctl(w.names), nchar(w.names)) 287s [1] TRUE 287s 4/14 nchar.R: w.dim <- matrix(letters[1:6], 2, 3, dimnames = list(X = LETTERS[2 287s 4/14 nchar.R: identical(nchar_ctl(w.dim), nchar(w.dim)) 287s [1] TRUE 287s 4/14 nchar.R: hw.sgr <- c("hello", "wo\033[42mrld", "\033[31m", "mo\non", "star 287s 4/14 nchar.R: identical(nchar_ctl(hw.sgr), nchar(strip_ctl(hw.sgr))) 287s [1] TRUE 287s 4/14 nchar.R: x <- "\360" 287s 4/14 nchar.R: if (isTRUE(l10n_info()[["UTF-8"]])) { 287s [1] TRUE 287s 4/14 nchar.R: Encoding(x) <- "UTF-8" 287s 4/14 nchar.R: identical(nzchar_ctl(x), nzchar(x)) 287s [1] TRUE 287s 4/14 nchar.R: nchar_ctl(x) 287s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 287s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 287s 4/14 nchar.R: nchar_ctl(c("", x)) 287s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 287s Argument `x` contains a malformed UTF-8 sequence at index [2], see `?unhandled_ctl`. 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 287s 4/14 nchar.R: identical(nchar_ctl(x, allowNA = TRUE), nchar(x, allowNA = TRUE)) 287s [1] TRUE 287s 4/14 nchar.R: unitizer_sect("with escapes", { 287s 4/14 nchar.R: esc.2 <- "\n\r\033P\033[31m\a" 287s 4/14 nchar.R: nchar_ctl(esc.2) 287s [1] 0 287s 4/14 nchar.R: nchar_ctl(esc.2, warn = FALSE) 287s [1] 0 287s 4/14 nchar.R: nzchar_ctl(esc.2) 287s [1] FALSE 287s 4/14 nchar.R: nzchar_ctl(esc.2, warn = FALSE) 287s [1] FALSE 287s 4/14 nchar.R: nchar_ctl("\033[31#mworld", ctl = "sgr") 287s [1] 5 287s 4/14 nchar.R: nchar_ctl("\033[31#mworld", ctl = "csi") 287s [1] 11 287s 4/14 nchar.R: unitizer_sect("ctl", { 287s 4/14 nchar.R: esc.3 <- "\n\t\033[31m\033[41!m\033p" 287s 4/14 nchar.R: nzchar_ctl(esc.3, warn = FALSE) 287s [1] FALSE 287s 4/14 nchar.R: nzchar_ctl(sprintf("%sa", esc.3), warn = FALSE) 287s [1] TRUE 287s 4/14 nchar.R: nzchar_ctl(esc.3, ctl = c("sgr", "csi", "esc"), warn = FALSE) 287s [1] TRUE 287s 4/14 nchar.R: nzchar_ctl(esc.3, ctl = c("c0", "nl"), warn = FALSE) 287s [1] TRUE 287s 4/14 nchar.R: nzchar_ctl("\n\t\n", ctl = c("nl"), warn = FALSE) 287s [1] TRUE 287s 4/14 nchar.R: nzchar_ctl("\t\n", ctl = c("nl"), warn = FALSE) 287s [1] TRUE 287s 4/14 nchar.R: unitizer_sect("corner cases", { 287s 4/14 nchar.R: ncbad <- c("\033\200", "\033[31;\200m", "\033[31;\200p", "\033]8; 287s 4/14 nchar.R: Encoding(ncbad) <- "UTF-8" 287s 4/14 nchar.R: nchar_ctl(ncbad) 287s [1] 0 0 0 0 0 287s 4/14 nchar.R: fansi:::set_rver(numeric_version("3.2.1")) 287s 4/14 nchar.R: nzchar_ctl(c("\033[31mA", "\033[31m")) 287s [1] TRUE FALSE 287s 4/14 nchar.R: nchar_ctl(c("\033[31mA", "\033[31m")) 287s [1] 1 0 287s 4/14 nchar.R: fansi:::set_rver() 287s 4/14 nchar.R: unitizer_sect("bad inputs", { 287s 4/14 nchar.R: nchar_ctl(9:10, warn = 1:3) 287s Error in nchar_ctl(9:10, warn = 1:3) : 287s Argument `warn` must be TRUE or FALSE. 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s Error in nchar_ctl("hello\033[31m world", allowNA = 1:3) : 287s Argument `allowNA` must be interpretable as a scalar logical. 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", allowNA = 1:3) 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", keepNA = 1:3) 287s Error in nchar_ctl("hello\033[31m world", keepNA = 1:3) : 287s Argument `keepNA` must be interpretable as a scalar logical. 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", strip = 1:3) 287s Parameter `strip` has been deprecated; use `ctl` instead. 287s Error in nchar_ctl("hello\033[31m world", strip = 1:3) : 287s Argument `ctl` must be character. 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", ctl = "bananas") 287s Error in nchar_ctl("hello\033[31m world", ctl = "bananas") : 287s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s Error in nchar_ctl("hello\033[31m world", type = NA_character_) : 287s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = NA_character_) 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = 1) 287s Error in nchar_ctl("hello\033[31m world", type = 1) : 287s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s Error in nchar_ctl("hello\033[31m world", type = "bananas") : 287s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 287s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = "bananas") 287s 4/14 nchar.R: nzchar_ctl(9:10, warn = 1:3) 287s Error in nzchar_ctl(9:10, warn = 1:3) : 287s Argument `warn` must be TRUE or FALSE. 287s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", keepNA = 1:3) 287s Error in nzchar_ctl("hello\033[31m world", keepNA = 1:3) : 287s Argument `keepNA` must be interpretable as a scalar logical. 287s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", ctl = 1) 287s Error in nzchar_ctl("hello\033[31m world", ctl = 1) : 287s Argument `ctl` must be character. 287s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 287s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", ctl = "bananas") 287s Error in nzchar_ctl("hello\033[31m world", ctl = "bananas") : 287s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 287s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 287s 287s 5/14 normalize.R: 287s 5/14 normalize.R: library(fansi) 287s 5/14 normalize.R: unitizer_sect("no expansion", { 287s 5/14 normalize.R: normalize_state("A\033[31mB") 287s [1] "A\033[31mB" 287s 5/14 normalize.R: normalize_state("\033[31mAB") 287s [1] "\033[31mAB" 287s 5/14 normalize.R: normalize_state("AB\033[31m") 287s [1] "AB\033[31m" 287s 5/14 normalize.R: normalize_state(c("A\033[31mB", "AB")) 287s [1] "A\033[31mB" "AB" 287s 5/14 normalize.R: normalize_state(c("\033[31mAB", "AB")) 287s [1] "\033[31mAB" "AB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31m", "AB")) 287s [1] "AB\033[31m" "AB" 287s 5/14 normalize.R: unitizer_sect("simple expansion", { 287s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "AB")) 287s [1] "A\033[31m\033[42mB" "AB" 287s 5/14 normalize.R: normalize_state(c("\033[31;42mAB", "AB")) 287s [1] "\033[31m\033[42mAB" "AB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "AB")) 287s [1] "AB\033[31m\033[42m" "AB" 287s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "A\033[39;4mB")) 287s [1] "A\033[31m\033[42mB" "A\033[4mB" 287s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "\033[39;4mAB")) 287s [1] "A\033[31m\033[42mB" "\033[4mAB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "A\033[39;4mB")) 287s [1] "AB\033[31m\033[42m" "A\033[4mB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "A\033[0;4mB")) 287s [1] "AB\033[31m\033[42m" "A\033[4mB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "AB\033[0;4m")) 287s [1] "AB\033[31m\033[42m" "AB\033[4m" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "\033[0;4mAB")) 287s [1] "AB\033[31m\033[42m" "\033[4mAB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", NA, "\033[0;4mAB")) 287s [1] "AB\033[31m\033[42m" NA "\033[4mAB" 287s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", NA, "\033[0;4mAB"), carry 287s [1] "AB\033[31m\033[42m" NA NA 287s 5/14 normalize.R: unitizer_sect("superflous codes", { 287s 5/14 normalize.R: normalize_state(c("A\033[31;44;38;5;226;36mBC\033[mD")) 287s [1] "A\033[36m\033[44mBC\033[39m\033[49mD" 287s 5/14 normalize.R: normalize_state(c("A\033[31;44;38;5;226;36m\033[0mBCD")) 287s [1] "ABCD" 287s 5/14 normalize.R: unitizer_sect("broad code test", { 287s 5/14 normalize.R: normalize_state(c("A\033[33;44mB\033[1;3;4mCD\033[mE")) 287s [1] "A\033[33m\033[44mB\033[1m\033[3m\033[4mCD\033[22m\033[23m\033[24m\033[39m\033[49mE" 287s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 287s [1] "A\033[33m\033[44mB\033[1m\033[2m\033[3m\033[4m\033[5m\033[6m\033[7m\033[8m\033[9m\033[21m\033[26m\033[51m\033[52m\033[53m\033[60m\033[61m\033[62m\033[63m\033[64m\033[11mC\033[10m\033[22m\033[23m\033[24m\033[25m\033[27m\033[28m\033[29m\033[39m\033[49m\033[50m\033[54m\033[55m\033[65m" 287s 5/14 normalize.R: unhandled_ctl(normalize_state("A\033[33;44mB\033[1;2;3;4;5;6; 287s [1] index start stop error translated esc 287s <0 rows> (or 0-length row.names) 287s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 287s [1] "A\033[33m\033[44mB\033[39m\033[49mC" 287s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 287s [1] "A\033[33m\033[44mB\033[1m\033[2m\033[3m\033[4m\033[5m\033[6m\033[7m\033[8m\033[9m\033[21m\033[26m\033[51m\033[52m\033[53m\033[60m\033[61m\033[62m\033[63m\033[64m\033[11mC\033[10m\033[22m\033[23m\033[24m\033[25m\033[27m\033[28m\033[29m\033[39m\033[49m\033[50m\033[54m\033[55m\033[65mD" 287s 5/14 normalize.R: unitizer_sect("errors and warnings", { 287s 5/14 normalize.R: normalize_state(list(1, 2, 3)) 287s [1] "1" "2" "3" 287s 5/14 normalize.R: x <- c("A\033[38;2;100;150;3;36mBC\033[mD") 287s 5/14 normalize.R: normalize_state(x, term.cap = c("old")) 287s [1] "A\033[2m\033[3m\033[36mBC\033[22m\033[23m\033[39mD" 287s Warning in normalize_state(x, term.cap = c("old")) : 287s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 287s 5/14 normalize.R: normalize_state(x, term.cap = c("bright", "old")) 287s [1] "A\033[2m\033[3m\033[36m\033[100mBC\033[22m\033[23m\033[39m\033[49mD" 287s 5/14 normalize.R: normalize_state(x, term.cap = character()) 287s [1] "A\033[36mBC\033[39mD" 287s Warning in normalize_state(x, term.cap = c("bright", "old")) : 287s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 287s Warning in normalize_state(x, term.cap = character()) : 287s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 287s 5/14 normalize.R: normalize_state(x, term.cap = c("bright")) 287s [1] "A\033[36mBC\033[39mD" 287s 5/14 normalize.R: normalize_state(x, term.cap = c("bright", "256", "truecolor") 287s [1] "A\033[36mBC\033[39mD" 287s 5/14 normalize.R: substr_ctl(x, 1, 2, normalize = "yeah baby") 287s 5/14 normalize.R: substr_ctl(x, 1, 2, normalize = NA) 287s Warning in normalize_state(x, term.cap = c("bright")) : 287s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 287s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 287s Argument `normalize` must be TRUE or FALSE. 287s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 287s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 287s Argument `normalize` must be TRUE or FALSE. 287s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 287s 5/14 normalize.R: unitizer_sect("in functions", { 287s 5/14 normalize.R: string1 <- "hello \033[33;44mblue world" 287s 5/14 normalize.R: string2 <- "\033[4;1mgoodbye\033[7m white \033[mmoon" 287s 5/14 normalize.R: string3 <- c(string1, string2) 287s 5/14 normalize.R: strwrap_ctl(string1, 11, normalize = TRUE) 287s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 287s [2] "\033[33m\033[44mworld\033[39m\033[49m" 287s 5/14 normalize.R: strwrap_ctl(string2, 11, normalize = TRUE) 287s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 287s [2] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 287s 5/14 normalize.R: strwrap_ctl(string3, 11, normalize = TRUE) 287s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 287s [2] "\033[33m\033[44mworld\033[39m\033[49m" 287s [3] "\033[1m\033[4mgoodbye\033[22m\033[24m" 287s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 287s 5/14 normalize.R: strwrap_ctl(string3, 11, normalize = TRUE, simplify = FALSE) 287s [[1]] 287s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 287s [2] "\033[33m\033[44mworld\033[39m\033[49m" 287s 287s [[2]] 287s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 287s [2] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 287s 287s 5/14 normalize.R: strwrap2_ctl(string3, 11, normalize = TRUE, pad.end = " ") 287s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 287s [2] "\033[33m\033[44mworld \033[39m\033[49m" 287s [3] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 287s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 287s 5/14 normalize.R: strwrap_sgr(string3, 11, normalize = TRUE) 287s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 287s [2] "\033[33m\033[44mworld\033[39m\033[49m" 287s [3] "\033[1m\033[4mgoodbye\033[22m\033[24m" 287s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 287s 5/14 normalize.R: strwrap2_sgr(string3, 11, normalize = TRUE, pad.end = " ") 287s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 287s [2] "\033[33m\033[44mworld \033[39m\033[49m" 287s [3] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 287s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 287s 5/14 normalize.R: strtrim_sgr(string3, 8, normalize = TRUE) 287s [1] "hello \033[33m\033[44mbl\033[39m\033[49m" 287s [2] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 287s 5/14 normalize.R: strtrim_sgr(string3, 8, normalize = TRUE) 287s [1] "hello \033[33m\033[44mbl\033[39m\033[49m" 287s [2] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 287s 5/14 normalize.R: substr_ctl("\033[33;44mhello\033[m world", 3, 8, normalize = 287s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 287s 5/14 normalize.R: substr2_ctl("\033[33;44mhello\033[m world", 3, 8, normalize = 287s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 287s 5/14 normalize.R: substr_sgr("\033[33;44mhello\033[m world", 3, 8, normalize = 287s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 287s 5/14 normalize.R: substr2_sgr("\033[33;44mhello\033[m world", 3, 8, normalize = 287s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 287s 5/14 normalize.R: substr_ctl(string3, c(3, 3), c(8, 15), normalize = TRUE) 287s [1] "llo \033[33m\033[44mbl\033[39m\033[49m" 287s [2] "\033[1m\033[4modbye\033[7m white \033[22m\033[24m\033[27mm" 287s 5/14 normalize.R: strsplit_ctl(string3, " ", normalize = TRUE) 287s [[1]] 287s [1] "hello" 287s [2] "\033[33m\033[44mblue\033[39m\033[49m" 287s [3] "\033[33m\033[44mworld\033[39m\033[49m" 287s 287s [[2]] 287s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 287s [2] "\033[1m\033[4m\033[7mwhite\033[22m\033[24m\033[27m" 287s [3] "moon" 287s 287s 287s 6/14 overflow.R: 287s 6/14 overflow.R: library(fansi) 287s 6/14 overflow.R: old_max <- fansi:::set_int_max(15) 287s 6/14 overflow.R: unitizer_sect("tabs", { 287s 6/14 overflow.R: tabs_as_spaces("\t1234567") 287s [1] " 1234567" 287s 6/14 overflow.R: tryCatch(tabs_as_spaces("\t12345678"), error = conditionMessag 287s [1] "Converting tabs to spaces will cause string to be longer than allowed INT_MAX." 288s 6/14 overflow.R: invisible(fansi:::set_int_max(12)) 288s 6/14 overflow.R: tabs_as_spaces(c("\t", "\t123")) 288s [1] " " " 123" 288s 6/14 overflow.R: unitizer_sect("wrap", { 288s 6/14 overflow.R: invisible(fansi:::set_int_max(15)) 288s 6/14 overflow.R: string <- "0123456789" 288s 6/14 overflow.R: strwrap_ctl(string, 16) 288s [1] "0123456789" 288s 6/14 overflow.R: strwrap2_ctl(string, 16, pad.end = " ") 288s [1] "0123456789 " 288s 6/14 overflow.R: tce(strwrap2_ctl(string, 17, pad.end = " ")) 288s [1] "Adding padding will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: strwrap_ctl(string, 16, prefix = "-----") 288s [1] "-----0123456789" 288s 6/14 overflow.R: tce(strwrap_ctl(string, 16, prefix = "------")) 288s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: strwrap_ctl(string, 16, indent = 5) 288s [1] " 0123456789" 288s 6/14 overflow.R: tce(strwrap_ctl(string, 16, indent = 6)) 288s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: strwrap_ctl(string, 16, indent = 2, prefix = "---") 288s [1] "--- 0123456789" 288s 6/14 overflow.R: tce(strwrap_ctl(string, 16, indent = 3, prefix = "---")) 288s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: string2 <- "012345678901234" 288s 6/14 overflow.R: string3 <- "0123456789012345" 288s 6/14 overflow.R: strwrap_ctl(string2, 16) 288s [1] "012345678901234" 288s 6/14 overflow.R: tce(strwrap_ctl(string3, 16)) 288s [1] "Strings longer than INT_MAX not supported (length 16 at index 1)." 288s 6/14 overflow.R: string4 <- "\033[31m0123456789" 288s 6/14 overflow.R: tce(strwrap_ctl(string4, 16)) 288s [1] "Generating closing SGR will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: invisible(fansi:::set_int_max(9)) 288s 6/14 overflow.R: tce(strwrap_ctl("A\033[31m a", 5)) 288s [1] "Generating closing SGR will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: unitizer_sect("html", { 288s 6/14 overflow.R: invisible(fansi:::set_int_max(38)) 288s 6/14 overflow.R: sgr_to_html("\033[31ma") 288s [1] "a" 288s 6/14 overflow.R: tce(sgr_to_html("\033[31mab")) 288s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: tce(sgr_to_html("\033[31m\033[42mhello")) 288s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: invisible(fansi:::set_int_max(57)) 288s 6/14 overflow.R: tce(sgr_to_html("\033[31m\033[42mhello", classes = TRUE)) 288s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 288s 6/14 overflow.R: invisible(fansi:::set_int_max(58)) 288s 6/14 overflow.R: (x <- sgr_to_html("\033[31m\033[42mhello", classes = TRUE)) 288s [1] "hello" 288s 6/14 overflow.R: nchar(x) 288s [1] 58 288s 6/14 overflow.R: invisible(fansi:::set_int_max(4)) 288s 6/14 overflow.R: tce(sgr_to_html("hello")) 288s [1] "Strings longer than INT_MAX not supported (length 5 at index 1)." 288s 6/14 overflow.R: tce(html_esc("hello")) 288s [1] "Strings longer than INT_MAX not supported (length 5 at index 1)." 288s 6/14 overflow.R: tce(html_esc("<")) 288s [1] "<" 288s 6/14 overflow.R: tce(html_esc(" eval -> eval -> withVisible -> 288s Error in fansi:::size_buff(c(0L, 127L, 128L, 64L, 200L, 1024L)) : 288s Internal Error: max allowed buffer size is INT_MAX + 1. (req: 201 vs lim: 131), in FANSI_size_buff_ext. 288s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 288s 6/14 overflow.R: invisible(fansi:::set_int_max(130)) 288s 6/14 overflow.R: fansi:::size_buff(c(0L, 127L, 128L, 64L, 200L, 1024L)) 288s 6/14 overflow.R: invisible(fansi:::set_int_max(64)) 288s 6/14 overflow.R: fansi:::size_buff(c(0L, 32L, 63L, 64L)) 288s [1] 1 33 65 65 288s Error in fansi:::size_buff(c(0L, 32L, 63L, 65L)) : 288s Internal Error: max allowed buffer size is INT_MAX + 1. (req: 66 vs lim: 65), in FANSI_size_buff_ext. 288s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 288s Warning in fansi:::size_buff_prot_test() : 288s Unable to release buffer allocated by FANSI_size_buff_prot_test while in native code. Buffer will be released on return to R. 288s 6/14 overflow.R: fansi:::size_buff(c(0L, 32L, 63L, 65L)) 288s 6/14 overflow.R: invisible(fansi:::set_int_max(old_max)) 288s 6/14 overflow.R: dat <- fansi:::size_buff_prot_test() 288s Warning in fansi:::size_buff_prot_test() : 288s Unable to release buffer allocated by FANSI_size_buff_prot_test while in native code. Buffer will be released on return to R. 288s 6/14 overflow.R: dat["first", "self"] == dat["smaller 1.0", "self"] 288s [1] TRUE 288s 6/14 overflow.R: dat["new buff", "prev"] == dat["grow 1.0", "self"] 288s [1] TRUE 288s 6/14 overflow.R: dat["new buff", "prev"] != dat["new buff", "self"] 288s [1] TRUE 288s 6/14 overflow.R: dat["smaller 1.1", "self"] == dat["grow 1.0", "self"] 288s [1] TRUE 288s 6/14 overflow.R: dat["smaller 2.0", "self"] == dat["new buff", "self"] 288s [1] TRUE 288s 6/14 overflow.R: dat["smaller 2.0", "prev"] == dat["new buff", "prev"] 288s [1] TRUE 288s 6/14 overflow.R: dat["smaller 2.0", "prev"] == dat["grow 2.0", "prev"] 288s [1] TRUE 288s 6/14 overflow.R: dat["grow 1.1", "prev"] == dat["grow 2.0", "self"] 288s [1] TRUE 288s 6/14 overflow.R: dat["grow 2.1", "prev"] == dat["grow 1.1", "self"] 288s [1] TRUE 288s 6/14 overflow.R: unitizer_sect("misc", { 288s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 288s Strings longer than INT_MAX not supported (length 8 at index 1). 288s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 288s 6/14 overflow.R: invisible(fansi:::set_int_max(5)) 288s 6/14 overflow.R: substr_ctl("\033[43mA B", 5, 5) 288s 6/14 overflow.R: substr_ctl("12345", 1, 5) 288s [1] "12345" 288s 6/14 overflow.R: substr_ctl("123456", 1, 6) 288s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 288s Strings longer than INT_MAX not supported (length 6 at index 1). 288s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 288s 6/14 overflow.R: fansi:::reset_limits() 288s [1] TRUE 288s 6/14 overflow.R: unitizer_sect("R_len_t", { 288s 6/14 overflow.R: old_rlent <- fansi:::set_rlent_max(5) 288s 6/14 overflow.R: tabs_as_spaces("A\tB") 288s Error in tabs_as_spaces("A\tB") : 288s Attempting to create CHARSXP longer than R_LEN_T_MAX at index [1]. 288s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> tabs_as_spaces 288s 6/14 overflow.R: new_rlent <- fansi:::set_rlent_max(old_rlent) 288s 6/14 overflow.R: fansi:::reset_limits() 288s [1] TRUE 288s 6/14 overflow.R: unitizer_sect("internal", { 288s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_reset)) 288s [1] "Internal Error: attempt to size buffer w/o reset in FANSI_buff_test_reset." 288s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_copy_overflow)) 288s [1] "Internal Error: exceeded target buffer size in _copy." 288s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_mcopy_overflow)) 288s [1] "Internal Error: exceeded target buffer size in _mcopy." 288s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_fill_overflow)) 288s [1] "Internal Error: exceeded allocated buffer in _fill." 288s 288s 7/14 strip.R: 288s 7/14 strip.R: library(fansi) 288s 7/14 strip.R: unitizer_sect("Strip ansi", { 288s 7/14 strip.R: strip_ctl(sprintf("hello %sworld%s", red, end)) 288s [1] "hello world" 288s 7/14 strip.R: strip_ctl(sprintf("he%sllo %sworld", red, end)) 288s [1] "hello world" 288s 7/14 strip.R: strip_ctl(sprintf("%shello %sworld%s", grn.bg, red, end)) 288s [1] "hello world" 288s 7/14 strip.R: strip_ctl(sprintf("%s%shello %sworld%s", grn.bg, inv, red, end)) 288s [1] "hello world" 288s 7/14 strip.R: string <- paste("string", format(1:10)) 288s 7/14 strip.R: string[c(2, 4, 6)] <- paste0(red, string[c(2, 4, 6)], end) 288s 7/14 strip.R: strip_ctl(string) 288s [1] "string 1" "string 2" "string 3" "string 4" "string 5" "string 6" 288s [7] "string 7" "string 8" "string 9" "string 10" 288s 7/14 strip.R: strip_sgr(string) 288s [1] "string 1" "string 2" "string 3" "string 4" "string 5" "string 6" 288s [7] "string 7" "string 8" "string 9" "string 10" 288s 7/14 strip.R: strip_sgr(1:3) 288s [1] "1" "2" "3" 288s 7/14 strip.R: unitizer_sect("Corner cases", { 288s Warning in strip_ctl("hello\033") : 288s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 288s 7/14 strip.R: strip_ctl("hello\033") 288s [1] "hello" 288s 7/14 strip.R: strip_ctl("hello\033", ctl = c("nl", "c0")) 288s [1] "hello\033" 288s 7/14 strip.R: strip_ctl("hello\033[") 288s [1] "hello" 288s Warning in strip_ctl("hello\033[") : 288s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 288s Warning in strip_ctl("hello\033[42") : 288s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 288s 7/14 strip.R: strip_ctl("hello\033[42") 288s [1] "hello" 288s 7/14 strip.R: strip_ctl("hello\033[42", ctl = c("all", "csi", "sgr")) 288s [1] "hello42" 288s 7/14 strip.R: strip_ctl("hello\033[31##3m illegal") 288s [1] "hello illegal" 288s 7/14 strip.R: strip_ctl("hello\033[31##m legal") 288s [1] "hello legal" 288s 7/14 strip.R: strip_ctl(1:3) 288s [1] "1" "2" "3" 288s 7/14 strip.R: unitizer_sect("Whitespace", { 288s 7/14 strip.R: fansi:::process("hello world") 288s [1] "hello world" 288s 7/14 strip.R: fansi:::process("hello. world") 288s [1] "hello. world" 288s 7/14 strip.R: fansi:::process(c("hello world", "hello. world")) 288s [1] "hello world" "hello. world" 288s 7/14 strip.R: fansi:::process("hello. world? moon! wow.") 288s [1] "hello. world? moon! wow." 288s 7/14 strip.R: fansi:::process(" hello") 288s [1] "hello" 288s 7/14 strip.R: fansi:::process(" hello\n world") 288s [1] "hello world" 288s 7/14 strip.R: fansi:::process(" hello \n world") 288s [1] "hello world" 288s 7/14 strip.R: fansi:::process(" hello world\n ") 288s [1] "hello world" 288s 7/14 strip.R: fansi:::process("hello. ") 288s [1] "hello." 288s 7/14 strip.R: fansi:::process("hello! ") 288s [1] "hello!" 288s 7/14 strip.R: fansi:::process("hello? ") 288s [1] "hello?" 288s 7/14 strip.R: fansi:::process("hello? ") 288s [1] "hello?" 288s 7/14 strip.R: fansi:::process(" \t hello") 288s [1] "hello" 288s 7/14 strip.R: fansi:::process(" \t\a\r hello") 288s [1] "\a\rhello" 288s 7/14 strip.R: fansi:::process(" \t\a\r hello", ctl = c("all", "c0")) 288s [1] "\a\r hello" 288s 7/14 strip.R: fansi:::process("hello. \r world.") 288s [1] "hello. \rworld." 288s 7/14 strip.R: fansi:::process("hello. \033[31m world.\033[0m") 288s [1] "hello. \033[31mworld.\033[0m" 288s 7/14 strip.R: str1 <- c("hello ", " world") 288s 7/14 strip.R: fansi:::process(str1) 288s [1] "hello" "world" 288s 7/14 strip.R: str1 288s [1] "hello " " world" 288s 7/14 strip.R: fansi:::process("hello.\n\nworld") 288s [1] "hello.\n\nworld" 288s 7/14 strip.R: fansi:::process("hello.\n\n\nworld") 288s [1] "hello.\n\nworld" 288s 7/14 strip.R: fansi:::process("hello.\n\n\n\nworld") 288s [1] "hello.\n\nworld" 288s 7/14 strip.R: fansi:::process("hello.\n \nworld") 288s [1] "hello.\n\nworld" 289s 7/14 strip.R: fansi:::process("hello.\n\t\nworld") 289s [1] "hello.\n\nworld" 289s 7/14 strip.R: fansi:::process("hello.\n\t\n\tworld") 289s [1] "hello.\n\nworld" 289s 7/14 strip.R: fansi:::process("hello.\n \t \n \t world") 289s [1] "hello.\n\nworld" 289s 7/14 strip.R: fansi:::process("hello.\n\nworld\n\n") 289s [1] "hello.\n\nworld" 289s 7/14 strip.R: fansi:::process("hello.\n\nworld\n\n ") 289s [1] "hello.\n\nworld" 289s 7/14 strip.R: fansi:::process("\n\nhello.\n\t\n\tworld\n\t\n woohoo\n ") 289s [1] "\n\nhello.\n\nworld\n\nwoohoo" 289s 7/14 strip.R: fansi:::process("\n \t\nhello.\n\t\n\tworld\n\t\n woohoo\n ") 289s [1] "\n\nhello.\n\nworld\n\nwoohoo" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m\nworld") 289s [1] "hello.\n\n\033[44mworld" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n \t\nworld") 289s [1] "hello.\n\n\033[44mworld" 289s 7/14 strip.R: fansi:::process("hello.\033[44m\n\n \t\nworld") 289s [1] "hello.\033[44m\n\nworld" 289s 7/14 strip.R: fansi:::process("hello.\n\n \t\n\033[44mworld") 289s [1] "hello.\n\n\033[44mworld" 289s 7/14 strip.R: fansi:::process("hello.\n\n\033[44m \t\nworld") 289s [1] "hello.\n\n\033[44mworld" 289s 7/14 strip.R: fansi:::process("hello \033[44m world") 289s [1] "hello \033[44mworld" 289s 7/14 strip.R: fansi:::process("hello. \033[44m world") 289s [1] "hello. \033[44mworld" 289s 7/14 strip.R: fansi:::process("hello\033[44m\033[31m world") 289s [1] "hello\033[44m\033[31m world" 289s 7/14 strip.R: fansi:::process("hello\033[44m\033[31m\n\nworld") 289s [1] "hello\033[44m\033[31m\n\nworld" 289s 7/14 strip.R: fansi:::process("hello\n\033[44m\033[31m\nworld") 289s [1] "hello\n\n\033[44m\033[31mworld" 289s 7/14 strip.R: fansi:::process("hello\n\n\033[44m\033[31mworld") 289s [1] "hello\n\n\033[44m\033[31mworld" 289s 7/14 strip.R: fansi:::process("hello\033[44m\033[31d world") 289s [1] "hello\033[44m\033[31d world" 289s 7/14 strip.R: fansi:::process("hello \033[44m\033[31d world") 289s [1] "hello \033[44m\033[31dworld" 289s 7/14 strip.R: fansi:::process("hello \033[44m \033[31d world") 289s [1] "hello \033[44m\033[31dworld" 289s 7/14 strip.R: fansi:::process("hello\033[44m\033[31d world", ctl = c("all", 289s [1] "hello\033[44m\033[31d world" 289s 7/14 strip.R: fansi:::process("hello \033[44m\033[31d world", ctl = c("all", 289s [1] "hello \033[44m\033[31d world" 289s 7/14 strip.R: fansi:::process("hello \033[44m \033[31d world", ctl = c("all", 289s [1] "hello \033[44m\033[31d world" 289s 7/14 strip.R: fansi:::process("hello\033[44m\a world", ctl = c("all")) 289s [1] "hello\033[44m\a world" 289s 7/14 strip.R: fansi:::process("hello\033[44m\a world", ctl = c("all", "c0")) 289s [1] "hello\033[44m\a world" 289s 7/14 strip.R: fansi:::process("hello. \033[44m\a world", ctl = c("all")) 289s [1] "hello. \033[44m\aworld" 289s 7/14 strip.R: fansi:::process("hello. \033[44m\a world", ctl = c("all", "c0")) 289s [1] "hello. \033[44m\a world" 289s 7/14 strip.R: fansi:::process("hello. \033[44m \a world", ctl = c("all")) 289s [1] "hello. \033[44m\aworld" 289s 7/14 strip.R: fansi:::process("hello. \033[44m \a world", ctl = c("all", "c0")) 289s [1] "hello. \033[44m\a world" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m \a world", ctl = c("all")) 289s [1] "hello. \033[44m\aworld" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m \a world", ctl = c("all", "c0") 289s [1] "hello. \033[44m\a world" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n\a world", ctl = c("all")) 289s [1] "hello.\n\n\033[44m\aworld" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n\a world", ctl = c("all", 289s [1] "hello.\n\n\033[44m\a world" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m\a\n world", ctl = c("all")) 289s [1] "hello.\n\n\033[44m\aworld" 289s 7/14 strip.R: fansi:::process("hello.\n\033[44m\a\n world", ctl = c("all", 289s [1] "hello. \033[44m\a world" 289s 7/14 strip.R: unitizer_sect("Selective stripping", { 289s 7/14 strip.R: string.0 <- "hello\033k\033[45p world\n\033[31mgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.0) 289s [1] "hello worldgoodbye moon" 289s 7/14 strip.R: strip_ctl(string.0, "sgr") 289s [1] "hello\033k\033[45p world\ngoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.0, c("nl", "c0", "sgr", "csi", "esc")) 289s [1] "hello worldgoodbye moon" 289s 7/14 strip.R: strip_ctl(string.0, "all") 289s [1] "hello worldgoodbye moon" 289s 7/14 strip.R: strip_ctl(string.0, c("c0", "esc")) 289s [1] "hello45p world\n31mgoodbye moon" 289s 7/14 strip.R: strip_ctl(string.0, c("nl")) 289s [1] "hello\033k\033[45p world\033[31mgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.0, character()) 289s [1] "hello\033k\033[45p world\n\033[31mgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.0, c("all", "c0", "esc")) 289s [1] "hello\033k worldgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.0, c("all", "sgr")) 289s [1] "hello world\033[31mgoodbye moon" 289s 7/14 strip.R: string.1 <- "hello\033\033[45p world\n\033[31#3mgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.1, c("nl", "sgr", "esc")) 289s Warning in strip_ctl(string.1, c("nl", "sgr", "esc")) : 289s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 289s [1] "hello[45p worldgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.1, c("csi")) 289s [1] "hello\033 world\n\033[31#3mgoodbye\a moon" 289s 7/14 strip.R: strip_ctl(string.1, "all") 289s [1] "hello[45p worldgoodbye moon" 289s Warning in strip_ctl(string.1, "all") : 289s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 289s 7/14 strip.R: strip_ctl(string.1, c("c0", "nl")) 289s [1] "hello\033\033[45p world\033[31#3mgoodbye moon" 289s 7/14 strip.R: strip_ctl(string.1, c("all", "sgr")) 289s Warning in strip_ctl(string.1, c("all", "sgr")) : 289s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 289s [1] "hello[45p world\033[31#3mgoodbye moon" 289s 7/14 strip.R: strip_sgr(string.1) 289s [1] "hello\033\033[45p world\ngoodbye\a moon" 289s 7/14 strip.R: strip_ctl(c(string.0, string.1, "hello"), warn = FALSE) 289s [1] "hello worldgoodbye moon" "hello[45p worldgoodbye moon" 289s [3] "hello" 289s 7/14 strip.R: string.2 <- "\033k\033[45p\a\n\033[31mgoodbye moon" 289s 7/14 strip.R: strip_ctl(string.2) 289s [1] "goodbye moon" 289s 7/14 strip.R: strip_ctl(string.2, "sgr") 289s [1] "\033k\033[45p\a\ngoodbye moon" 289s 7/14 strip.R: string.3 <- "hello world\033k\033[45p\a\n\033[31m" 289s 7/14 strip.R: strip_ctl(string.3) 289s [1] "hello world" 289s 7/14 strip.R: strip_ctl(string.3, "sgr") 289s [1] "hello world\033k\033[45p\a\n" 289s 7/14 strip.R: unitizer_sect("Bad Inputs", { 289s 7/14 strip.R: strip_ctl("hello\033[41mworld", warn = 1:3) 289s Error in strip_ctl("hello\033[41mworld", warn = 1:3) : 289s Argument `warn` must be TRUE or FALSE. 289s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 289s Error in strip_ctl("hello\033[41mworld", ctl = 1:3) : 289s Argument `ctl` must be character. 289s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 289s 7/14 strip.R: strip_ctl("hello\033[41mworld", ctl = 1:3) 289s 7/14 strip.R: strip_ctl("hello\033[41mworld", ctl = "bananas") 289s Error in strip_ctl("hello\033[41mworld", ctl = "bananas") : 289s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 289s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 289s 7/14 strip.R: strip_ctl("hello\033[41mworld", strip = "sgr") 289s Parameter `strip` has been deprecated; use `ctl` instead. 289s [1] "helloworld" 289s 7/14 strip.R: strip_sgr("hello\033[41mworld", warn = 1:3) 289s Error in strip_sgr("hello\033[41mworld", warn = 1:3) : 289s Argument `warn` must be TRUE or FALSE. 289s Calls: unitize_dir ... eval -> withVisible -> strip_sgr -> VAL_IN_ENV -> stop2 289s 289s 8/14 strsplit.R: 289s 8/14 strsplit.R: library(fansi) 289s 8/14 strsplit.R: unitizer_sect("basic splits", { 289s 8/14 strsplit.R: str.0 <- c("hello world", "goodbye moon") 289s 8/14 strsplit.R: identical(strsplit(str.0[1], " "), strsplit_ctl(str.0[1], " ") 289s [1] TRUE 289s 8/14 strsplit.R: identical(strsplit(str.0, "h"), strsplit_ctl(str.0, "h")) 289s [1] TRUE 289s 8/14 strsplit.R: identical(strsplit(str.0, "m"), strsplit_ctl(str.0, "m")) 289s [1] TRUE 289s 8/14 strsplit.R: identical(strsplit(str.0, "g"), strsplit_ctl(str.0, "g")) 289s [1] TRUE 289s 8/14 strsplit.R: str.1 <- "hello\033[31m world" 289s 8/14 strsplit.R: str.2 <- "\033[42m hello\033[m world, Goodbye Moon" 289s 8/14 strsplit.R: strsplit_ctl(str.1, " ") 289s [[1]] 289s [1] "hello" "\033[31mworld\033[0m" 289s 289s 8/14 strsplit.R: strsplit_ctl(str.1, "hello") 289s [[1]] 289s [1] "" "\033[31m world\033[0m" 289s 289s 8/14 strsplit.R: strsplit_ctl(str.2, ", ") 289s [[1]] 289s [1] "\033[42m hello\033[m world" "Goodbye Moon" 289s 289s 8/14 strsplit.R: strsplit_ctl(c(str.1, "hello world", str.2), "hello") 289s [[1]] 289s [1] "" "\033[31m world\033[0m" 289s 289s [[2]] 289s [1] "" " world" 289s 289s [[3]] 289s [1] "\033[42m \033[0m" " world, Goodbye Moon" 289s 289s 8/14 strsplit.R: unitizer_sect("corner cases", { 289s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", "") 289s [[1]] 289s [1] "h" "e" "l" "l" 289s [5] "o" "\033[31m \033[0m" "\033[31mw\033[0m" "\033[31mo\033[0m" 289s [9] "\033[31mr\033[0m" "\033[31ml\033[0m" "\033[31md\033[0m" 289s 289s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", "[", fixed = TRUE) 289s [[1]] 289s [1] "hello\033[31m world" 289s 289s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", NA_character_) 289s Error in strsplit_ctl("hello\033[31m world", NA_character_) : 289s Argument `split` may not contain NAs. 289s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 289s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", character()) 289s [[1]] 289s [1] "h" "e" "l" "l" 289s [5] "o" "\033[31m \033[0m" "\033[31mw\033[0m" "\033[31mo\033[0m" 289s [9] "\033[31mr\033[0m" "\033[31ml\033[0m" "\033[31md\033[0m" 289s 289s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", letters) 289s [[1]] 289s [1] "hello\033[31m world" 289s 289s 8/14 strsplit.R: splits <- c("h", "e", "o", "llo", "x", "hello") 289s 8/14 strsplit.R: str.spl1 <- strsplit_ctl(rep("hello", 6), splits) 289s 8/14 strsplit.R: str.spl2 <- strsplit(rep("hello", 6), splits) 289s 8/14 strsplit.R: identical(str.spl1, str.spl2) 289s [1] TRUE 289s 8/14 strsplit.R: str.spl3 <- strsplit_ctl(rep("\033[31mhello\033[39m", 6), spli 289s 8/14 strsplit.R: str.spl3 289s [[1]] 289s [1] "" "\033[31mello\033[0m" 289s 289s [[2]] 289s [1] "\033[31mh\033[0m" "\033[31mllo\033[0m" 289s 289s [[3]] 289s [1] "\033[31mhell\033[0m" 289s 289s [[4]] 289s [1] "\033[31mhe\033[0m" 289s 289s [[5]] 289s [1] "\033[31mhello\033[39m" 289s 289s [[6]] 289s [1] "" 289s 289s 8/14 strsplit.R: identical(lapply(str.spl3, strip_ctl), str.spl2) 289s [1] TRUE 289s 8/14 strsplit.R: strsplit_ctl("", " ") 289s [[1]] 289s character(0) 289s 289s 8/14 strsplit.R: strsplit_ctl("", "") 289s [[1]] 289s character(0) 289s 289s 8/14 strsplit.R: strsplit_ctl(c("\033[31mab\033[0m", ""), "") 289s [[1]] 289s [1] "\033[31ma\033[0m" "\033[31mb\033[0m" 289s 289s [[2]] 289s character(0) 289s 289s 8/14 strsplit.R: strsplit_ctl("hello", NULL) 289s [[1]] 289s [1] "h" "e" "l" "l" "o" 289s 289s 8/14 strsplit.R: str.sp14 <- c("\033[31mhello\nworld", "\ngoodbye\nmoon") 289s 8/14 strsplit.R: strsplit_ctl(str.sp14, "\n") 289s [[1]] 289s [1] "\033[31mhello\nworld" 289s 289s [[2]] 289s [1] "\ngoodbye\nmoon" 289s 289s 8/14 strsplit.R: strsplit_sgr(str.sp14, "\n") 289s [[1]] 289s [1] "\033[31mhello\033[0m" "\033[31mworld\033[0m" 289s 289s [[2]] 289s [1] "" "goodbye" "moon" 289s 289s 8/14 strsplit.R: strsplit_ctl(str.sp14, "\n", ctl = c("all", "nl")) 289s [[1]] 289s [1] "\033[31mhello\033[0m" "\033[31mworld\033[0m" 289s 289s [[2]] 289s [1] "" "goodbye" "moon" 289s 289s 8/14 strsplit.R: unitizer_sect("bad intputs", { 289s 8/14 strsplit.R: str.bytes <- "\336" 289s 8/14 strsplit.R: Encoding(str.bytes) <- "bytes" 289s 8/14 strsplit.R: strsplit_ctl(str.bytes, "") 289s Error in strsplit_ctl(str.bytes, "") : 289s Argument `x` contains a "bytes" encoded string at index [1], which is disallowed. 289s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 289s 8/14 strsplit.R: strsplit_ctl(str.2, NA) 289s Error in strsplit_ctl(str.2, NA) : Argument `split` may not contain NAs. 289s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", warn = NULL) 289s Error in strsplit_ctl(str.2, "", warn = NULL) : 289s Argument `warn` must be TRUE or FALSE. 289s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", fixed = NA_integer_) 289s Error in strsplit_ctl(str.2, "", fixed = NA_integer_) : 289s Argument `fixed` must be TRUE or FALSE. 289s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", perl = NA_integer_) 289s Error in strsplit_ctl(str.2, "", perl = NA_integer_) : 289s Argument `perl` must be TRUE or FALSE. 289s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", useBytes = NA_integer_) 289s Error in strsplit_ctl(str.2, "", useBytes = NA_integer_) : 289s Argument `useBytes` must be TRUE or FALSE. 289s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", term.cap = 1:3) 289s Error in strsplit_ctl(str.2, "", term.cap = 1:3) : 289s Argument `term.cap` must be character. 289s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", term.cap = "bananas") 289s Error in strsplit_ctl(str.2, "", term.cap = "bananas") : 289s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 289s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", ctl = 1:3) 289s Error in strsplit_ctl(str.2, "", ctl = 1:3) : 289s Argument `ctl` must be character. 289s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 289s 8/14 strsplit.R: strsplit_ctl(str.2, "", ctl = "bananas") 289s Error in strsplit_ctl(str.2, "", ctl = "bananas") : 289s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 289s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 289s 8/14 strsplit.R: strsplit_ctl("a b", str.bytes) 289s Error in strsplit_ctl("a b", str.bytes) : 289s Argument `split` may not be "bytes" encoded. 289s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 289s 8/14 strsplit.R: unitizer_sect("issue 55", { 289s 8/14 strsplit.R: strsplit_ctl("hello\nworld", "\n") 289s [[1]] 289s [1] "hello\nworld" 289s 289s 8/14 strsplit.R: strsplit_sgr("hello\033[31mworld", "\033[31m", fixed = TRUE) 289s [[1]] 289s [1] "hello\033[31mworld" 289s 289s 8/14 strsplit.R: strsplit_ctl("a\nb", "\n", ctl = c("all", "nl")) 289s [[1]] 289s [1] "a" "b" 289s 289s 8/14 strsplit.R: strsplit_sgr("hello\nworld", "\n") 289s [[1]] 289s [1] "hello" "world" 289s 289s 290s 9/14 substr.R: 290s 9/14 substr.R: library(fansi) 290s 9/14 substr.R: unitizer_sect("Simple", { 290s 9/14 substr.R: str01 <- sprintf("hello %sworld%s how", red, inv) 290s 9/14 substr.R: substr_ctl(str01, 1, 7) 290s [1] "hello \033[31mw\033[0m" 290s 9/14 substr.R: substr_ctl(str01, 7, 11) 290s [1] "\033[31mworld\033[0m" 290s 9/14 substr.R: substr_ctl(str01, 8, 10) 290s [1] "\033[31morl\033[0m" 290s 9/14 substr.R: substr_ctl(str01, 8, 14) 290s [1] "\033[31morld\033[7m ho\033[0m" 290s 9/14 substr.R: str02 <- sprintf("%shello world %sit's a %scrazy world%s out the 290s 9/14 substr.R: term.cap <- c("bright", "256", "truecolor") 290s 9/14 substr.R: substr_ctl(str02, 1, 7) 290s [1] "\033[42mhello w\033[0m" 290s 9/14 substr.R: substr_ctl(str02, 10, 20) 290s [1] "\033[42mld \033[31mit's a \033[0mc" 290s 9/14 substr.R: substr_ctl(str02, 15, 40, term.cap = term.cap) 290s [1] "\033[31;42m's a \033[0mcrazy world\033[4;38;2;0;120;200m out there\033[0m" 290s 9/14 substr.R: substr_ctl(str02, 35, 60, term.cap = term.cap) 290s [1] "\033[4;38;2;0;120;200m there \033[7misn't it\033[0m\033[48;5;141m right?\033[0m" 290s 9/14 substr.R: str03 <- sprintf("hello %sworld", rgb.und) 290s 9/14 substr.R: substr_ctl(str03, 1, 12, term.cap = term.cap) 290s [1] "hello \033[4;38;2;0;120;200mworld\033[0m" 290s 9/14 substr.R: str04 <- sprintf("hello%s%s world%s%s yowza", red, inv, grn.bg, 290s 9/14 substr.R: substr_ctl(str04, 5, 7, term.cap = term.cap) 290s [1] "o\033[31m\033[7m w\033[0m" 290s 9/14 substr.R: substr_ctl(str04, 5, 13, term.cap = term.cap) 290s [1] "o\033[31m\033[7m world\033[42m\033[4;38;2;0;120;200m y\033[0m" 290s 9/14 substr.R: unitizer_sect("Multi-line", { 290s 9/14 substr.R: str.m.0 <- paste0("\033[44m", c("hello world", rep("goodbye \033 290s 9/14 substr.R: substr_ctl(str.m.0, (1:4) * 2, (3:8) * 2) 290s [1] "\033[44mello \033[0m" "\033[44mdbye \033[0m" 290s [3] "\033[44mye \033[45mmo\033[0m" "\033[44mombas\033[0m" 290s 9/14 substr.R: unitizer_sect("tabs", { 290s 9/14 substr.R: substr2_ctl("yo\tworld", 1, 8, tabs.as.spaces = TRUE) 290s [1] "yo " 290s 9/14 substr.R: unitizer_sect("Corner cases", { 290s 9/14 substr.R: substr_ctl("hello", 0, -1) 290s [1] "" 290s 9/14 substr.R: substr_ctl("hello", 0, 0) 290s [1] "" 290s 9/14 substr.R: substr_ctl(rep("hello", 2), c(1, 0), c(1, 1)) 290s [1] "h" "h" 290s 9/14 substr.R: substr_ctl(character(), 1, 1) 290s character(0) 290s 9/14 substr.R: substr_ctl(list("hello", list("goodbye", "there")), 1, 2) 290s [1] "he" "li" 290s 9/14 substr.R: substr_ctl(structure(list(list("goodbye", "there")), class = "fo 290s [1] "li" 290s 9/14 substr.R: str.0 <- "\033[31mred\033[m" 290s 9/14 substr.R: str.1 <- "\033[31mred\033[42m" 290s 9/14 substr.R: str.2 <- c(str.0, str.1) 290s 9/14 substr.R: substr_ctl(str.2, 0, 0) 290s [1] "" "" 290s 9/14 substr.R: substr_ctl(str.2, 1, 1) 290s [1] "\033[31mr\033[0m" "\033[31mr\033[0m" 290s 9/14 substr.R: substr_ctl(str.2, 3, 3) 290s [1] "\033[31md\033[0m" "\033[31md\033[0m" 290s 9/14 substr.R: substr_ctl(str.2, 4, 4) 290s [1] "" "" 290s 9/14 substr.R: substr_ctl(str.2, 3, 4) 290s [1] "\033[31md\033[0m" "\033[31md\033[0m" 290s 9/14 substr.R: substr_ctl(str.2, 3, 5) 290s [1] "\033[31md\033[0m" "\033[31md\033[0m" 290s 9/14 substr.R: substr_ctl(str.2, 3, 4, terminate = FALSE) 290s [1] "\033[31md\033[m" "\033[31md\033[42m" 290s 9/14 substr.R: substr_ctl(str.2, 3, 5, terminate = FALSE) 290s [1] "\033[31md\033[m" "\033[31md\033[42m" 290s 9/14 substr.R: substr_ctl(str.2, -1, 2) 290s [1] "\033[31mre\033[0m" "\033[31mre\033[0m" 290s 9/14 substr.R: substr_ctl(str.2, -2, -1) 290s [1] "" "" 290s 9/14 substr.R: substr_ctl(str.2, 4, 1) 290s [1] "" "" 290s 9/14 substr.R: substr_ctl(str.2, 4, 1, terminate = FALSE) 290s [1] "" "" 290s 9/14 substr.R: substr_ctl(str.2, 4, 1, carry = "\033[44m") 290s [1] "" "" 290s 9/14 substr.R: substr_ctl(str.2, 4, 1, carry = "\033[44m", terminate = FALSE) 290s [1] "" "" 290s 9/14 substr.R: substr_ctl("hello", 5, 5) 290s [1] "o" 290s 9/14 substr.R: substr_ctl("hello", 6, 6) 290s [1] "" 290s 9/14 substr.R: substr_ctl("hello", 7, 6) 290s [1] "" 290s 9/14 substr.R: substr_ctl("hello", 6, 7) 290s [1] "" 290s 9/14 substr.R: substr_ctl("hello", 7, 5) 290s [1] "" 290s 9/14 substr.R: substr_ctl("hello", 0, 6) 290s [1] "hello" 290s 9/14 substr.R: substr_ctl("hello", 0, 5) 290s [1] "hello" 290s 9/14 substr.R: substr_ctl("hello", 1, 6) 290s [1] "hello" 290s 9/14 substr.R: substr_ctl("hello", "1", 1) 290s [1] "h" 290s 9/14 substr.R: substr_ctl("hello", 1, "1") 290s [1] "h" 290s 9/14 substr.R: substr_ctl("hello", "a", "b") 290s Warning in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 290s NAs introduced by coercion 290s Warning in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 290s NAs introduced by coercion 290s [1] NA 290s 9/14 substr.R: substr_ctl("hello", 1, NA_integer_) 290s [1] NA 290s 9/14 substr.R: substr_ctl("hello", NA_integer_, 1) 290s [1] NA 290s 9/14 substr.R: substr_ctl(rep("\033[31mhello\033[m", 3), c(3, 2, 1), c(3, 4, 290s [1] "\033[31ml\033[0m" "\033[31mell\033[0m" "\033[31mhello\033[0m" 290s 9/14 substr.R: str.3 <- structure("fu\033[42mba\033[0mr", class = "foo", at = " 290s 9/14 substr.R: substr_ctl(str.3, 2, 3) 290s [1] "u\033[42mb\033[0m" 290s attr(,"class") 290s [1] "foo" 290s attr(,"at") 290s [1] "bar" 290s 9/14 substr.R: substr_ctl(str.2, 2, 6, ctl = c("all", "sgr")) 290s [1] "[31mr" "[31mr" 290s 9/14 substr.R: substr_ctl(str.2, 8, 10, ctl = c("all", "sgr")) 290s [1] "d\033[" "d\033[" 290s 9/14 substr.R: substr2_ctl(rep("o\033[31m ", 2), 1:2, 1:2) 290s [1] "o" "\033[31m \033[0m" 290s 9/14 substr.R: substr_ctl("hello\033[41b", 1, 5) 290s [1] "hello" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("hello\033[41b", 1, 6) 290s [1] "hello\033[41b" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", 1, 1) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "\033[31mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", 0, 1) 290s [1] "\033[1p\033[31mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", -1, 1) 290s [1] "\033[1p\033[31mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", 1, 1) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "\033[31mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", 0, 1) 290s [1] "\033[31m\033[1pA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", -1, 1) 290s [1] "\033[31m\033[1pA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", 1, 1) 290s [1] "\033[1;41mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", 0, 1) 290s [1] "\033[1;41mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", -1, 1) 290s [1] "\033[1;41mA\033[0m" 290s 9/14 substr.R: str.4 <- c("A\033[45mB", "A") 290s 9/14 substr.R: substr_ctl(str.4, 1, 1, carry = TRUE, terminate = FALSE) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "A" "\033[45mA" 290s 9/14 substr.R: substr_ctl("a\033[42", 1, 1) 290s [1] "a" 290s 9/14 substr.R: substr_ctl("a\033[42", 1, 2) 290s [1] "a\033[42" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("a\033[42", 1, 2, terminate = FALSE) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "a\033[42" 290s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 1) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "a" 290s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 2) 290s [1] "a" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 2, terminate = FALSE) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "a\033]8;;END" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("a\033];;END", 1, 1) 290s [1] "a" 290s 9/14 substr.R: substr_ctl("a\033];;END", 1, 2) 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "a\033];;END" 290s 9/14 substr.R: substr_ctl("a\033[38;5mb", 1, 2, term.cap = "all") 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "a\033[38;5mb" 290s 9/14 substr.R: substr_ctl("a\033[38;2mb", 1, 2, term.cap = "all") 290s [1] "a\033[38;2mb" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("a\033[38;2;255mb", 1, 2, term.cap = "all") 290s [1] "a\033[38;2;255mb" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("a\033[38;2;255;255mb", 1, 2, term.cap = "all") 290s [1] "a\033[38;2;255;255mb" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[45pA", 1, 1, warn = FALSE) 290s [1] "A" 290s 9/14 substr.R: substr_ctl("\033[45pA", 0, 1, warn = FALSE) 290s [1] "\033[45pA" 290s 9/14 substr.R: substr_ctl(c("AB", NA, "CD"), 1, 2) 290s [1] "AB" NA "CD" 290s 9/14 substr.R: substr_ctl(c("AB", NA, "CD"), 1, 2, carry = TRUE) 290s [1] "AB" NA NA 290s 9/14 substr.R: substr_ctl(c("AB", "CD"), c(NA, 1), 2) 290s [1] NA "CD" 290s 9/14 substr.R: substr_ctl(c("AB", "CD"), c(NA, 1), 2, carry = TRUE) 290s [1] NA "CD" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = "bright") 290s [1] "\033[38;5;4mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("bright", "old")) 290s [1] "\033[4;5mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("all", "256")) 290s [1] "\033[38;5;4mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("all", "256", 290s [1] "\033[4;5mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("256")) 290s [1] "\033[38;5;4mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("256", "old")) 290s [1] "\033[38;5;4mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = "bright") 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "\033[38;2;1;1;1mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("bright", 290s [1] "\033[1;2mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("all", "truec 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "\033[38;2;1;1;1mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("all", "truec 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "\033[1;2mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("truecolor")) 290s [1] "\033[38;2;1;1;1mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("truecolor", 290s [1] "\033[38;2;1;1;1mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = "256") 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s [1] "\033[107mA\033[0m" 290s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("256", "old")) 290s [1] "A" 290s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("all", "bright")) 290s [1] "\033[107mA\033[0m" 290s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 290s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 290s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("all", "bright", 290s [1] "A" 290s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("bright")) 290s [1] "\033[107mA\033[0m" 291s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("bright", "old")) 291s [1] "\033[107mA\033[0m" 291s 9/14 substr.R: str.5 <- c("\033[48;2;100;100;100mAB", "\033[48;2;100;100;100mCD 291s 9/14 substr.R: substr_ctl(str.5, 2, 2, terminate = FALSE, carry = TRUE, term.ca 291s [1] "\033[48;2;100;100;100mB" "D" 291s 9/14 substr.R: str.5a <- c("\033[48;2;100;100;100mAB", "\033[48;2;100;100;101mC 291s 9/14 substr.R: substr_ctl(str.5a, 2, 2, terminate = FALSE, carry = TRUE, term.c 291s [1] "\033[48;2;100;100;100mB" "\033[48;2;100;100;101mD" 291s 9/14 substr.R: unitizer_sect("Obscure escapes", { 291s 9/14 substr.R: tryCatch(substr_ctl("\033[38;6;31mworld\033[m", 2, 3), warning = 291s [1] "Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 291s 9/14 substr.R: suppressWarnings(substr_ctl("\033[38;6;31mworld\033[m", 2, 3)) 291s [1] "\033[6;31mor\033[0m" 291s 9/14 substr.R: tryCatch(substr_ctl("\033[31mhello\033[38;5;256m world\033[m", 291s [1] "Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 291s 9/14 substr.R: suppressWarnings(substr_ctl("\033[31mhello\033[38;5;256m world\0 291s [1] "\033[31mwo\033[0m" 291s 9/14 substr.R: substr_ctl("\033[20mworld\033[m", 2, 3) 291s [1] "\033[20mor\033[0m" 291s 9/14 substr.R: substr_ctl("\033[21mworld\033[m", 2, 3) 291s [1] "\033[21mor\033[0m" 291s 9/14 substr.R: substr_ctl(rep("\033[26mhello \033[50mworld\033[m", 2), c(2, 291s [1] "\033[26mel\033[0m" "orl" 291s 9/14 substr.R: substr_ctl(rep("\033[61mwor\033[65mld\033[m", 2), c(2, 4), c(3, 291s [1] "\033[61mor\033[0m" "ld" 291s 9/14 substr.R: tryCatch(substr_ctl("\033[56mworld\033[m", 2, 3), warning = cond 291s [1] "Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 291s 9/14 substr.R: suppressWarnings(substr_ctl("\033[56mworld\033[m", 2, 3)) 291s [1] "or" 291s 9/14 substr.R: tryCatch(substr_ctl("\033[66mworld\033[m", 2, 3), warning = cond 291s [1] "Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 291s 9/14 substr.R: tryCatch(substr_ctl("\033[200mworld\033[m", 2, 3), warning = con 291s [1] "Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 291s 9/14 substr.R: substr_ctl(rep("\033[91mwor\033[101mld\033[m", 2), c(2, 4), c(3, 291s [1] "\033[91mor\033[0m" "\033[91;101mld\033[0m" 291s 9/14 substr.R: unitizer_sect("bad args", { 291s 9/14 substr.R: hello2.0 <- "\033[42m\thello world\033[m foobar" 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, warn = NULL) 291s Error in substr2_ctl(hello2.0, 1, 2, warn = NULL) : 291s Argument `warn` must be TRUE or FALSE. 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = 1) 291s [1] "\033[42m \033[0m" 291s Error in substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = NA) : 291s Argument `tabs.as.spaces` must be TRUE or FALSE. 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = NA) 291s Error in substr2_ctl(hello2.0, 1, 2, tab.stops = -(1:3)) : 291s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tab.stops = -(1:3)) 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tab.stops = 0) 291s Error in substr2_ctl(hello2.0, 1, 2, tab.stops = 0) : 291s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, round = "bananas") 291s Error in substr2_ctl(hello2.0, 1, 2, round = "bananas") : 291s Argument `round` must partial match one of c("start", "stop", "both", "neither") 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, term.cap = 0) 291s Error in substr2_ctl(hello2.0, 1, 2, term.cap = 0) : 291s Argument `term.cap` must be character. 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, term.cap = "bananas") 291s Error in substr2_ctl(hello2.0, 1, 2, term.cap = "bananas") : 291s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, type = "bananas") 291s Error in substr2_ctl(hello2.0, 1, 2, type = "bananas") : 291s Argument `type` must partial match one of c("chars", "width", "graphemes") 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, ctl = "bananas") 291s Error in substr2_ctl(hello2.0, 1, 2, ctl = "bananas") : 291s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, ctl = 0) 291s Error in substr2_ctl(hello2.0, 1, 2, ctl = 0) : 291s Argument `ctl` must be character. 291s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 291s 9/14 substr.R: unitizer_sect("`ctl` related issues", { 291s 9/14 substr.R: substr_sgr("\033[31;42mhello world", 2, 4) 291s [1] "\033[31;42mell\033[0m" 291s 9/14 substr.R: substr_sgr("\033[31m\033[42mhello world", 2, 4) 291s [1] "\033[31;42mell\033[0m" 291s 9/14 substr.R: tryCatch(substr_sgr("\033[31;42!mhello world", 2, 4), warning = 291s [1] "Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 291s 9/14 substr.R: substr_sgr("\033[55;38l\033[31mhello world", 2, 4, warn = FALSE) 291s [1] "[55" 291s 9/14 substr.R: substr_sgr("\033[31m\033[55;38lhello world", 2, 4, warn = FALSE) 291s [1] "\033[31m[55\033[0m" 291s 9/14 substr.R: substr_sgr("hello \033[31m\033[55;38lworld", 7, 9, warn = FALSE) 291s [1] "\033[31m\033[5\033[0m" 291s 9/14 substr.R: substr_ctl("\033[55;38l\033[31mhello world", 2, 4, warn = FALSE) 291s [1] "\033[31mell\033[0m" 291s 9/14 substr.R: substr_ctl("\033[31m\033[55;38lhello world", 2, 4, warn = FALSE) 291s [1] "\033[31mell\033[0m" 291s 9/14 substr.R: substr_ctl("hello \033[31m\033[55;38lworld", 7, 9, warn = FALSE) 291s [1] "\033[31mwor\033[0m" 291s 9/14 substr.R: substr_ctl("hello\033[55;38l \033[31mworld", 4, 7, warn = FALSE) 291s [1] "lo\033[55;38l \033[31mw\033[0m" 291s 9/14 substr.R: substr_sgr("ab\n\tcd\n", 3, 6, warn = FALSE) 291s [1] "\n\tcd" 291s 9/14 substr.R: substr_sgr("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE) 291s [1] "\n\033[31m\tcd\033[0m" 291s 9/14 substr.R: substr_ctl("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE, ctl = c("al 291s [1] "\n\033[31m\tcd\n\033[0m" 291s 9/14 substr.R: substr_ctl("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE, ctl = c("al 291s [1] "\n\033[31m\tcd\033[0m" 291s 9/14 substr.R: substr_sgr(c("\a", "b", "c"), 1, 1) 291s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 291s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 291s [1] "\a" "b" "c" 291s 9/14 substr.R: substr_sgr(c("a", "\b", "c"), 1, 1) 291s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 291s Argument `x` contains a C0 control character at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 291s [1] "a" "\b" "c" 291s 9/14 substr.R: substr_sgr(c("a", "b", "\ac"), 1, 1) 291s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 291s [1] "a" "b" "\a" 291s Argument `x` contains a C0 control character at index [3], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 291s 9/14 substr.R: unitizer_sect("Rep Funs - Equivalence", { 291s 9/14 substr.R: txt0 <- "ABCD" 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 2, value = "#"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 2, value = "#?"), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = "#?-"), `substr<-`( 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 0, 0, value = "#"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 1, value = "#"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 10, 12, value = "#"), `substr<-`( 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = "#"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 1, 5, value = "#"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 0, 5, value = "#"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: `substr_ctl<-`(txt0, 0, -1, value = "#") 291s [1] "ABCD" 291s 9/14 substr.R: rep1 <- c("_", "_.") 291s 9/14 substr.R: rep2 <- c("_", "_.", "...") 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = rep1), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = rep2), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: txt1 <- c("AB", "CDE") 291s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = "_"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = rep1), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = rep2), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: txt2 <- c("AB", "CDE", "EFGH") 291s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = "_"), `substr<-`(tx 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = rep1), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = rep2), `substr<-`(t 291s [1] TRUE 291s 9/14 substr.R: txt3a <- txt3b <- c("ABC", "ABC") 291s 9/14 substr.R: substr(txt3a[2], 2, 2) <- "_" 291s 9/14 substr.R: substr_ctl(txt3b[2], 2, 2) <- "_" 291s 9/14 substr.R: identical(txt3a, txt3b) 291s [1] TRUE 291s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = NA_character_), 291s [1] TRUE 291s 9/14 substr.R: txt.na <- NA_character_ 291s 9/14 substr.R: identical(`substr_ctl<-`(txt.na, 1, 2, value = "AB"), `substr<-` 291s [1] TRUE 291s 9/14 substr.R: unitizer_sect("Rep Funs - SGR", { 291s 9/14 substr.R: txt1 <- "\033[33mABCD" 291s 9/14 substr.R: txt2 <- "\033[33mA\033[44mBCD" 291s 9/14 substr.R: txt3 <- "\033[33mA\033[44mBC\033[1mD" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 2, value = "#") 291s [1] "\033[33mA\033[0m#\033[33mCD" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#?-") 291s [1] "\033[33mA\033[0m#?\033[33mD" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[32m?-") 291s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33mD" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[32m?-\033[0m") 291s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33mD" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[0m?-") 291s [1] "\033[33mA\033[0m#\033[0m?\033[33mD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[32m?-") 291s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[32m?-\033[0m") 291s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[0m?-") 291s [1] "\033[33mA\033[0m#\033[0m?\033[33;44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[32m?-") 291s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[1;33;44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[32m?-\033[0m") 291s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[1;33;44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[0m?-") 291s [1] "\033[33mA\033[0m#\033[0m?\033[1;33;44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 2, terminate = FALSE, value = "#") 291s [1] "\033[33mA#\033[44mCD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[32m 291s [1] "\033[33mA#\033[32m?\033[44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[32m 291s [1] "\033[33mA#\033[32m?\033[44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[0m? 291s [1] "\033[33mA#\033[0m?\033[44mD" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, terminate = FALSE, value = "#\033[0m? 291s [1] "\033[33mA#\033[0m?D" 291s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, terminate = FALSE, value = "#\033[0m\ 291s [1] "\033[33mA#\033[0m\033[45m?D" 291s 9/14 substr.R: txt4 <- c(txt2, txt0, "\033[39mABCD") 291s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = "#") 291s [1] "\033[33mA\033[0m#\033[33;44mCD" "A#CD" 291s [3] "\033[39mA#CD" 291s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = c("#", "?")) 291s [1] "\033[33mA\033[0m#\033[33;44mCD" "A?CD" 291s [3] "\033[39mA#CD" 291s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = c("#", "?", "$")) 291s [1] "\033[33mA\033[0m#\033[33;44mCD" "A?CD" 291s [3] "\033[39mA$CD" 291s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 2, carry = TRUE, value = "#") 291s [1] "\033[33mA\033[0m#\033[33;44mCD" "A\033[0m#\033[33;44mCD" 291s [3] "\033[39mA\033[0m#\033[44mCD" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[32m?-") 292s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 292s [2] "A\033[0m\033[32m#\033[32m?\033[0m\033[33;44mD" 292s [3] "\033[39mA\033[0m\033[32m#\033[32m?\033[0m\033[44mD" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[42m?-\03 292s [1] "\033[33mA\033[0m#\033[42m?\033[0m\033[33;44mD" 292s [2] "A\033[0m#\033[42m?\033[0m\033[33;44mD" 292s [3] "\033[39mA\033[0m#\033[42m?\033[0m\033[44mD" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[0m?-") 292s [1] "\033[33mA\033[0m#\033[0m?\033[33;44mD" 292s [2] "A\033[0m#\033[0m?\033[33;44mD" 292s [3] "\033[39mA\033[0m#\033[0m?\033[44mD" 292s 9/14 substr.R: rep4 <- c("\033[32m_\033[45m", ".-", "\033[39m__") 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = rep4) 292s [1] "\033[33mA\033[0m\033[32m_\033[0m\033[33;44mCD" 292s [2] "A\033[0m\033[32;45m.-\033[0m\033[33;44mD" 292s [3] "\033[39mA\033[0m\033[45m__\033[0m\033[44mD" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 2, terminate = FALSE, carry = TRUE, valu 292s [1] "\033[33mA#\033[44mCD" "A#CD" "\033[39mA#CD" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 292s [1] "\033[33mA#\033[32m?\033[44mD" "A#\033[32m?D" 292s [3] "\033[39mA#\033[32m?D" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 292s [1] "\033[33mA#\033[35m?\033[44mD" "A\033[0m#\033[35m?D" 292s [3] "\033[39mA\033[0m#\033[35m?D" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 292s [1] "\033[33mA#\033[0m?\033[44mD" "A#\033[0m?D" 292s [3] "\033[39mA#\033[0m?D" 292s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 292s [1] "\033[33mA\033[32m_\033[45m\033[44mCD" 292s [2] "A.-D" 292s [3] "\033[39mA\033[0;45m__D" 292s 9/14 substr.R: txt5 <- c("ABD", "DFG") 292s 9/14 substr.R: `substr_ctl<-`(txt5, 2, 2, value = ".\033[45m", carry = TRUE, 292s [1] "A.D" "D\033[45m.G" 292s 9/14 substr.R: txt6 <- "A123456789B" 292s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 9, value = "\t", tabs.as.spaces = TRUE) 292s [1] "A 9B" 292s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 3, value = "\t", tabs.as.spaces = TRUE) 292s [1] "A 3456789B" 292s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 10, value = "\t", tabs.as.spaces = TRUE 292s [1] "A 9B" 292s 9/14 substr.R: txt7a <- "os" 292s 9/14 substr.R: txt7b <- "sos" 292s 9/14 substr.R: txt7c <- "so" 292s 9/14 substr.R: val.scar <- "" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 1, 1, value = val.scar)) 292s [1] "UTF-8" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 1, 1, value = "s")) 292s [1] "unknown" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 2, 2, value = val.scar)) 292s [1] "UTF-8" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 2, 2, value = "s")) 292s [1] "UTF-8" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7b, 2, 2, value = val.scar)) 292s [1] "UTF-8" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7b, 2, 2, value = "s")) 292s [1] "unknown" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7c, 3, 3, value = val.scar)) 292s [1] "UTF-8" 292s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7c, 3, 3, value = "s")) 292s [1] "unknown" 292s 9/14 substr.R: unitizer_sect("Rep Funs - Corner Cases", { 292s 9/14 substr.R: `substr_ctl<-`(txt2, 1, 3, terminate = FALSE, value = "#\033[32m 292s [1] "\033[33m#\033[32m?\033[0m\033[44mCD" 292s 9/14 substr.R: txt8 <- "\033[32mAB\033[45m" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 2, value = "12") 292s [1] "\033[32m\033[0m12\033[32m\033[45m" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 2, value = "12", terminate = FALSE) 292s [1] "\033[32m12\033[45m" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "12") 292s [1] "\033[32m\033[0m12" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "1") 292s [1] "\033[32m\033[0m1\033[32mB\033[45m" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "") 292s [1] "\033[32mAB\033[45m" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "123") 292s [1] "\033[32m\033[0m12" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 0, 2, value = "12") 292s [1] "12\033[32m\033[45m" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 0, 3, value = "12") 292s [1] "12" 292s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "\033[1m", terminate = FALSE) 292s [1] "\033[32m\033[1mAB\033[45m" 292s 9/14 substr.R: tce(`substr_ctl<-`(txt8, 1, 3, value = "A", carry = "\033[41m")) 292s [1] "Argument `carry` must be TRUE or FALSE in replacement mode." 292s 9/14 substr.R: lat <- "fa\347ile" 292s 9/14 substr.R: Encoding(lat) <- "latin1" 292s 9/14 substr.R: tce(`substr_ctl<-`(lat, 1, 3, value = "ABC")) 292s [1] "`x` may only contain ASCII or marked UTF-8 encoded strings; you can use `enc2utf8` to convert `x` prior to use with `substr_ctl<-` (replacement form). Illegal value at position [1]." 292s 9/14 substr.R: txt.na2 <- c("AB", NA, "BC") 292s 9/14 substr.R: `substr_ctl<-`(txt.na2, 1, 1, value = "#") 292s [1] "#B" NA "#C" 292s 9/14 substr.R: txt.nona <- c("AB", "BC", "CD") 292s 9/14 substr.R: `substr_ctl<-`(txt.nona, 1, 1, value = c("#", NA), carry = TRUE) 292s [1] "#B" NA NA 292s 292s 10/14 tabs.R: 292s 10/14 tabs.R: library(unitizer) 292s 10/14 tabs.R: library(fansi) 292s 10/14 tabs.R: unitizer_sect("simple tabs", { 292s 10/14 tabs.R: string <- "1\t12\t123\t1234\t12345678" 292s 10/14 tabs.R: tabs_as_spaces(string) 292s [1] "1 12 123 1234 12345678" 292s 10/14 tabs.R: tabs_as_spaces(string, c(2, 3, 4, 5, 8)) 292s [1] "1 12 123 1234 12345678" 292s 10/14 tabs.R: tabs_as_spaces(string, c(2, 8)) 292s [1] "1 12 123 1234 12345678" 292s 10/14 tabs.R: tabs_as_spaces(1:3) 292s [1] "1" "2" "3" 292s 10/14 tabs.R: unitizer_sect("newlines", { 292s 10/14 tabs.R: string.n <- paste0("1\t12\t123\t1234\t12345678\n", "1\t12\t123\t12 292s 10/14 tabs.R: tabs_as_spaces(string.n) 292s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 292s 10/14 tabs.R: tabs_as_spaces(string.n, c(2, 3, 4, 8)) 292s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 292s 10/14 tabs.R: tabs_as_spaces(string.n, c(2, 8)) 292s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 292s 10/14 tabs.R: unitizer_sect("corner cases", { 292s 10/14 tabs.R: tabs_as_spaces("") 292s [1] "" 292s 10/14 tabs.R: tabs_as_spaces("\t") 292s [1] " " 292s 10/14 tabs.R: tabs_as_spaces("\n") 292s [1] "\n" 292s 10/14 tabs.R: tabs_as_spaces(c(string, string, string)) 292s [1] "1 12 123 1234 12345678" 292s [2] "1 12 123 1234 12345678" 292s [3] "1 12 123 1234 12345678" 292s 10/14 tabs.R: tabs_as_spaces("\t\t") 292s [1] " " 292s 10/14 tabs.R: unitizer_sect("bad inputs", { 292s 10/14 tabs.R: tabs_as_spaces(string, warn = 1:3) 292s Error in tabs_as_spaces(string, warn = 1:3) : 292s Argument `warn` must be TRUE or FALSE. 292s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 292s 10/14 tabs.R: tabs_as_spaces(string, tab.stops = "hello") 292s Error in tabs_as_spaces(string, tab.stops = "hello") : 292s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 292s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 292s 10/14 tabs.R: tabs_as_spaces(string, ctl = "hello") 292s Error in tabs_as_spaces(string, ctl = "hello") : 292s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 292s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 292s 10/14 tabs.R: tabs_as_spaces(string, ctl = 0) 292s Error in tabs_as_spaces(string, ctl = 0) : 292s Argument `ctl` must be character. 292s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 292s 292s 11/14 tohtml.R: 292s 11/14 tohtml.R: library(unitizer) 292s 11/14 tohtml.R: library(fansi) 292s 11/14 tohtml.R: unitizer_sect("colors", { 292s 11/14 tohtml.R: style <- "width: 16px; height: 16px; display: inline-block;" 292s 11/14 tohtml.R: span <- "" 292s 11/14 tohtml.R: colors.8 <- fansi:::esc_color_code_to_html(rbind(c(0:7), 0L, 292s 11/14 tohtml.R: colors.8 292s [1] "#000000" "#BB0000" "#00BB00" "#BBBB00" "#0000BB" "#BB00BB" "#00BBBB" 292s [8] "#BBBBBB" 292s Error in fansi:::esc_color_code_to_html(matrix(c(9L, 0L, 0L, 0L, 0L))) : 292s Internal Error: applying non-color. 292s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 292s 11/14 tohtml.R: fansi:::esc_color_code_to_html(matrix(c(9L, 0L, 0L, 0L, 0L))) 292s 11/14 tohtml.R: colors.255 <- fansi:::esc_color_code_to_html(rbind(8L, 5L, 0:255 292s 11/14 tohtml.R: colors.255 292s [1] "#000000" "#800000" "#008000" "#808000" "#000080" "#800080" "#008080" 292s [8] "#C0C0C0" "#808080" "#FF0000" "#00FF00" "#FFFF00" "#0000FF" "#FF00FF" 292s [15] "#00FFFF" "#FFFFFF" "#000000" "#00005F" "#000087" "#0000AF" "#0000D7" 292s [22] "#0000FF" "#005F00" "#005F5F" "#005F87" "#005FAF" "#005FD7" "#005FFF" 292s [29] "#008700" "#00875F" "#008787" "#0087AF" "#0087D7" "#0087FF" "#00AF00" 292s [36] "#00AF5F" "#00AF87" "#00AFAF" "#00AFD7" "#00AFFF" "#00D700" "#00D75F" 292s [43] "#00D787" "#00D7AF" "#00D7D7" "#00D7FF" "#00FF00" "#00FF5F" "#00FF87" 292s [50] "#00FFAF" "#00FFD7" "#00FFFF" "#5F0000" "#5F005F" "#5F0087" "#5F00AF" 292s [57] "#5F00D7" "#5F00FF" "#5F5F00" "#5F5F5F" "#5F5F87" "#5F5FAF" "#5F5FD7" 292s [64] "#5F5FFF" "#5F8700" "#5F875F" "#5F8787" "#5F87AF" "#5F87D7" "#5F87FF" 292s [71] "#5FAF00" "#5FAF5F" "#5FAF87" "#5FAFAF" "#5FAFD7" "#5FAFFF" "#5FD700" 292s [78] "#5FD75F" "#5FD787" "#5FD7AF" "#5FD7D7" "#5FD7FF" "#5FFF00" "#5FFF5F" 292s [85] "#5FFF87" "#5FFFAF" "#5FFFD7" "#5FFFFF" "#870000" "#87005F" "#870087" 292s [92] "#8700AF" "#8700D7" "#8700FF" "#875F00" "#875F5F" "#875F87" "#875FAF" 292s [99] "#875FD7" "#875FFF" "#878700" "#87875F" "#878787" "#8787AF" "#8787D7" 292s [106] "#8787FF" "#87AF00" "#87AF5F" "#87AF87" "#87AFAF" "#87AFD7" "#87AFFF" 292s [113] "#87D700" "#87D75F" "#87D787" "#87D7AF" "#87D7D7" "#87D7FF" "#87FF00" 292s [120] "#87FF5F" "#87FF87" "#87FFAF" "#87FFD7" "#87FFFF" "#AF0000" "#AF005F" 292s [127] "#AF0087" "#AF00AF" "#AF00D7" "#AF00FF" "#AF5F00" "#AF5F5F" "#AF5F87" 292s [134] "#AF5FAF" "#AF5FD7" "#AF5FFF" "#AF8700" "#AF875F" "#AF8787" "#AF87AF" 292s [141] "#AF87D7" "#AF87FF" "#AFAF00" "#AFAF5F" "#AFAF87" "#AFAFAF" "#AFAFD7" 292s [148] "#AFAFFF" "#AFD700" "#AFD75F" "#AFD787" "#AFD7AF" "#AFD7D7" "#AFD7FF" 292s [155] "#AFFF00" "#AFFF5F" "#AFFF87" "#AFFFAF" "#AFFFD7" "#AFFFFF" "#D70000" 292s [162] "#D7005F" "#D70087" "#D700AF" "#D700D7" "#D700FF" "#D75F00" "#D75F5F" 292s [169] "#D75F87" "#D75FAF" "#D75FD7" "#D75FFF" "#D78700" "#D7875F" "#D78787" 292s [176] "#D787AF" "#D787D7" "#D787FF" "#D7AF00" "#D7AF5F" "#D7AF87" "#D7AFAF" 292s [183] "#D7AFD7" "#D7AFFF" "#D7D700" "#D7D75F" "#D7D787" "#D7D7AF" "#D7D7D7" 292s [190] "#D7D7FF" "#D7FF00" "#D7FF5F" "#D7FF87" "#D7FFAF" "#D7FFD7" "#D7FFFF" 292s [197] "#FF0000" "#FF005F" "#FF0087" "#FF00AF" "#FF00D7" "#FF00FF" "#FF5F00" 292s [204] "#FF5F5F" "#FF5F87" "#FF5FAF" "#FF5FD7" "#FF5FFF" "#FF8700" "#FF875F" 292s [211] "#FF8787" "#FF87AF" "#FF87D7" "#FF87FF" "#FFAF00" "#FFAF5F" "#FFAF87" 292s [218] "#FFAFAF" "#FFAFD7" "#FFAFFF" "#FFD700" "#FFD75F" "#FFD787" "#FFD7AF" 292s [225] "#FFD7D7" "#FFD7FF" "#FFFF00" "#FFFF5F" "#FFFF87" "#FFFFAF" "#FFFFD7" 292s [232] "#FFFFFF" "#080808" "#121212" "#1C1C1C" "#262626" "#303030" "#3A3A3A" 292s [239] "#444444" "#4E4E4E" "#585858" "#626262" "#6C6C6C" "#767676" "#808080" 292s [246] "#8A8A8A" "#949494" "#9E9E9E" "#A8A8A8" "#B2B2B2" "#BCBCBC" "#C6C6C6" 292s [253] "#D0D0D0" "#DADADA" "#E4E4E4" "#EEEEEE" 292s 11/14 tohtml.R: vals <- c(0L, 127L, 255L) 292s 11/14 tohtml.R: colors.tru <- fansi:::esc_color_code_to_html(do.call(rbind, c(li 292s 11/14 tohtml.R: colors.tru 292s [1] "#000000" "#7F0000" "#FF0000" "#007F00" "#7F7F00" "#FF7F00" "#00FF00" 292s [8] "#7FFF00" "#FFFF00" "#00007F" "#7F007F" "#FF007F" "#007F7F" "#7F7F7F" 292s [15] "#FF7F7F" "#00FF7F" "#7FFF7F" "#FFFF7F" "#0000FF" "#7F00FF" "#FF00FF" 292s [22] "#007FFF" "#7F7FFF" "#FF7FFF" "#00FFFF" "#7FFFFF" "#FFFFFF" 292s 11/14 tohtml.R: unitizer_sect("simple html conversion", { 292s 11/14 tohtml.R: as_html_page <- function(x) { 292s 11/14 tohtml.R: sgr_to_html("hello \033[31;42;1mworld\033[0m") 292s [1] "hello world" 292s 11/14 tohtml.R: sgr_to_html("hello \033[31;48;5;23;1mworld\033[m") 292s [1] "hello world" 292s 11/14 tohtml.R: sgr_to_html("\033[1mbold\033[22m \033[2mfaint\033[22m \033[mital 292s [1] "bold faint italic\n" 292s 11/14 tohtml.R: csi_string <- c("\033[1mbold\033[22m \033[2mfaint\033[22m \033[3 292s 11/14 tohtml.R: html_string <- sgr_to_html(csi_string) 292s 11/14 tohtml.R: html_string 292s [1] "bold faint italic" 292s [2] "underline slow-blink" 292s [3] "fast-blink" 292s [4] "red-fg-green-bginverse inverse-off" 292s [5] "conceal reveal crossed-outclear" 292s [6] "bold faint italic" 292s [7] "underline slow-blink" 292s [8] "fast-blink" 292s [9] "red-fg-green-bginverse inverse-off" 292s [10] "conceal reveal crossed-outclear" 292s [11] "italic again not italic?" 292s 11/14 tohtml.R: unitizer_sect("Bright Colors", { 292s 11/14 tohtml.R: sgr_to_html("hello\033[94;101m world\033[39m yow\033[49mza") 292s [1] "hello world yowza" 292s 11/14 tohtml.R: sgr_to_html("hello\033[98;101m world\033[39m yow\033[49mza") 292s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 292s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 292s [1] "hello world yowza" 292s 11/14 tohtml.R: unitizer_sect("Corner cases", { 292s 11/14 tohtml.R: sgr_to_html("hello\033[0m") 292s [1] "hello" 292s 11/14 tohtml.R: sgr_to_html("hello\033[31m") 292s [1] "hello" 292s 11/14 tohtml.R: sgrs <- paste0(rep("\033[31m", 20), collapse = "") 292s 11/14 tohtml.R: sgr_to_html(sprintf("%shello world\033[m", sgrs)) 292s [1] "hello world" 292s 11/14 tohtml.R: sgr_to_html(1:3) 292s [1] "1" "2" "3" 292s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[m\033[42m world\033[m") 292s [1] "hello world" 292s 11/14 tohtml.R: sgr_to_html("\033[33mhello") 292s [1] "hello" 292s 11/14 tohtml.R: sgr_to_html("he\033[33mllo") 292s [1] "hello" 292s 11/14 tohtml.R: sgr_to_html("hello\033[33m") 292s [1] "hello" 292s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "world")) 292s [1] "hello" 292s [2] "world" 292s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "\033[44mworld")) 292s [1] "hello" 292s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "wor\033[44mld")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "world\033[44m")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "world")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "\033[44mworld")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "wor\033[44mld")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "world\033[44m")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "world")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "\033[44mworld")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "wor\033[44mld")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "world\033[44m")) 293s [1] "hello" 293s [2] "world" 293s 11/14 tohtml.R: unitizer_sect("Bad inputs", { 293s 11/14 tohtml.R: fansi:::esc_color_code_to_html(matrix(1:12, 4)) 293s 11/14 tohtml.R: sgr_to_html(1:3) 293s [1] "1" "2" "3" 293s Error in fansi:::esc_color_code_to_html(matrix(1:12, 4)) : 293s Argument `x` must be a five row integer matrix. 293s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 293s 11/14 tohtml.R: sgr_to_html("a", warn = 1:3) 293s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s Argument `warn` must be TRUE or FALSE. 293s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 293s 11/14 tohtml.R: sgr_to_html("a", term.cap = 1:3) 293s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s Argument `term.cap` must be character. 293s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 293s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 293s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 293s 11/14 tohtml.R: sgr_to_html("a", term.cap = "hello") 293s 11/14 tohtml.R: unitizer_sect("issue54", { 293s 11/14 tohtml.R: string <- c("\033[31m", "\033[39m") 293s 11/14 tohtml.R: fansi::sgr_to_html(string) 293s [1] "" "" 293s 11/14 tohtml.R: string1 <- c("\033[31mhello", "world\033[39m moon") 293s 11/14 tohtml.R: fansi::sgr_to_html(string1) 293s [1] "hello" 293s [2] "world moon" 293s 11/14 tohtml.R: string2 <- c("\033[3mhello\033[24m", "world\033[23m moon") 293s 11/14 tohtml.R: fansi::sgr_to_html(string2) 293s [1] "hello" 293s [2] "world moon" 293s 11/14 tohtml.R: unitizer_sect("Colors as classes (#65)", { 293s 11/14 tohtml.R: sgr_to_html("\033[94mhello\033[31;42;1mworld\033[m", classes = T 293s [1] "helloworld" 293s 11/14 tohtml.R: class.8 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:7), 293s 11/14 tohtml.R: class.16 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:15), 293s 11/14 tohtml.R: class.256 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:255), 293s 11/14 tohtml.R: x <- c("\033[94mhe\033[107mllo\033[31;42;1mworld\033[m", "\033[4 293s 11/14 tohtml.R: term.cap <- c("bright", "256", "truecolor") 293s 11/14 tohtml.R: sgr_to_html(x, classes = class.8, term.cap = term.cap) 293s [1] "helloworld" 293s [2] "goodbye super moon" 293s 11/14 tohtml.R: sgr_to_html(x, classes = class.16, term.cap = term.cap) 293s [1] "helloworld" 293s [2] "goodbye super moon" 293s 11/14 tohtml.R: sgr_to_html(x, classes = class.256, term.cap = term.cap) 293s [1] "helloworld" 293s [2] "goodbye super moon" 293s 11/14 tohtml.R: make_styles(class.8) 293s [1] ".fg-0 {color: #000000;}" ".bg-0 {background-color: #000000;}" 293s [3] ".fg-1 {color: #800000;}" ".bg-1 {background-color: #800000;}" 293s [5] ".fg-2 {color: #008000;}" ".bg-2 {background-color: #008000;}" 293s [7] ".fg-3 {color: #808000;}" ".bg-3 {background-color: #808000;}" 293s [9] ".fg-4 {color: #000080;}" ".bg-4 {background-color: #000080;}" 293s [11] ".fg-5 {color: #800080;}" ".bg-5 {background-color: #800080;}" 293s [13] ".fg-6 {color: #008080;}" ".bg-6 {background-color: #008080;}" 293s [15] ".fg-7 {color: #C0C0C0;}" ".bg-7 {background-color: #C0C0C0;}" 293s 11/14 tohtml.R: make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, 0), 3)) 293s [1] ".fg-0 {color: #000000;}" ".bg-0 {background-color: #000000;}" 293s [3] ".fg-1 {color: #000080;}" ".bg-1 {background-color: #000080;}" 293s [5] ".fg-2 {color: #800000;}" ".bg-2 {background-color: #800000;}" 293s [7] ".fg-3 {color: #800080;}" ".bg-3 {background-color: #800080;}" 293s [9] ".fg-4 {color: #008000;}" ".bg-4 {background-color: #008000;}" 293s [11] ".fg-5 {color: #008080;}" ".bg-5 {background-color: #008080;}" 293s [13] ".fg-6 {color: #808000;}" ".bg-6 {background-color: #808000;}" 293s [15] ".fg-7 {color: #C0C0C0;}" ".bg-7 {background-color: #C0C0C0;}" 293s 11/14 tohtml.R: sgr_to_html(sgr_256()) 293s [1] "Standard" 293s [2] " 0 1 2 3 4 5 6 7" 293s [3] "" 293s [4] "High-Intensity" 293s [5] " 8 9 10 11 12 13 14 15" 293s [6] "" 293s [7] "216 Colors (Dark)" 293s [8] " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33" 293s [9] " 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69" 293s [10] " 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105" 293s [11] "124125126127128129130131132133134135136137138139140141" 293s [12] "160161162163164165166167168169170171172173174175176177" 293s [13] "196197198199200201202203204205206207208209210211212213" 293s [14] "" 293s [15] "216 Colors (Light)" 293s [16] " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51" 293s [17] " 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87" 293s [18] "106107108109110111112113114115116117118119120121122123" 293s [19] "142143144145146147148149150151152153154155156157158159" 293s [20] "178179180181182183184185186187188189190191192193194195" 293s [21] "214215216217218219220221222223224225226227228229230231" 293s [22] "" 293s [23] "Grayscale" 293s [24] "232 233 234 235 236 237 238 239 240 241 242 243" 293s [25] "244 245 246 247 248 249 250 251 252 253 254 255" 293s 11/14 tohtml.R: sgr_to_html(sgr_256(), classes = class.256) 293s [1] "Standard" 293s [2] " 0 1 2 3 4 5 6 7" 293s [3] "" 293s [4] "High-Intensity" 293s [5] " 8 9 10 11 12 13 14 15" 293s [6] "" 293s [7] "216 Colors (Dark)" 293s [8] " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33" 293s [9] " 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69" 293s [10] " 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105" 293s [11] "124125126127128129130131132133134135136137138139140141" 293s [12] "160161162163164165166167168169170171172173174175176177" 293s [13] "196197198199200201202203204205206207208209210211212213" 293s [14] "" 293s [15] "216 Colors (Light)" 293s [16] " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51" 293s [17] " 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87" 293s [18] "106107108109110111112113114115116117118119120121122123" 293s [19] "142143144145146147148149150151152153154155156157158159" 293s [20] "178179180181182183184185186187188189190191192193194195" 293s [21] "214215216217218219220221222223224225226227228229230231" 293s [22] "" 293s [23] "Grayscale" 293s [24] "232 233 234 235 236 237 238 239 240 241 242 243" 293s [25] "244 245 246 247 248 249 250 251 252 253 254 255" 293s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = NULL) 293s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s Argument `classes` must be TRUE, FALSE, or a character vector. 293s Calls: unitize_dir ... eval -> eval -> withVisible -> sgr_to_html -> to_html_int 293s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = character(7L)) 293s Error in check_classes(classes) : 293s Argument `classes` must be length 16, 32, or 512 if it is a character vector (is 7). 293s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 293s Error in check_classes(classes) : Argument `classes` contains NA values. 293s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 293s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = rep(NA_character_ 293s Error in check_classes(classes) : 293s Argument `classes` contains charcters other than ASCII letters, numbers, the hyphen, and underscore. 293s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 293s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = rep("bad class", 293s 11/14 tohtml.R: make_styles(class.8, c(1, 1, 0, 0, 0, 1, 1, 0, 0)) 293s Error in make_styles(class.8, c(1, 1, 0, 0, 0, 1, 1, 0, 0)) : 293s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 293s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 293s Error in make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, NA), 3)) : 293s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 293s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 293s 11/14 tohtml.R: make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, NA), 3)) 293s 11/14 tohtml.R: make_styles(class.8, "hello") 293s Error in make_styles(class.8, "hello") : 293s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 293s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 293s 11/14 tohtml.R: make_styles(letters, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, 0), 3)) 293s Error in check_classes(classes) : 293s Argument `classes` must be length 16, 32, or 512 if it is a character vector (is 26). 293s Calls: unitize_dir ... eval -> withVisible -> make_styles -> check_classes 293s 11/14 tohtml.R: make_styles(NULL) 293s Error in make_styles(NULL) : Argument `classes` is not character. 293s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 293s 11/14 tohtml.R: unitizer_sect("chars to escape", { 293s 11/14 tohtml.R: str.esc <- c("A\033[45mB", "A\033[43m&B") 293s 11/14 tohtml.R: to_html(str.esc) 293s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s `x` contains unescaped HTML special character '<' at index [1] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 293s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s `x` contains unescaped HTML special character '>' at index [2] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 293s [1] "A" 293s [2] "A>B" 293s [3] "A&B" 293s 11/14 tohtml.R: sgr_to_html(str.esc) 293s [1] "A" 293s [2] "A>B" 293s [3] "A&B" 293s 11/14 tohtml.R: to_html(str.esc, warn = FALSE) 293s [1] "A" 293s [2] "A>B" 293s [3] "A&B" 293s 11/14 tohtml.R: to_html(html_esc(str.esc)) 293s [1] "A<B" 293s [2] "A>B" 293s [3] "A&B" 293s 11/14 tohtml.R: str.esc2 <- c("A\033[45mB", "A\033[201mB") 293s 11/14 tohtml.R: to_html(str.esc2) 293s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s `x` contains unescaped HTML special character '<' at index [1] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 293s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 293s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s `x` contains unescaped HTML special character '>' at index [2] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 293s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 293s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [3], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 293s [1] "A" 293s [2] "A>B" 293s [3] "AB" 293s 11/14 tohtml.R: to_html(str.esc2, warn = FALSE) 293s [1] "A" 293s [2] "A>B" 293s [3] "AB" 293s 11/14 tohtml.R: unitizer_sect("helpers", { 293s 11/14 tohtml.R: html <- sgr_to_html("\033[42mHello") 293s 11/14 tohtml.R: f <- in_html(html, css = "span {background-color: #CCC;}", displ 293s 11/14 tohtml.R: readLines(f) 293s [1] "" 293s [2] "" 293s [3] "" 293s [6] "" 293s [7] "
"                                                
293s  [8] "Hello"
293s  [9] "
" 293s [10] "" 293s [11] "" 293s 11/14 tohtml.R: unlink(f) 293s 11/14 tohtml.R: in_html(html, css = "span {background-color: #CCC;}", display = 294s 11/14 tohtml.R: unitizer_sect("carry", { 294s 11/14 tohtml.R: string.2 <- c("A\033[44m", "B\033[49m", "C", "\033[39mD") 294s 11/14 tohtml.R: to_html(string.2) 294s [1] "A" 294s [2] "B" 294s [3] "C" 294s [4] "D" 294s 11/14 tohtml.R: to_html(string.2, carry = FALSE) 294s [1] "A" "B" "C" "D" 294s 11/14 tohtml.R: to_html(string.2, carry = "\033[33m") 294s [1] "A" 294s [2] "B" 294s [3] "C" 294s [4] "D" 294s 11/14 tohtml.R: to_html(string.2, carry = "\033[33m\033]8;;https://w.z\033\\") 294s [1] "A" 294s [2] "B" 294s [3] "C" 294s [4] "D" 294s 11/14 tohtml.R: string.3 <- c("A\033[44m", "\033[31mC", NA, "\033[39mD") 294s 11/14 tohtml.R: to_html(string.3) 294s [1] "A" 294s [2] "C" 294s [3] NA 294s [4] NA 294s 11/14 tohtml.R: to_html(string.3, carry = FALSE) 294s [1] "A" 294s [2] "C" 294s [3] NA 294s [4] "D" 294s 294s 12/14 trimws.R: 294s 12/14 trimws.R: library(fansi) 294s 12/14 trimws.R: unitizer_sect("Equivalence", { 294s 12/14 trimws.R: txt1 <- c("", "hello", " \t \n\r he\nl\tl\r o \r\t\n", "he\nl\tl 294s 12/14 trimws.R: identical(trimws(txt1), trimws_ctl(txt1)) 294s [1] TRUE 294s 12/14 trimws.R: identical(trimws(txt1, which = "left"), trimws_ctl(txt1, which = 294s [1] TRUE 294s 12/14 trimws.R: identical(trimws(txt1, which = "right"), trimws_ctl(txt1, which 294s [1] TRUE 294s 12/14 trimws.R: unitizer_sect("Controls", { 294s 12/14 trimws.R: txt2 <- c("\033[31m he\033[42;1m llo \033[49m\n\t ", " \033]8;;h 294s 12/14 trimws.R: trimws_ctl(txt2) 294s [1] "\033[31mhe\033[42;1m llo\033[0;1;31m" 294s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello\033[31m\033]8;;\033\\" 294s 12/14 trimws.R: trimws_ctl(txt2, which = "left") 294s [1] "\033[31mhe\033[42;1m llo \033[49m\n\t " 294s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello \033]8;;\033\\ \033[31m" 294s 12/14 trimws.R: trimws_ctl(txt2, which = "right") 294s [1] "\033[31m he\033[42;1m llo\033[0;1;31m" 294s [2] " \033]8;;https://x.yz\033\\\tLINK\033[45m hello\033[31m\033]8;;\033\\" 294s 12/14 trimws.R: trimws_ctl(txt2, ctl = c("all", "url", "osc")) 294s [1] "\033[31mhe\033[42;1m llo\033[0;1;31m" 294s [2] "8;;https://x.yz\033\\\tLINK\033[45m hello \033]8;;\033\\\033[31m" 294s Warning in trimws_ctl(txt2, ctl = c("all", "url", "osc")) : 294s Argument `x` contains a non-CSI/OSC escape sequence at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 294s 12/14 trimws.R: trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) 294s Warning in trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) :[1] "31m he\033[42;1m llo \033[49m" 294s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello \033]8;;\033\\ \033[31m" 294s 294s Argument `x` contains a non-CSI/OSC escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 294s Warning in trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) : 294s Argument `x` contains a non-CSI/OSC escape sequence at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 294s 12/14 trimws.R: trimws_ctl(" \r\a A \a\t ", ctl = c("all", "c0")) 294s Warning in trimws_ctl(" \r\a A \a\t ", ctl = c("all", "c0")) : 294s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 294s [1] "\a A \a" 294s 12/14 trimws.R: unitizer_sect("Errors / Corner caess", { 294s Error in trimws_ctl("hello", which = "top") : 294s Argument `which` must partial match one of c("both", "left", "right"). 294s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> trimws_ctl 294s 12/14 trimws.R: trimws_ctl(character()) 294s character(0) 294s 12/14 trimws.R: trimws_ctl("hello", which = "top") 294s 12/14 trimws.R: trimws_ctl("hello", whitespace = " ") 294s Error in trimws_ctl("hello", whitespace = " ") : 294s Argument `whitespace` may only be set to "[ \t\r\n]". 294s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> trimws_ctl 294s 294s 13/14 url.R: 294s 13/14 url.R: library(fansi) 294s 13/14 url.R: unitizer_sect("wrap", { 294s 13/14 url.R: txt <- "This is a link" 294s 13/14 url.R: base.st <- "%s\033]8;%s;%s\033\\%s\033]8;;\033\\%s" 294s 13/14 url.R: base.a <- "%s\033]8;%s;%s\a%s\033]8;;\a%s" 294s 13/14 url.R: url <- "https://x.yz" 294s 13/14 url.R: u0 <- sprintf(base.st, "", "", url, txt, "") 294s 13/14 url.R: u1 <- sprintf(base.a, "", "", url, txt, "") 294s 13/14 url.R: strtrim_ctl(u0, 5) 294s [1] "\033]8;;https://x.yz\033\\This \033]8;;\033\\" 294s 13/14 url.R: strwrap_ctl(u0, 5) 294s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 294s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 294s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 294s 13/14 url.R: strwrap_ctl(u0, 8) 294s [1] "\033]8;;https://x.yz\033\\This is\033]8;;\033\\" 294s [2] "\033]8;;https://x.yz\033\\a link\033]8;;\033\\" 294s 13/14 url.R: strwrap_ctl(u1, 5) 294s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 294s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 294s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 294s 13/14 url.R: u2 <- sprintf(base.st, "", "id=one", url, txt, "") 294s 13/14 url.R: u2a <- sprintf(base.st, "", "id=", url, txt, "") 294s 13/14 url.R: u2b <- sprintf(base.st, "", "id", url, txt, "") 294s 13/14 url.R: u3 <- sprintf(base.st, "", "title=ab:id=one", url, txt, "") 294s 13/14 url.R: u4 <- sprintf(base.st, "", "id=one:title=ba", url, txt, "") 294s 13/14 url.R: u6 <- sprintf(base.st, "", "id=one~title=ba", url, txt, "") 294s 13/14 url.R: strwrap_ctl(u2, 5) 294s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 294s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 294s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 294s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 294s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 294s 13/14 url.R: strwrap_ctl(u3, 5) 294s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 294s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 294s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 294s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 294s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 294s 13/14 url.R: strwrap_ctl(u4, 5) 294s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 294s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 294s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 294s 13/14 url.R: strwrap_ctl(u6, 5) 294s [1] "\033]8;id=one~title=ba;https://x.yz\033\\This\033]8;;\033\\" 294s [2] "\033]8;id=one~title=ba;https://x.yz\033\\is a\033]8;;\033\\" 294s [3] "\033]8;id=one~title=ba;https://x.yz\033\\link\033]8;;\033\\" 294s 13/14 url.R: u7 <- sprintf(base.st, "AB", "id=one", url, txt, "CD") 295s 13/14 url.R: strwrap_ctl(u7, 8) 295s [1] "AB\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 295s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 295s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\CD" 295s 13/14 url.R: txt2 <- "This\033[34m is a link\033[49m" 295s 13/14 url.R: u8 <- sprintf(base.st, "A\033[43mB", "", url, txt2, "CD") 295s 13/14 url.R: strwrap_ctl(u8, 7) 295s [1] "A\033[43mB\033]8;;https://x.yz\033\\This\033[0m\033]8;;\033\\" 295s [2] "\033[34;43m\033]8;;https://x.yz\033\\is a\033[0m\033]8;;\033\\" 295s [3] "\033[34;43m\033]8;;https://x.yz\033\\link\033[49m\033]8;;\033\\CD\033[0m" 295s 13/14 url.R: url2 <- ";wow;https://x.yz" 295s 13/14 url.R: u9 <- sprintf(base.st, "", "", url2, txt, "") 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 13/14 url.R: strwrap_ctl(u9, 5) 295s [1] "\033]8;;wow;https://x.yz\033\\This\033]8;;\033\\" 295s [2] "\033]8;;wow;https://x.yz\033\\is a\033]8;;\033\\" 295s [3] "\033]8;;wow;https://x.yz\033\\link\033]8;;\033\\" 295s 13/14 url.R: u10 <- sprintf(base.st, "", "\a", url, txt, "") 295s 13/14 url.R: u11 <- sprintf(base.st, "", "\016", url, txt, "") 295s 13/14 url.R: Encoding(u10) <- "UTF-8" 295s 13/14 url.R: Encoding(u11) <- "UTF-8" 295s 13/14 url.R: u11a <- sprintf(base.st, "", "hello", url, txt, "") 295s 13/14 url.R: strwrap_ctl(u10, 5) 295s [1] ";https://x.yz\033\\This"Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a non-CSI/OSC escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s "is a" 295s [3] "link" 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s 13/14 url.R: strwrap_ctl(u11, 5) 295s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 295s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 295s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a CSI SGR sequence with unknown substrings or a OSC hyperlink with unsupported parameters at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 13/14 url.R: strwrap_ctl(u11a, 5) 295s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 295s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 295s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 295s 13/14 url.R: nchar_ctl(c(u10, u11, u11a)) 295s [1] 27 14 14 295s 13/14 url.R: u12 <- sprintf(base.st, "", "", "\b", txt, "") 295s 13/14 url.R: u12a <- sprintf(base.st, "", "", "\200", txt, "") 295s 13/14 url.R: Encoding(u12) <- "UTF-8" 295s 13/14 url.R: Encoding(u12a) <- "UTF-8" 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 13/14 url.R: strwrap_ctl(u12, 5) 295s [1] "This" "is a" "link" 295s 13/14 url.R: strwrap_ctl(u12a, 5) 295s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 295s Calls: unitize_dir ... eval -> eval -> withVisible -> strwrap_ctl -> strwrap2_ctl 295s 13/14 url.R: nchar_ctl(c(u12, u12a)) 295s [1] 14 14 295s 13/14 url.R: nchar_ctl(c(u12, u12a), allowNA = TRUE) 295s [1] 14 14 295s 13/14 url.R: u13 <- "a\033]8;;THE END" 295s 13/14 url.R: u13a <- "a\033];;THE END" 295s 13/14 url.R: u14 <- "a\033]8;;THE END\033]8;;NO?" 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 13/14 url.R: u15 <- "a\033]8;;THE END\033]8;;\033[" 295s 13/14 url.R: strwrap_ctl(u13, 5) 295s [1] "a" 295s 13/14 url.R: strwrap_ctl(u13, 5, terminate = FALSE) 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s [1] "a\033]8;;THE END" 295s 13/14 url.R: strwrap_ctl(u13a, 5) 295s [1] "a\033];;THE END" 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 13/14 url.R: strwrap_ctl(u14, 5) 295s [1] "a" 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 13/14 url.R: strwrap_ctl(u15, 5) 295s [1] "a" 295s 13/14 url.R: nchar_ctl(c(u13, u13a, u14, u15)) 295s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [3], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [4], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s [1] 1 1 1 1 295s 13/14 url.R: u16 <- sprintf(base.st, "", "", "", txt, "") 295s 13/14 url.R: u17 <- sprintf(base.st, "", "", "", "", "") 295s 13/14 url.R: strwrap_ctl(u16, 5) 295s [1] "This" "is a" "link" 295s 13/14 url.R: strwrap_ctl(u17, 5) 295s [1] "" 295s 13/14 url.R: strwrap_ctl(u0, 5, terminate = FALSE) 295s [1] "\033]8;;https://x.yz\033\\This" 295s [2] "\033]8;;https://x.yz\033\\is a" 295s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 295s 13/14 url.R: open <- "\033]8;;ab.c\033\\" 295s 13/14 url.R: u21 <- c("he\033[44mllo \033]8;;de.f\033\\world", "night moon") 295s 13/14 url.R: strwrap_ctl(u21, 5, carry = "\033[33m") 295s [1] "\033[33mhe\033[44mllo\033[0m" 295s [2] "\033[33;44m\033]8;;de.f\033\\world\033[0m\033]8;;\033\\" 295s [3] "\033[33;44m\033]8;;de.f\033\\night\033[0m\033]8;;\033\\" 295s [4] "\033[33;44m\033]8;;de.f\033\\moon\033[0m\033]8;;\033\\" 295s 13/14 url.R: strwrap_ctl(u21, 5, carry = paste0(open, "\033[33m")) 295s [1] "\033[33m\033]8;;ab.c\033\\he\033[44mllo\033[0m\033]8;;\033\\" 295s [2] "\033[33;44m\033]8;;de.f\033\\world\033[0m\033]8;;\033\\" 295s [3] "\033[33;44m\033]8;;de.f\033\\night\033[0m\033]8;;\033\\" 295s [4] "\033[33;44m\033]8;;de.f\033\\moon\033[0m\033]8;;\033\\" 295s 13/14 url.R: unitizer_sect("normalize", { 295s 13/14 url.R: u18 <- "A\033]8;id=a;x.yz\033\\B\033]8;id=a;x.yz\033\\C\033]8;;\033 295s 13/14 url.R: normalize_state(u18) 295s [1] "A\033]8;id=a;x.yz\033\\BC\033]8;;\033\\D" 295s 13/14 url.R: u18a <- "A\033]8;id=a;x.yz\033\\B\033]8;;\033\\\033]8;id=a;x.yz\033 295s 13/14 url.R: normalize_state(u18a) 295s [1] "A\033]8;id=a;x.yz\033\\BC\033]8;;\033\\D" 295s 13/14 url.R: u18b <- "A\033]8;id=a;x.yz\033\\\033]8;id=b;x.yz\033\\C\033]8;;\033 295s 13/14 url.R: normalize_state(u18b) 295s [1] "A\033]8;id=b;x.yz\033\\C\033]8;;\033\\D" 295s 13/14 url.R: u19 <- "A\033]8;id=a;x.yz\033\\B\033]8;id=b;x.yz\033\\C\033]8;;\033 295s 13/14 url.R: u20 <- "A\033]8;id=a;x.yz\033\\B\033]8;id=a;w.yz\033\\C\033]8;;\033 295s 13/14 url.R: normalize_state(u19) 295s [1] "A\033]8;id=a;x.yz\033\\B\033]8;id=b;x.yz\033\\C\033]8;;\033\\D" 295s 13/14 url.R: normalize_state(u20) 295s [1] "A\033]8;id=a;x.yz\033\\B\033]8;id=a;w.yz\033\\C\033]8;;\033\\D" 295s 13/14 url.R: unitizer_sect("substr", { 295s 13/14 url.R: substr_ctl(u0, 6, 9) 295s [1] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 295s 13/14 url.R: substr_ctl(u0, 6, 9, terminate = FALSE) 295s [1] "\033]8;;https://x.yz\033\\is a" 295s 13/14 url.R: substr_ctl("hello world", 3, 8, carry = "\033]8;;a.b\033\\") 295s [1] "\033]8;;a.b\033\\llo wo\033]8;;\033\\" 295s 13/14 url.R: np.bytes <- c("A\033]8;a=\r:id=c;x.y\033\\B", "A\033]8;a=c:id=\r;x. 295s 13/14 url.R: Encoding(np.bytes) <- "UTF-8" 295s 13/14 url.R: substr_ctl(np.bytes[1:3], 2, 2) 295s [1] "\033]8;id=c;x.y\033\\B\033]8;;\033\\" 295s [2] "\033]8;;x.y\033\\B\033]8;;\033\\" 295s [3] "B" 295s 13/14 url.R: substr_ctl(np.bytes[4], 2, 2) 295s 13/14 url.R: unitizer_sect("tohtml", { 295s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 295s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 295s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 295s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [3], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 295s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 295s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 295s 13/14 url.R: to_html(u0) 295s [1] "This is a link" 295s 13/14 url.R: to_html("A\033[44mB\033]8;;x.y\033\\C\033[33m\033]8;;\033\\D") 295s [1] "ABCD" 295s 13/14 url.R: to_html("A\033[44mB\033]8;;x.y\033\\C\033[33m\033]8;;w.z\033\\D") 295s [1] "ABCD" 295s 13/14 url.R: u23 <- c("A \033[44mB \033]8;;x.y\033\\C \033[33m\033]8;;w.z\033\\D 295s 13/14 url.R: to_html(u23) 295s [1] "A B C D" 295s [2] "E F G" 295s [3] "H I" 295s 13/14 url.R: to_html(strwrap_ctl(u23, 4)) 295s [1] "A B" 295s [2] "C D" 295s [3] "E F" 295s [4] "G" 295s [5] "H I" 295s 13/14 url.R: unitizer_sect("osc", { 295s 13/14 url.R: nchar_ctl("\033]hello \aworld") 295s [1] 5 295s 13/14 url.R: nchar_ctl("\033]hello \033\\world") 295s [1] 5 295s 13/14 url.R: nchar_ctl("\033]hello \033\\world", ctl = c("all", "osc")) 295s [1] 11 295s 13/14 url.R: x <- "\033]hello\200\033\\world" 295s 13/14 url.R: Encoding(x) <- "UTF-8" 295s 13/14 url.R: nchar_ctl(x) 295s [1] 5 295s 13/14 url.R: nchar_ctl("\033]hello world") 295s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 295s Argument `x` contains a malformed CSI or OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s [1] 0 295s 295s 14/14 wrap.R: 295s 14/14 wrap.R: library(unitizer) 295s 14/14 wrap.R: library(fansi) 295s 14/14 wrap.R: unitizer_sect("Basic wrap", { 295s 14/14 wrap.R: hello.0 <- "hello world this is a lovely day" 295s 14/14 wrap.R: strwrap_ctl(hello.0, width = 10) 295s [1] "hello" "world" "this is a" "lovely" "day" 295s 14/14 wrap.R: hello.1 <- "hello world this is. a lovely day." 295s 14/14 wrap.R: strwrap_ctl(hello.1, width = 10) 295s [1] "hello" "world" "this is." "a lovely" "day." 295s 14/14 wrap.R: hello.2 <- "hello\rworld\rthis is. a lovely day." 295s 14/14 wrap.R: strwrap_ctl(hello.2, width = 10) 295s [1] "hello\rworld\rthis" "is. a" "lovely" 295s [4] "day." 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s 14/14 wrap.R: hello.3 <- "hello\rworld\nthis is. a lovely\n day." 295s 14/14 wrap.R: strwrap_ctl(hello.3, width = 10) 295s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 295s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 295s [1] "hello\rworld" "this is." "a lovely" "day." 295s 14/14 wrap.R: hello.4 <- " hello world this is a lovely day." 295s 14/14 wrap.R: strwrap_ctl(hello.4, width = 10) 295s [1] "hello" "world" "this is a" "lovely" "day." 295s 14/14 wrap.R: hello.5 <- "hello.\n\n\nworld" 295s 14/14 wrap.R: strwrap_ctl(hello.5, width = 10) 295s [1] "hello." "" "world" 295s 14/14 wrap.R: hello.5a <- "hello.\n \n \nworld" 295s 14/14 wrap.R: strwrap_ctl(hello.5a, width = 10) 295s [1] "hello." "" "world" 295s 14/14 wrap.R: hello.6a <- "hello.\" there" 295s 14/14 wrap.R: strwrap_ctl(hello.6a, width = 40) 295s [1] "hello.\" there" 295s 14/14 wrap.R: hello.6b <- "hello.' there" 295s 14/14 wrap.R: strwrap_ctl(hello.6b, width = 40) 295s [1] "hello.' there" 295s 14/14 wrap.R: hello.6c <- "hello.) there" 295s 14/14 wrap.R: strwrap_ctl(hello.6c, width = 40) 295s [1] "hello.) there" 295s 14/14 wrap.R: unitizer_sect("Basic Ansi", { 295s 14/14 wrap.R: hello2.0 <- paste0("hello ", red, "world ", grn.bg, " this is a l 295s 14/14 wrap.R: strwrap_ctl(hello2.0, 10) 295s [1] "hello" "\033[31mworld\033[0m" 295s [3] "\033[31;42mthis is a\033[0m" "\033[31;42mlovely\033[0mday." 295s 14/14 wrap.R: strwrap_ctl(strip_ctl(hello2.0, "sgr"), 10) 295s [1] "hello" "world" "this is a" "lovelyday." 295s 14/14 wrap.R: hello2.1 <- paste0("hello \033[41mworld\033[m how are you today") 295s 14/14 wrap.R: hello2.2 <- paste0("hello \033[41mworld\033[0m how are you today") 295s 14/14 wrap.R: strwrap_ctl(hello2.1, 15) 295s [1] "hello \033[41mworld\033[0m" "how are you" 295s [3] "today" 295s 14/14 wrap.R: hello.bold.faint <- paste0("hello \033[1mbolded once upon a time\0 295s 14/14 wrap.R: strwrap_ctl(hello.bold.faint, 10) 295s [1] "hello" "\033[1mbolded\033[0m" 295s [3] "\033[1monce upon\033[0m" "\033[1ma time\033[0m" 295s [5] "normal" "\033[2mfainting\033[0m" 295s [7] "\033[2min\033[0m" "\033[2mfaintness\033[0m" 295s [9] "\033[2moh no\033[0m" "normal" 295s 14/14 wrap.R: hello.blinky <- paste0("hello \033[5mbliking slowly oh my\033[25m 295s 14/14 wrap.R: strwrap_ctl(hello.blinky, 10) 295s [1] "hello" "\033[5mbliking\033[0m" 295s [3] "\033[5mslowly oh\033[0m" "\033[5mmy\033[25m normal" 295s [5] "\033[6mblinking\033[0m" "\033[6mquickly\033[0m" 295s [7] "\033[6moh my\033[0m" "normal" 295s 14/14 wrap.R: strwrap_ctl(hello.blinky, 10, terminate = FALSE) 295s [1] "hello" "\033[5mbliking" "slowly oh" 295s [4] "my\033[25m normal" "\033[6mblinking" "quickly" 295s [7] "oh my" "\033[0mnormal" 295s 14/14 wrap.R: hello2.3 <- c(hello2.1, hello2.2) 295s 14/14 wrap.R: strwrap_ctl(hello2.3, 10, simplify = FALSE) 295s [[1]] 295s [1] "hello" "\033[41mworld\033[m how" 295s [3] "are you" "today" 295s 295s [[2]] 295s [1] "hello" "\033[41mworld\033[0m how" 295s [3] "are you" "today" 295s 295s 14/14 wrap.R: strwrap2_ctl(hello2.3, 10, simplify = FALSE) 295s [[1]] 295s [1] "hello" "\033[41mworld\033[m how" 295s [3] "are you" "today" 295s 295s [[2]] 295s [1] "hello" "\033[41mworld\033[0m how" 295s [3] "are you" "today" 295s 295s 14/14 wrap.R: strwrap_ctl("aliquip \033[31mex ea commodo consequat\033[0m\n", 295s [1] "aliquip \033[31mex ea commodo\033[0m" 295s [2] "\033[31mconsequat\033[0m" 295s 14/14 wrap.R: unitizer_sect("Long Wrap", { 295s 14/14 wrap.R: wrap.csi <- strwrap_ctl(lorem.r.thanks, 40) 295s 14/14 wrap.R: nchar(strip_ctl(wrap.csi, "sgr")) 295s [1] 34 37 30 13 0 37 38 9 0 39 36 37 15 0 35 39 37 37 31 25 0 39 37 38 39 295s [26] 5 0 39 36 34 33 36 39 27 0 31 29 37 39 35 34 37 34 31 36 25 37 295s 14/14 wrap.R: nchar(wrap.csi) 295s [1] 44 37 30 13 0 68 56 17 0 98 55 57 25 0 61 47 63 90 72 61 0 68 37 38 49 295s [26] 5 0 75 54 47 49 64 67 45 0 91 78 87 88 74 73 86 54 60 75 25 67 295s 14/14 wrap.R: unitizer_sect("Other Escapes", { 296s 14/14 wrap.R: strwrap_ctl("hello \033kworld yohoo", 12) 296s [1] "hello \033kworld" "yohoo" 296s 14/14 wrap.R: strwrap_ctl("hello \033\nworld yohoo", 12) 296s [1] "hello \033\nworld" "yohoo" 296s 14/14 wrap.R: c0 <- "hello\037\037\037\037\037\037 world yohoo" 296s 14/14 wrap.R: Encoding(c0) <- "UTF-8" 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a non-CSI/OSC escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap_ctl(c0, 12) 296s [1] "hello\037\037\037\037\037\037 world" "yohoo" 296s 14/14 wrap.R: strwrap_ctl("hello \033[999mworld", 6) 296s [1] "hello" "world" 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap_ctl("hello \033[31#31mworld", 6) 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence or OSC hyperlink with invalid substrings at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s [1] "hello" "world" 296s 14/14 wrap.R: strwrap_ctl("hello \033[999nworld", 6) 296s [1] "hello" "\033[999nworld" 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap_ctl("hello \033[999mworld", 6, warn = FALSE) 296s [1] "hello" "world" 296s 14/14 wrap.R: strwrap_ctl("hello \033[31#31mworld", 6, warn = FALSE) 296s [1] "hello" "world" 296s 14/14 wrap.R: strwrap_ctl("hello \033[999nworld", 6, warn = FALSE) 296s [1] "hello" "\033[999nworld" 296s 14/14 wrap.R: unitizer_sect("prefix / initial simple", { 296s 14/14 wrap.R: lorem.sentence <- unlist(strsplit_ctl(lorem, "[.]\\K ", perl = TRU 296s 14/14 wrap.R: lorem.sentence <- gsub(",", ",\n", lorem.sentence, fixed = TRUE) 296s 14/14 wrap.R: lorem.para <- c(paste0(lorem.sentence[1:2], collapse = "\n\n"), 296s 14/14 wrap.R: strwrap_ctl(lorem.para, indent = 2) 296s [1] " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" 296s [2] "eiusmod tempor incididunt ut labore et dolore magna aliqua." 296s [3] "" 296s [4] " Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris" 296s [5] "nisi ut aliquip ex ea commodo consequat." 296s [6] " Duis aute irure dolor in reprehenderit in voluptate velit esse cillum" 296s [7] "dolore eu fugiat nulla pariatur." 296s [8] "" 296s [9] " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 296s [10] "officia deserunt mollit anim id est laborum." 296s 14/14 wrap.R: strwrap_ctl(lorem.para, exdent = 2) 296s [1] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod" 296s [2] " tempor incididunt ut labore et dolore magna aliqua." 296s [3] "" 296s [4] "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi" 296s [5] " ut aliquip ex ea commodo consequat." 296s [6] "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum" 296s [7] " dolore eu fugiat nulla pariatur." 296s [8] "" 296s [9] "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 296s [10] " officia deserunt mollit anim id est laborum." 296s 14/14 wrap.R: strwrap_ctl(lorem.para, indent = 4, exdent = 2) 296s [1] " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" 296s [2] " eiusmod tempor incididunt ut labore et dolore magna aliqua." 296s [3] "" 296s [4] " Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris" 296s [5] " nisi ut aliquip ex ea commodo consequat." 296s [6] " Duis aute irure dolor in reprehenderit in voluptate velit esse" 296s [7] " cillum dolore eu fugiat nulla pariatur." 296s [8] "" 296s [9] " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 296s [10] " officia deserunt mollit anim id est laborum." 296s 14/14 wrap.R: unitizer_sect("prefix / initial with ESC", { 296s 14/14 wrap.R: pre <- "\033[32m+ \033[0m" 296s 14/14 wrap.R: ini <- "\033[33m> \033[0m" 296s 14/14 wrap.R: hello.8a <- "hello world yohoo" 296s 14/14 wrap.R: wrap.csi.2 <- strwrap_ctl(hello.8a, 14, prefix = pre, initial = in 296s 14/14 wrap.R: wrap.csi.2 296s [1] "\033[33m> \033[0mhello world" "\033[32m+ \033[0myohoo" 296s 14/14 wrap.R: hello.8b <- c(hello.8a, "oh my this has 2 elements") 296s 14/14 wrap.R: wrap.csi.3 <- strwrap_ctl(hello.8b, 14, prefix = pre, initial = in 296s 14/14 wrap.R: wrap.csi.3 296s [1] "\033[33m> \033[0mhello world" "\033[32m+ \033[0myohoo" 296s [3] "\033[32m+ \033[0moh my this" "\033[32m+ \033[0mhas 2" 296s [5] "\033[32m+ \033[0melements" 296s 14/14 wrap.R: unitizer_sect("wrap2", { 296s 14/14 wrap.R: hello.9a <- "hello\t\033[41mred\033[49m\tworld" 296s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12) 296s [1] "hello \033[41mred\033[0m" "world" 296s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12, tabs.as.spaces = TRUE) 296s [1] "hello \033[41mred\033[49m" " world" 296s 14/14 wrap.R: strwrap2_ctl(hello.9a, 13, tabs.as.spaces = TRUE) 296s [1] "hello \033[41mred\033[49m " " world" 296s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12, tabs.as.spaces = TRUE, tab.stops = c(6, 296s [1] "hello \033[41mred\033[49m " " " 296s [3] "world" 296s 14/14 wrap.R: r.thanks <- lorem.r.thanks.2 296s 14/14 wrap.R: bg <- ceiling(seq_along(r.thanks)/length(r.thanks) * 215) + 16 296s 14/14 wrap.R: fg <- ifelse((((bg - 16)%/%18)%%2), 30, 37) 296s 14/14 wrap.R: tpl <- "\033[%d;48;5;%dm%s\033[49m" 296s 14/14 wrap.R: nz <- nzchar(r.thanks) 296s 14/14 wrap.R: r.thanks[nz] <- sprintf(tpl, fg[nz], bg[nz], r.thanks[nz]) 296s 14/14 wrap.R: r.col <- paste0(r.thanks, collapse = "\n") 296s 14/14 wrap.R: r.wrap <- strwrap2_ctl(r.col, 35, pad.end = " ", wrap.always = TRU 296s 14/14 wrap.R: (r.wrap) 296s [1] "\033[37;48;5;23mMany more, too numerous to mention\033[0m" 296s [2] "\033[37;48;5;23mhere, have contributed by sending \033[0m" 296s [3] "\033[37;48;5;23mbug\033[49m \033[37;48;5;30mreports and suggesting various\033[0m" 296s [4] "\033[37;48;5;30mimprovements.\033[49m \033[0m" 296s [5] "\033[37m \033[0m" 296s [6] "\033[30;48;5;43mSimon Davies whilst at the \033[0m" 296s [7] "\033[30;48;5;43mUniversity of Auckland wrote the \033[0m" 296s [8] "\033[30;48;5;43moriginal\033[49m \033[30;48;5;50mversion of glm().\033[49m \033[0m" 296s [9] "\033[30m \033[0m" 296s [10] "\033[37;48;5;64mJulian Harris and Wing Kwong \033[0m" 296s [11] "\033[37;48;5;64m(Tiki) Wan whilst at the \033[0m" 296s [12] "\033[37;48;5;64mUniversity of\033[49m \033[30;48;5;70mAuckland assisted \033[0m" 296s [13] "\033[30;48;5;70mRoss Ihaka with the original \033[0m" 296s [14] "\033[30;48;5;70mMacintosh port.\033[49m \033[0m" 296s [15] "\033[30m \033[0m" 296s [16] "\033[30;48;5;84mR was inspired by the S \033[0m" 296s [17] "\033[30;48;5;84menvironment which has been \033[0m" 296s [18] "\033[30;48;5;84mprincipally\033[49m \033[37;48;5;90mdeveloped by John \033[0m" 296s [19] "\033[37;48;5;90mChambers, with substantial input \033[0m" 296s [20] "\033[37;48;5;90mfrom Douglas Bates,\033[49m \033[37;48;5;97mRick Becker, \033[0m" 296s [21] "\033[37;48;5;97mBill Cleveland, Trevor Hastie, \033[0m" 296s [22] "\033[37;48;5;97mDaryl Pregibon and\033[49m \033[37;48;5;104mAllan Wilks.\033[49m \033[0m" 296s [23] "\033[37m \033[0m" 296s [24] "\033[30;48;5;117mA special debt is owed to John \033[0m" 296s [25] "\033[30;48;5;117mChambers who has graciously \033[0m" 296s [26] "\033[30;48;5;117mcontributed\033[49m \033[37;48;5;124madvice and \033[0m" 296s [27] "\033[37;48;5;124mencouragement in the early days of\033[0m" 296s [28] "\033[37;48;5;124mR and later became a\033[49m \033[37;48;5;131mmember of the\033[0m" 296s [29] "\033[37;48;5;131mcore team.\033[49m \033[0m" 296s [30] "\033[37m \033[0m" 296s [31] "\033[30;48;5;158mThe R Foundation may decide to \033[0m" 296s [32] "\033[30;48;5;158mgive out \033[0m" 296s [33] "\033[30;48;5;158m@R-project.org\033[49m \033[0m" 296s [34] "\033[37;48;5;164memail addresses to contributors to\033[0m" 296s [35] "\033[37;48;5;164mthe R Project (even without making\033[0m" 296s [36] "\033[37;48;5;164mthem\033[49m \033[37;48;5;171mmembers of the R Foundation) \033[0m" 296s [37] "\033[37;48;5;171mwhen in the view of the R \033[0m" 296s [38] "\033[37;48;5;171mFoundation this\033[49m \033[30;48;5;178mwould help advance\033[0m" 296s [39] "\033[30;48;5;178mthe R project.\033[49m \033[0m" 296s [40] "\033[30m \033[0m" 296s [41] "\033[30;48;5;191mThe R Core Group, Roger Bivand, \033[0m" 296s [42] "\033[30;48;5;191mJennifer Bryan, Di Cook, Dirk \033[0m" 296s [43] "\033[30;48;5;191mEddelbuettel,\033[49m \033[37;48;5;198mJohn Fox, Bettina \033[0m" 296s [44] "\033[37;48;5;198mGrn, Frank Harrell, Torsten \033[0m" 296s [45] "\033[37;48;5;198mHothorn, Stefano Iacus,\033[49m \033[37;48;5;205mJulie \033[0m" 296s [46] "\033[37;48;5;205mJosse, Balasubramanian Narasimhan,\033[0m" 296s [47] "\033[37;48;5;205mMarc Schwartz, Heather Turner,\033[49m \033[0m" 296s [48] "\033[37;48;5;211mBill Venables, Hadley Wickham and \033[0m" 296s [49] "\033[37;48;5;211mAchim Zeileis are the ordinary \033[0m" 296s [50] "\033[37;48;5;211mmembers of\033[49m \033[30;48;5;218mthe R Foundation.\033[49m \033[30;48;5;225mIn \033[0m" 296s [51] "\033[30;48;5;225maddition, David Meyer and Simon \033[0m" 296s [52] "\033[30;48;5;225mWood are also e-addressable by\033[49m \033[0m" 296s [53] "\033[30;48;5;231m.@R-project.o\033[0m" 296s [54] "\033[30;48;5;231mrg.\033[49m \033[0m" 296s 14/14 wrap.R: hello.9b <- "\033[41mhello\n\nworld." 296s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, pad.end = " ") 296s [1] "\033[41mhello \033[0m" "\033[41m \033[0m" "\033[41mworld. \033[0m" 296s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, pad.end = 0) 296s [1] "\033[41mhello00\033[0m" "\033[41m0000000\033[0m" "\033[41mworld.0\033[0m" 296s 14/14 wrap.R: hello.9b <- " \033[41mhello world." 296s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, strip.spaces = FALSE) 296s [1] " \033[41mhello\033[0m" "\033[41m world.\033[0m" 296s 14/14 wrap.R: hello.9c <- "\033[41m hello world." 296s 14/14 wrap.R: ws.0 <- "hello worldza" 296s 14/14 wrap.R: ws.1 <- "hello \t worldza" 296s 14/14 wrap.R: ws.2 <- "hello \n worldza" 296s 14/14 wrap.R: strwrap2_sgr(ws.0, 7, strip.spaces = FALSE) 296s [1] "hello " " " "worldza" 296s 14/14 wrap.R: strwrap2_sgr(ws.0, 7, strip.spaces = FALSE, wrap.always = TRUE) 296s [1] "hello " " " "worldz" "a" 296s 14/14 wrap.R: strwrap2_sgr(ws.0, 6, strip.spaces = FALSE) 296s [1] "hello" " " "worldza" 296s 14/14 wrap.R: strwrap2_sgr(ws.0, 6, strip.spaces = FALSE, wrap.always = TRUE) 296s [1] "hello" " " "world" "za" 296s 14/14 wrap.R: strwrap2_sgr(ws.1, 7, strip.spaces = FALSE) 296s [1] "hello " "\t " "worldza" 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap2_sgr(ws.1, 7, strip.spaces = FALSE, wrap.always = TRUE) 296s [1] "hello " "\t " "worldz" "a" 296s 14/14 wrap.R: strwrap2_sgr(ws.1, 6, strip.spaces = FALSE) 296s [1] "hello" " \t " "worldza" 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap2_sgr(ws.1, 6, strip.spaces = FALSE, wrap.always = TRUE) 296s [1] "hello" " \t " "world" "za" 296s 14/14 wrap.R: strwrap2_sgr(" hello world ", 7, strip.spaces = FALSE) 296s [1] " hello" " world" " " 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap2_sgr("\thello\tworld\t", 7, strip.spaces = FALSE) 296s [1] "\thello" "\tworld" "\t" 296s 14/14 wrap.R: strwrap2_sgr("\nhello\nworld\n", 7, strip.spaces = FALSE) 296s [1] "" "hello" "world" "" 296s 14/14 wrap.R: unitizer_sect("_sgr", { 296s 14/14 wrap.R: hello.9e <- c("hello\t\033[91mworld\033[m\t\033[38;2;31;42;4mworld 296s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, term.cap = "256") 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s [1] "hello \033[91mworld\033[0m" 296s [2] "\033[38;2;31;42;4mworld\033[0m" 296s [3] "\033[38;2;31;42;4mboohaythere\033[0m" 296s [4] "asdfasdfasdfasdf" 296s 14/14 wrap.R: hello.9f <- "hello \033[91mworld boohaythereyowza" 296s 14/14 wrap.R: strwrap2_sgr(hello.9f, 12, prefix = "++", initial = ">>", wrap.alw 296s [1] ">>hello ~~~" "\033[91m++world ~~~\033[0m" 296s [3] "\033[91m++boohaythe\033[0m" "\033[91m++reyowza~~\033[0m" 296s 14/14 wrap.R: strwrap2_sgr(hello.9e, 12, tabs.as.spaces = TRUE, tab.stops = c(6, 296s [[1]] 296s [1] ">> hello ~" 296s [2] "\033[91m++ world\033[m " 296s [3] "++ \033[38;2;31;42;4mworld\033[0m" 296s [4] "\033[38;2;31;42;4m++ ~~~~~~~\033[0m" 296s [5] "\033[38;2;31;42;4m++ boohayth\033[0m" 296s [6] "\033[38;2;31;42;4m++ ere~~~~~\033[0m" 296s 296s [[2]] 296s [1] "++ asdfasd" "++ fasdfasd" "++ f~~~~~~~" 296s 296s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, warn = FALSE, indent = 2, exdent = 1, 296s [[1]] 296s [1] ">> hello" 296s [2] "\033[91m++ world\033[0m" 296s [3] "\033[38;2;31;42;4m++ world\033[0m" 296s [4] "\033[38;2;31;42;4m++ boohaythere\033[0m" 296s 296s [[2]] 296s [1] "++ asdfasdfasdfasdf" 296s 296s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, indent = 2, exdent = 1, prefix = "++", 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s [[1]] 296s [1] ">> hello" 296s [2] "\033[91m++ world\033[0m" 296s [3] "\033[38;2;31;42;4m++ world\033[0m" 296s [4] "\033[38;2;31;42;4m++ boohaythere\033[0m" 296s 296s [[2]] 296s [1] "++ asdfasdfasdfasdf" 296s 296s 14/14 wrap.R: unitizer_sect("long words", { 296s 14/14 wrap.R: hello.long <- "\033[31mhelloworld\033[mlongword" 296s 14/14 wrap.R: strwrap_ctl(hello.long, 8) 296s [1] "\033[31mhelloworld\033[mlongword" 296s 14/14 wrap.R: strwrap2_ctl(hello.long, 8, wrap.always = TRUE) 296s [1] "\033[31mhellowo\033[0m" "\033[31mrld\033[mlong" "word" 296s 14/14 wrap.R: unitizer_sect("rare escapes", { 296s 14/14 wrap.R: hello.border <- c("hello \033[51mworld woohoo\033[54m woohoo", 296s 14/14 wrap.R: strwrap_ctl(hello.border, 12) 296s [1] "hello \033[51mworld\033[0m" "\033[51mwoohoo\033[0m" 296s [3] "woohoo" "hello \033[52mworld\033[0m" 296s [5] "\033[52mwoohoo\033[0m" "woohoo" 296s [7] "hello \033[53mworld\033[0m" "\033[53mwoohoo\033[0m" 296s [9] "woohoo" 296s 14/14 wrap.R: strwrap_ctl(hello.border, 12, terminate = FALSE) 296s [1] "hello \033[51mworld" "woohoo" "\033[0mwoohoo" 296s [4] "hello \033[52mworld" "woohoo" "\033[0mwoohoo" 296s [7] "hello \033[53mworld" "woohoo" "\033[0mwoohoo" 296s 14/14 wrap.R: hello.ideogram <- c("hello \033[60mworld woohoo\033[65m woohoo", 296s 14/14 wrap.R: strwrap_ctl(hello.ideogram, 12, terminate = FALSE) 296s [1] "hello \033[60mworld" "woohoo" "\033[0mwoohoo" 296s [4] "hello \033[61mworld" "woohoo" "\033[0mwoohoo" 296s [7] "hello \033[62mworld" "woohoo" "\033[0mwoohoo" 296s [10] "hello \033[63mworld" "woohoo" "\033[0mwoohoo" 296s [13] "hello \033[64mworld" "woohoo" "\033[0mwoohoo" 296s 14/14 wrap.R: hello.font <- c("hello \033[10mworld woohoo\033[10m woohoo", 296s 14/14 wrap.R: strwrap_ctl(hello.font, 12, terminate = FALSE) 296s [1] "hello \033[10mworld" "woohoo" "woohoo" 296s [4] "hello \033[11mworld" "woohoo" "\033[0mwoohoo" 296s [7] "hello \033[12mworld" "woohoo" "\033[0mwoohoo" 296s [10] "hello \033[13mworld" "woohoo" "\033[0mwoohoo" 296s [13] "hello \033[14mworld" "woohoo" "\033[0mwoohoo" 296s [16] "hello \033[15mworld" "woohoo" "\033[0mwoohoo" 296s [19] "hello \033[16mworld" "woohoo" "\033[0mwoohoo" 296s [22] "hello \033[17mworld" "woohoo" "\033[0mwoohoo" 296s [25] "hello \033[18mworld" "woohoo" "\033[0mwoohoo" 296s [28] "hello \033[19mworld" "woohoo" "\033[0mwoohoo" 296s 14/14 wrap.R: unitizer_sect("term cap and bright", { 296s 14/14 wrap.R: getOption("fansi.term.cap", dflt_term_cap()) 296s [1] "bright" "256" 296s 14/14 wrap.R: hello.bright <- "\033[42mhello \033[103mworld wowza\033[49m" 296s 14/14 wrap.R: strwrap_ctl(hello.bright, 13) 296s [1] "\033[42mhello \033[103mworld\033[0m" "\033[103mwowza\033[0m" 296s 14/14 wrap.R: strwrap_ctl(hello.bright, 13, term.cap = character()) 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s [1] "\033[42mhello \033[103mworld\033[0m" "\033[103mwowza\033[0m" 296s 14/14 wrap.R: hello.255 <- "\033[42mhello \033[48;5;47mworld wowza\033[49m" 296s 14/14 wrap.R: strwrap_ctl(hello.255, 13) 296s [1] "\033[42mhello \033[48;5;47mworld\033[0m" 296s [2] "\033[48;5;47mwowza\033[0m" 296s 14/14 wrap.R: strwrap_ctl(hello.255, 13, term.cap = character()) 296s [1] "\033[42mhello \033[48;5;47mworld\033[0m" 296s [2] "\033[48;5;47mwowza\033[0m" 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: hello.tru <- "\033[42mhello \033[48;2;7;41;4mworld wowza\033[m" 296s 14/14 wrap.R: strwrap_ctl(hello.tru, 13, term.cap = "truecolor") 296s [1] "\033[42mhello \033[48;2;7;41;4mworld\033[0m" 296s [2] "\033[48;2;7;41;4mwowza\033[0m" 296s 14/14 wrap.R: strwrap_ctl(hello.tru, 13) 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a CSI SGR sequence with color codes not supported by terminal at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s [1] "\033[42mhello \033[48;2;7;41;4mworld\033[0m" 296s [2] "\033[48;2;7;41;4mwowza\033[0m" 296s 14/14 wrap.R: unitizer_sect("corner cases", { 296s 14/14 wrap.R: strwrap_ctl("a", -1) 296s [1] "a" 296s 14/14 wrap.R: strwrap2_ctl("a", -1) 296s [1] "a" 296s 14/14 wrap.R: strwrap2_ctl("a", Inf) 296s [1] "a" 296s Error in strwrap2_ctl("a", NA_real_) : 296s Argument `width` must be a positive scalar numeric representable as integer. 296s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 296s Error in strwrap2_ctl("a", NA_integer_) : 296s Argument `width` must be a positive scalar numeric representable as integer. 296s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 296s 14/14 wrap.R: strwrap2_ctl("a", NA_real_) 296s 14/14 wrap.R: strwrap2_ctl("a", NA_integer_) 296s Error in strwrap2_ctl("a", -1, wrap.always = TRUE) : 296s Width must be at least 2 in `wrap.always` mode. 296s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 296s 14/14 wrap.R: strwrap2_ctl("a", -1, wrap.always = TRUE) 296s 14/14 wrap.R: strwrap2_ctl("a", 0, wrap.always = TRUE) 296s Error in strwrap2_ctl("a", 0, wrap.always = TRUE) : 296s Width must be at least 2 in `wrap.always` mode. 296s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 296s 14/14 wrap.R: strwrap2_ctl("a", 1, wrap.always = TRUE) 296s Error in strwrap2_ctl("a", 1, wrap.always = TRUE) : 296s Width must be at least 2 in `wrap.always` mode. 296s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 296s 14/14 wrap.R: tryCatch(strwrap_ctl("hello world", 6, prefix = "\033p"), warning 296s [1] "Argument `prefix` contains a non-CSI/OSC escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings." 296s 14/14 wrap.R: suppressWarnings(strwrap_ctl("hello world", 6, prefix = "\033p")) 296s [1] "\033phello" "\033pworld" 296s 14/14 wrap.R: tryCatch(strwrap2_ctl("hello world", 8, pad.end = "\t"), error = c 296s [1] "Argument `pad.end` must be an empty string or a single printable ASCII character." 296s 14/14 wrap.R: tryCatch(strwrap2_ctl("hello world", 8, pad.end = " "), error = c 296s [1] "Argument `pad.end` must be at most one byte long." 296s 14/14 wrap.R: strwrap2_ctl("goodbye moon", 8, indent = 5, prefix = "> hello >") 296s [1] "> hello > goodbye" "> hello >moon" 296s 14/14 wrap.R: strwrap2_ctl("goodbye moon", 16, indent = 5, prefix = "> hello >", 296s [1] "> hello > g" "> hello >oodbye" "> hello >moon" 296s 14/14 wrap.R: tryCatch(strwrap2_ctl("goodbye moon", 15, indent = 5, prefix = "> 296s [1] "Width error: sum of `indent` and `initial` width or sum of `exdent` and `prefix` width must be less than `width - 1` when in `wrap.always`." 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a non-CSI/OSC escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 296s Argument `x` contains a non-CSI/OSC escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 296s 14/14 wrap.R: strwrap_ctl("hello world\033[31m\033A", 12) 296s [1] "hello world\033[31m\033A\033[0m" 296s 14/14 wrap.R: strwrap_ctl("hello world\033A\033[31m", 12) 296s [1] "hello world\033A" 296s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 5) 296s [1] "hello" "\033[44mworld\033[0m" 296s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 6) 296s [1] "hello" "\033[44mworld\033[0m" 296s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 5, terminate = FALSE) 296s [1] "hello" "\033[44mworld" 296s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 6, terminate = FALSE) 296s [1] "hello" "\033[44mworld" 296s 14/14 wrap.R: strwrap_ctl("hello\n\033[44m\nworld", 5) 296s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap_ctl("hello \n\033[44m\n world", 5) 297s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap_ctl("hello \n \033[44m\n world", 5) 297s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44mworld", 5) 297s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44m world", 5) 297s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44m\nworld", 5) 297s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap_ctl("hello \033[44m\n\n world", 5) 297s [1] "hello" "" "\033[44mworld\033[0m" 297s 14/14 wrap.R: strwrap("hello \n\n world", 5) 297s [1] "hello" "" "world" 297s 14/14 wrap.R: strwrap_ctl("\033[33mAB\033[44m CD", 3) 297s [1] "\033[33mAB\033[0m" "\033[33;44mCD\033[0m" 297s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE) 297s [1] "AB" "" "\033[44mCD\033[0m" 297s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE, pad.end = 297s [1] "AB" "\033[44m##\033[0m" "\033[44mCD\033[0m" 297s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE, terminate 297s [1] "AB" "\033[44m" "CD" 297s 14/14 wrap.R: strwrap2_ctl("AB\033[44m CD", 4, pad.end = "#") 297s [1] "AB\033[44m#\033[0m" "\033[44mCD#\033[0m" 297s 14/14 wrap.R: strwrap2_ctl("AB\033[44m CD", 3, pad.end = "#") 297s [1] "AB" "\033[44mCD\033[0m" 297s 14/14 wrap.R: strwrap2_sgr("\033[43mAB \033[34mCD", strip.spaces = FALSE, 4) 297s [1] "\033[43mAB \033[0m" "\033[34;43mCD\033[0m" 297s 14/14 wrap.R: strwrap_ctl("\033[31m\033[43m", 5) 297s [1] "" 297s 14/14 wrap.R: strwrap2_ctl("a\033[31mb", 2, wrap.always = TRUE) 297s [1] "a" "\033[31mb\033[0m" 297s 14/14 wrap.R: strwrap_ctl("A \033[31mB\033[39m", 3) 297s [1] "A" "\033[31mB\033[0m" 297s Warning in strwrap2_ctl("\033[35phello \033[35p world", 5, strip.spaces = FALSE) : 297s Argument `x` contains a non-SGR CSI or a non-URL OSC sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 297s 14/14 wrap.R: strwrap2_ctl("\033[35phello \033[35p world", 5, strip.spaces = FAL 297s [1] "\033[35phello" " \033[35p " "world" 297s 14/14 wrap.R: identical(strwrap(c(NA, "a b"), 4, prefix = ">"), strwrap_ctl(c(NA 297s [1] TRUE 297s 14/14 wrap.R: identical(strwrap("a b", 4, prefix = NA), strwrap_ctl("a b", 297s [1] TRUE 297s 14/14 wrap.R: unitizer_sect("bad inputs", { 297s 14/14 wrap.R: strwrap_ctl(1:3) 297s [1] "1" "2" "3" 297s 14/14 wrap.R: strwrap_ctl(hello2.0, width = "35") 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `width` must be numeric. 297s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, width = NA_integer_) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `width` must be a positive scalar numeric representable as integer. 297s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, indent = NA_integer_) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `indent` must be a positive scalar numeric representable as integer. 297s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `indent` must be a positive scalar numeric representable as integer. 297s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, indent = -3) 297s 14/14 wrap.R: strwrap_ctl(hello2.0, exdent = -3) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `exdent` must be a positive scalar numeric representable as integer. 297s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, exdent = 1:3) 297s 14/14 wrap.R: strwrap_ctl(hello2.0, prefix = 1:3)Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `exdent` must be a positive scalar numeric representable as integer. 297s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `prefix` must be a scalar character. 297s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s 297s 14/14 wrap.R: strwrap_ctl(hello2.0, initial = 1:3) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `initial` must be a scalar character. 297s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, warn = NULL) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `warn` must be TRUE or FALSE. 297s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, term.cap = 1:3) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `term.cap` must be character. 297s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 297s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, term.cap = "bananas") 297s 14/14 wrap.R: strwrap_ctl(hello2.0, ctl = 1:3) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `ctl` must be character. 297s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 297s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, ctl = "bananas") 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, wrap.always = 1:3) 297s Error in strwrap2_ctl(hello2.0, wrap.always = 1:3) : 297s Argument `wrap.always` must be TRUE or FALSE. 297s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 297s Error in strwrap2_ctl(hello2.0, wrap.always = NA) : 297s Argument `wrap.always` must be TRUE or FALSE. 297s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, wrap.always = NA) 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = NA) 297s Error in strwrap2_ctl(hello2.0, tabs.as.spaces = NA) : 297s Argument `tabs.as.spaces` must be TRUE or FALSE. 297s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = 1) 297s [1] "hello \033[31mworld \033[42m this is a lovely\033[0mday." 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, tab.stops = -(1:3)) 297s Error in strwrap2_ctl(hello2.0, tab.stops = -(1:3)) : 297s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 297s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, tab.stops = 0) 297s Error in strwrap2_ctl(hello2.0, tab.stops = 0) : 297s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 297s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, strip.spaces = 1:3) 297s Error in strwrap2_ctl(hello2.0, strip.spaces = 1:3) : 297s Argument `strip.spaces` must be TRUE or FALSE. 297s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = TRUE, strip.spaces = TRUE) 297s Error in strwrap2_ctl(hello2.0, tabs.as.spaces = TRUE, strip.spaces = TRUE) : 297s `tabs.as.spaces` and `strip.spaces` should not both be TRUE. 297s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, pad.end = letters) 297s Error in strwrap2_ctl(hello2.0, pad.end = letters) : 297s Argument `pad.end` must be a scalar character. 297s Calls: unitize_dir ... withVisible -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s 14/14 wrap.R: bytes <- "\360\343" 297s 14/14 wrap.R: Encoding(bytes) <- "bytes" 297s 14/14 wrap.R: strwrap_ctl(hello2.0, prefix = bytes) 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `prefix` cannot be "bytes" encoded. 297s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `initial` cannot be "bytes" encoded. 297s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(hello2.0, initial = bytes) 297s 14/14 wrap.R: strwrap2_ctl(hello2.0, pad.end = bytes) 297s Error in strwrap2_ctl(hello2.0, pad.end = bytes) : 297s Argument `pad.end` cannot be "bytes" encoded. 297s Calls: unitize_dir ... withVisible -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 297s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 297s Argument `x` contains a "bytes" encoded string at index [2], which is disallowed. 297s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 297s 14/14 wrap.R: strwrap_ctl(c(hello2.0, bytes)) 297s 297s Prepping Unitizers... 297s Warning in history_capt(history, interactive.mode) : 297s Unable to capture history in non-interactive mode. 298s 298s | Summary of files in common directory '.': 298s | 298s | Pass Fail 298s | 1. has.R 32 - 298s | 2. interactions.R 93 - 298s | 3. misc.R 107 - 298s | 4. nchar.R 48 - 298s | 5. normalize.R 47 - 298s | 6. overflow.R 56 - 298s | 7. strip.R 99 - 298s | 8. strsplit.R 38 - 298s | 9. substr.R 219 - 298s | 10. tabs.R 16 - 298s | 11. tohtml.R 68 - 298s | 12. trimws.R 12 - 298s | 13. url.R 50 - 298s | 14. wrap.R 141 - 299s | .............................. 299s | 1026 - 299s 299s 299s | 1026/1026 tests passed; nothing to review. 299s 299s Preloads... 299s Loading unitizer data... 299s Parsing tests... 299s Parsing special/utf8.R 299s Evaluating tests... 299s 299s library(fansi) 299s unitizer_sect("substr", { 299s term.cap <- c("bright", "256", "truecolor") 299s lorem.cn.pieces <- substr(rep(lorem.cn, 5), c(1, 11, 21, 31), 299s lorem.cn.col.1 <- paste0(red, lorem.cn.pieces[1], inv, lorem.cn.pieces[2], 299s lor.cn.c.1.5 <- rep(lorem.cn.col.1, 5) 299s starts <- seq(1, 17, 4) 299s ends <- starts + 3 299s substr2_ctl(lor.cn.c.1.5, starts, ends, term.cap = term.cap) 299s [1] "\033[31m\033[0m" 299s [2] "\033[31m\033[0m" 299s [3] "\033[31m\033[7m\033[0m" 299s [4] "\033[7;31m\033[42m\033[0m" 299s [5] "\033[7;31;42m\033[4;38;2;0;120;200m\033[0m" 299s lorem.cn.col.2 <- paste0(red, lorem.cn.pieces[1], "hello", inv, 299s lor.cn.c.2.5 <- rep(lorem.cn.col.2, 5) 299s starts <- seq(1, by = 6, length.out = 5) 299s ends <- starts + 5 299s substr2_ctl(lor.cn.c.2.5, starts, ends, term.cap = term.cap) 299s [1] "\033[31m\033[0m" 299s [2] "\033[31mhe\033[0m" 299s [3] "\033[31mllo\033[7m\033[0m" 299s [4] "\033[7;31m the\033[0m" 299s [5] "\033[7;31mre \033[42m\033[4;38;2;0;120;200m\033[0m" 299s substr2_sgr(lor.cn.c.2.5, starts, ends, term.cap = term.cap) 299s [1] "\033[31m\033[0m" 299s [2] "\033[31mhe\033[0m" 299s [3] "\033[31mllo\033[7m\033[0m" 299s [4] "\033[7;31m the\033[0m" 299s [5] "\033[7;31mre \033[42m\033[4;38;2;0;120;200m\033[0m" 299s starts <- seq(1, by = 12, length.out = 5) 299s ends <- starts + 11 299s substr2_ctl(lor.cn.c.2.5, starts, ends, type = "width", term.cap = term.cap) 299s [1] "\033[31m\033[0m" 299s [2] "\033[31mhell\033[0m" 299s [3] "\033[31mo\033[7m \033[0m" 299s [4] "\033[7;31mthere \033[42m\033[4;38;2;0;120;200m\033[0m" 299s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 299s lorem.cn.col.4 <- paste0(red, lorem.cn.pieces[1], "hello", inv, 299s lor.cn.c.4.5 <- rep(lorem.cn.col.4, 5) 299s substr2_ctl(lor.cn.c.4.5, starts, ends, type = "width") 299s [1] "\033[31m\033[0m" 299s [2] "\033[31mhell\033[0m" 299s [3] "\033[31mo\033[7m \033[0m" 299s [4] "\033[7;31mthere \033[42m\033[4;38;5;141m\033[0m" 299s [5] "\033[4;7;38;5;141;42m\033[0m" 299s lorem.cn.col.3 <- paste0(red, lorem.cn.pieces[1], "helloo", inv, 299s lor.cn.c.3.5 <- rep(lorem.cn.col.3, 5) 299s starts <- seq(1, by = 12, length.out = 5) 299s ends <- starts + 10 299s ends[2] <- 24 299s substr2_ctl(lor.cn.c.3.5, starts, ends, type = "width", term.cap = term.cap) 299s [1] "\033[31m\033[0m" 299s [2] "\033[31mhell\033[0m" 299s [3] "\033[31moo\033[7m\033[0m" 299s [4] "\033[7;31m world! \033[42m\033[0m" 299s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 299s substr2_ctl(lor.cn.c.3.5, starts, ends, type = "width", round = "both", 299s [1] "\033[31m\033[0m" 299s [2] "\033[31mhell\033[0m" 299s [3] "\033[31moo\033[7m\033[0m" 299s [4] "\033[7;31m world! \033[42m\033[0m" 299s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 299s starts <- seq(1, by = 7, length.out = 5) 299s ends <- starts + 8 299s substr2_ctl(lor.cn.c.1.5, starts, ends, type = "width", term.cap = term.cap) 299s [1] "\033[31m\033[0m" 299s [2] "\033[31m\033[0m" 299s [3] "\033[31m\033[7m\033[0m" 299s [4] "\033[7;31m\033[0m" 299s [5] "\033[7;31m\033[42m\033[4;38;2;0;120;200m\033[0m" 299s substr2_ctl(lor.cn.c.1.5, starts, ends, type = "width", round = "stop", 299s [1] "\033[31m\033[0m" 299s [2] "\033[31m\033[0m" 299s [3] "\033[31m\033[7m\033[0m" 299s [4] "\033[7;31m\033[0m" 299s [5] "\033[7;31m\033[42m\033[4;38;2;0;120;200m\033[0m" 299s bytes <- "\300\261\360\261\300\261\300\261" 299s Encoding(bytes) <- "bytes" 299s tce(substr_ctl(bytes, 2, 3)) 299s [1] "Argument `x` contains a \"bytes\" encoded string at index [1], which is disallowed." 299s latin <- "H\351llo W\326rld!" 299s Encoding(latin) <- "latin1" 299s latin.utf8 <- substr_ctl(latin, 1, 9) 299s latin.utf8 299s [1] "Hllo Wr" 299s Encoding(latin.utf8) 299s [1] "UTF-8" 299s rnd.1 <- "\357\274\255n\357\274\267" 299s Encoding(rnd.1) <- "UTF-8" 299s substr2_ctl(rnd.1, 2, 4, type = "width", round = "start") 299s [1] "n" 299s substr2_ctl(rnd.1, 2, 4, type = "width", round = "stop") 299s [1] "n" 299s substr2_ctl(rnd.1, 2, 4, type = "width", round = "neither") 299s [1] "n" 299s substr2_ctl(rnd.1, 2, 4, type = "width", round = "both") 299s [1] "n" 299s rnd.2 <- "\357\274\255\357\274\267" 299s Encoding(rnd.2) <- "UTF-8" 299s substr2_ctl(rnd.2, 2, 3, type = "width", round = "start") 299s [1] "" 299s substr2_ctl(rnd.2, 2, 3, type = "width", round = "stop") 299s [1] "" 299s substr2_ctl(rnd.2, 1, 2, type = "width", round = "start") 299s [1] "" 299s substr2_ctl(rnd.2, 1, 2, type = "width", round = "stop") 299s [1] "" 299s substr2_ctl(rnd.2, 3, 4, type = "width", round = "start") 299s [1] "" 299s substr2_ctl(rnd.2, 3, 4, type = "width", round = "stop") 299s [1] "" 299s unitizer_sect("rounding", { 299s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "stop") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "stop") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "stop") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "stop") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "stop") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "both") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "both") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "both") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "both") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "both") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "neither") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "neither") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "neither") 299s [1] "" 299s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "neither") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "neither") 299s [1] "\033[31m\033[0m" 299s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "neither", 299s [1] "\033[31m" 299s unitizer_sect("multi-elem", { 299s lor.cn.2.2 <- rep(lorem.cn.col.2, 2) 299s substr2_ctl(lor.cn.2.2, c(1, 3), c(2, 4), type = "width") 299s [1] "\033[31m\033[0m" "\033[31m\033[0m" 299s substr2_ctl(lor.cn.2.2, c(2, 4), c(2, 4), type = "width") 299s [1] "\033[31m\033[0m" "\033[31m\033[0m" 299s unitizer_sect("zero width combining", { 299s combo <- "hello world" 299s Encoding(combo) <- "UTF-8" 299s substr2_ctl(combo, 1, 5, type = "width") 299s [1] "hello" 299s substr2_ctl(combo, 5, 8, type = "width") 299s [1] "o wo" 299s substr2_ctl(rep(combo, 2), c(1, 5), c(5, 8), type = "width") 299s [1] "hello" "o wo" 299s nchar_ctl(combo, type = "width") 299s [1] 11 299s nchar_ctl(combo, type = "graphemes") 299s [1] 11 300s combo3 <- paste0(substr(lorem.cn.pieces[1], 1, 2), "") 300s Encoding(combo3) <- "UTF-8" 300s substr2_ctl(combo3, 3, 4, type = "width") 300s [1] "" 300s substr2_ctl(combo3, 2, 4, type = "width") 300s [1] "" 300s substr2_ctl(combo3, 4, 4, type = "width") 300s [1] "" 300s substr2_ctl(combo3, 4, 5, type = "width") 300s [1] "" 300s combo4 <- paste0("hello") 300s substr2_ctl(combo4, 1, 1, type = "width") 300s [1] "h" 300s substr2_ctl(combo4, 1, 1) 300s [1] "" 300s substr2_ctl(combo4, 0, 1, type = "width") 300s [1] "h" 300s substr2_ctl(combo4, 0, 0, type = "width") 300s [1] "" 300s unitizer_sect("Corner cases", { 300s utf8.bad <- "hello \360 world, goodnight moon" 300s Encoding(utf8.bad) <- "UTF-8" 300s substr_ctl(utf8.bad, 1, 7) 300s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 300s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 300s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 300s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 300s substr_ctl(utf8.bad, 5, 10) 300s tce(substr2_ctl(utf8.bad, 1, 7, type = "width")) 300s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 300s tce(substr2_ctl(utf8.bad, 5, 10, type = "width")) 300s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 300s chrs.2 <- "hello\356" 300s Encoding(chrs.2) <- "UTF-8" 300s tce(substr2_ctl(chrs.2, 1, 10, type = "width")) 300s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 300s bad.u <- c("A\033[31;\200mB", "A\033[31;\200pB") 300s Encoding(bad.u) <- "UTF-8" 300s substr_ctl(bad.u[1], 0, 3) 300s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 300s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 300s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 300s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 300s substr_ctl(bad.u[2], 0, 3) 300s b.test <- c("", ("a"), ("a"), 300s identical(substr_ctl(b.test, 0, 3), substr(b.test, 0, 3)) 300s [1] TRUE 300s identical(substr_ctl(b.test, 0, 2), substr(b.test, 0, 2)) 300s [1] TRUE 300s identical(substr_ctl(b.test, 1, 2), substr(b.test, 1, 2)) 300s [1] TRUE 300s identical(substr_ctl(b.test, 0, 4), substr(b.test, 0, 4)) 300s [1] TRUE 300s identical(substr_ctl(b.test, 4, 4), substr(b.test, 4, 4)) 300s [1] TRUE 300s b.t.c <- sprintf("\033[43m%s\033[49m", b.test) 300s substr_ctl(b.t.c, 0, 0) 300s [1] "" "" "" "" 300s substr_ctl(b.t.c, 0, 2) 300s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 300s [3] "\033[43m\033[0m" "\033[43ma\033[0m" 300s substr_ctl(b.t.c, 1, 2) 300s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 300s [3] "\033[43m\033[0m" "\033[43ma\033[0m" 300s substr_ctl(b.t.c, 0, 4) 300s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 300s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 300s substr_ctl(b.t.c, 4, 4) 300s [1] "" "" "" "" 300s substr2_ctl(b.t.c, 0, 0, type = "width") 300s [1] "" "" "" "" 300s substr2_ctl(b.t.c, 0, 2, type = "width") 300s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 300s [3] "\033[43m\033[0m" "\033[43m\033[0m" 300s substr2_ctl(b.t.c, 1, 4, type = "width") 300s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 300s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 300s substr2_ctl(b.t.c, 0, 5, type = "width") 300s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 300s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 300s substr2_ctl(b.t.c, 5, 5, type = "width") 300s [1] "" "" "" "" 300s substr_ctl(b.t.c, 0, 4, terminate = FALSE) 300s [1] "\033[43m\033[49m" "\033[43ma\033[49m" 300s [3] "\033[43ma\033[49m" "\033[43ma\033[49m" 300s substr2_ctl(b.t.c, 1, 4, terminate = FALSE, type = "width") 300s [1] "\033[43m" "\033[43ma\033[49m" 300s [3] "\033[43ma\033[49m" "\033[43ma\033[49m" 300s unitizer_sect("nchar", { 300s chr.dia <- "A" 300s nchar_ctl(chr.dia) 300s [1] 2 300s nchar(chr.dia) 300s [1] 2 300s nchar_ctl(chr.dia, type = "width") 300s [1] 1 300s w1 <- "" 300s w2 <- "" 300s nchar_ctl(w1) 300s [1] 3 300s nchar_ctl(w2, type = "width") 300s [1] 6 300s nchar_ctl(w2, type = "graphemes") 300s [1] 3 300s nchar_ctl(w2, type = "bytes") 300s [1] 9 300s hello.illegal <- c("hello", "\360", "\360aaaa") 300s Encoding(hello.illegal) <- "UTF-8" 300s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 300s Argument `x` contains a malformed UTF-8 sequence at index [2], see `?unhandled_ctl`. 300s Calls: unitize ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 300s nchar_ctl(hello.illegal) 300s nchar_ctl(hello.illegal, allowNA = TRUE) 300s [1] 5 NA NA 300s nzchar_ctl(hello.illegal) 300s [1] TRUE TRUE TRUE 300s esc.1 <- sprintf("hello \033[31mworld\033[m%s\033[48;5;123m blahs \033[m%s", 300s Encoding(esc.1) <- "UTF-8" 300s nchar_ctl(esc.1) 300s [1] 23 300s nchar_ctl(esc.1, type = "width") 300s [1] 28 300s nchar_ctl(esc.1, type = "bytes") 300s [1] 33 300s nzchar_ctl(esc.1) 300s [1] TRUE 300s esc.2 <- "\n\r\033P\033[31m\a" 300s nchar_ctl(c(esc.1, esc.2, "hello"), warn = FALSE) 300s [1] 23 0 5 300s esc.4 <- c(sprintf("\033[31m%shello", w1), NA, hello.illegal) 300s nchar_sgr(esc.4, type = "width", keepNA = FALSE, warn = FALSE, 300s [1] 11 2 5 NA NA 300s nzchar_sgr(esc.4, keepNA = FALSE, warn = FALSE) 300s [1] TRUE TRUE TRUE TRUE TRUE 300s nchar_sgr("\033[31m\thello", type = "width") >= nchar_ctl("\033[31m\thello", 300s [1] TRUE 300s ncb <- c("123\033[31\200m123", "123\033\200123") 300s Encoding(ncb) <- "UTF-8" 300s nchar_ctl(ncb) 300s [1] 6 6 300s unitizer_sect("unhandled", { 300s utf8.bad.0 <- "hello\033\033\033[45p \360how wor\ald" 300s Encoding(utf8.bad.0) <- "UTF-8" 300s unhandled_ctl(utf8.bad.0) 300s index start stop error translated esc 300s 1 1 6 7 malformed-ESC FALSE \033\033 300s 2 1 8 12 non-SGR/hyperlink FALSE \033[45p 300s 3 1 14 14 malformed-UTF8 FALSE 300s 4 1 22 22 C0 FALSE \a 300s utf8.bad.1 <- "hello \360ho" 300s Encoding(utf8.bad.1) <- "UTF-8" 300s unhandled_ctl(utf8.bad.1) 300s index start stop error translated esc 300s 1 1 7 7 malformed-UTF8 FALSE 300s unitizer_sect("utf8clen", { 300s chrs <- c("\302\200", "\337\277", "\340\240\200", "\340\277\277", 300s Encoding(chrs) <- "UTF-8" 300s nchar(chrs, allowNA = TRUE) 300s [1] 1 1 1 1 1 1 1 1 1 1 1 1 NA NA NA NA 300s nchar_ctl(chrs, allowNA = TRUE) 300s [1] 1 1 1 1 1 1 1 1 1 1 1 1 NA NA NA NA 300s utf8.bad.2 <- "\277aaaaaa" 300s Encoding(utf8.bad.2) <- "UTF-8" 300s nchar(utf8.bad.2, allowNA = TRUE) 300s [1] NA 300s nchar_ctl(utf8.bad.2, allowNA = TRUE) 300s [1] NA 300s substr_ctl(utf8.bad.2, 1, 1) 300s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 300s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 300s unitizer_sect("wrap corner cases", { 300s pre.2 <- "\033[32m\320\237 \033[0m" 300s ini.2 <- "\033[33m\321\200 \033[0m" 300s hello.8c <- "hello \320\237\321\200\320\270\320\262\320\265\321\202 world" 300s Encoding(pre.2) <- "UTF-8" 300s Encoding(ini.2) <- "UTF-8" 300s Encoding(hello.8c) <- "UTF-8" 300s pre.3 <- "\320\237 " 300s ini.3 <- "\321\200 " 300s Encoding(pre.3) <- "UTF-8" 300s Encoding(ini.3) <- "UTF-8" 300s wrap.csi.4 <- strwrap_ctl(hello.8c, 15, prefix = pre.2, initial = ini.2) 300s wrap.csi.4 300s [1] "\033[33m \033[0mhello " 300s [2] "\033[32m \033[0mworld" 300s utf8.chr <- "" 300s strwrap2_ctl(utf8.chr, 1, wrap.always = TRUE) 300s Error in strwrap2_ctl(utf8.chr, 1, wrap.always = TRUE) : 300s Width must be at least 2 in `wrap.always` mode. 300s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 300s Error in strwrap2_ctl(utf8.chr, 2, wrap.always = TRUE) : 300s Wrap error: trying to wrap to width narrower than character width; set `wrap.always=FALSE` to resolve. 300s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 300s strwrap2_ctl(utf8.chr, 2, wrap.always = TRUE) 300s strwrap2_ctl(utf8.chr, 3, wrap.always = TRUE) 300s [1] "" 300s strwrap_ctl("lovelyday.", 10) 300s [1] "lovelyday." 300s strwrap2_ctl("lovelyday.", 10, wrap.always = TRUE) 300s [1] "lovelyday" "." 300s utf8.bad <- "hello \360 world, goodnight moon" 300s Encoding(utf8.bad) <- "UTF-8" 300s strwrap_ctl(utf8.bad, 10) 300s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 300s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... eval -> eval -> withVisible -> strwrap_ctl -> strwrap2_ctl 300s utf8.bad.2 <- "\360" 300s Encoding(utf8.bad.2) <- "UTF-8" 300s tcw(strwrap_ctl("hello world", 6, prefix = utf8.bad.2)) 300s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 300s Argument `prefix` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... tryCatchOne -> doTryCatch -> strwrap_ctl -> strwrap2_ctl 300s suppressWarnings(strwrap_ctl("hello world", 6, prefix = utf8.bad.2)) 300s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 300s Argument `prefix` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 300s Calls: unitize ... doWithOneRestart -> withCallingHandlers -> eval -> eval -> withVisible 301s bytes <- "\300\261\360\261\300\261\300\261" 301s Encoding(bytes) <- "bytes" 301s tce(strwrap_ctl(bytes)) 301s [1] "Argument `x` contains a \"bytes\" encoded string at index [1], which is disallowed." 301s encstrings <- c("hell world", "hello wrld") 301s Encoding(strwrap_ctl(encstrings, 5)) 301s [1] "UTF-8" "unknown" "unknown" "UTF-8" 301s str.inf <- " " 301s strwrap2_ctl(str.inf, 2) 301s [1] "" "" 301s unitizer_sect("wrap with wide UTF8 and ESC", { 301s wrap.mix <- strwrap_ctl(lorem.mix, 25) 301s wrap.mix 301s [1] "lorem ipsum dolor" 301s [2] "\033[32m \033[0m" 301s [3] "\033[1;7;32msit amet consectetur\033[0m" 301s [4] "\033[1;7;32madipiscing elit sed do\033[0m" 301s [5] "" 301s [6] "\033[1;7;38;5;105meiusmod tempor\033[0m" 301s [7] "\033[1;7;38;5;105mincididunt ut labore et\033[0m" 301s [8] "\033[1;7;38;5;105mdolore magna aliqua ut\033[0m" 301s [9] "" 301s [10] " " 301s [11] "\033[34;43menim ad minim veniam\033[0m" 301s [12] "\033[34;43mquis\033[49mnostrud exercitation\033[0m" 301s [13] "\033[34mullamco laboris nisi\033[0m" 301s [14] "\033[4m \033[0m" 301s [15] "" 301s [16] "\033[4m \033[0m" 301s [17] "\033[4mut aliquip ex ea commodo\033[0m" 301s [18] "\033[4mconsequat\033[0m" 301s string <- "\033[37;48;5;32m\345\234\213\345\256\230\346\226\271\350\252\215\345\ 301s Encoding(string) <- "UTF-8" 301s strwrap2_ctl(string, 24, wrap.always = TRUE, pad.end = " ") 301s [1] "\033[37;48;5;32m56 \033[0m" 301s [2] "\033[37;48;5;32m\033[39;49m " 301s unitizer_sect("issue 54 ctd", { 301s string3 <- c("\033[38;5;246m# \342\200\246 with 5 more variables: total_time \03 301s Encoding(string3) <- "UTF-8" 301s fansi::sgr_to_html(html_esc(string3)) 301s [1] "# with 5 more variables: total_time <bch:tm>, result <list>, memory <list>," 301s [2] "# time <list>, gc <list>" 301s string4 <- c("wow \033[31m then", "hello\033[\200;wow", "yo \033[m there", 301s Encoding(string4) <- "UTF-8" 301s sgr_to_html(string4) 301s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 301s Argument `x` contains an illegal non-ASCII byte at index [2], see `?unhandled_ctl`. 301s Calls: unitize ... eval -> eval -> withVisible -> sgr_to_html -> to_html_int 301s unitizer_sect("html_esc", { 301s x <- "" 301s html_esc(c("h&e'l\"lo", "wors", NA, ""), x) 301s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), x) : 301s Argument `what` may only contain ASCII characters "&", "<", ">", "'", or "\"". 301s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 301s 301s Warning in history_capt(history, interactive.mode) : 301s Unable to capture history in non-interactive mode. 301s Prepping Unitizers... 301s 301s | 125/125 tests passed; nothing to review. 301s 301s 301s Preloads... 301s Loading unitizer data... 301s Parsing tests... 301s Parsing special/emo-graph.R 301s Evaluating tests... 301s 301s library(fansi) 301s unitizer_sect("Emoji combining", { 301s flags <- " \033[0m" 301s [2] "\033[44m \033[0m" 301s [3] "\033[44m \033[0m" 301s strwrap2_ctl(flags, 7, wrap.always = TRUE, pad.end = " ", carry = "\033[44m") 301s [1] "\033[44m\033[0m" 301s [2] "\033[44m\033[0m" 301s flags.1 <- paste0("a", flags) 301s strwrap2_ctl(flags.1, 7, wrap.always = TRUE, pad.end = " ", carry = "\033[44m") 301s [1] "\033[44ma \033[0m" 301s [2] "\033[44m\033[0m" 301s [3] "\033[44m \033[0m" 301s substr2_ctl(flags, 1, 1, type = "width") 301s [1] "" 301s substr2_ctl(flags, 1, 1, type = "width", round = "stop") 301s [1] "" 301s substr2_ctl(flags, 1, 2, type = "width", round = "neither") 301s [1] "" 301s substr2_ctl(flags, 2, 3, type = "width", round = "stop") 301s [1] "" 301s substr2_ctl(flags, 2, 3, type = "width", round = "start") 301s [1] "" 301s substr2_ctl(flags, 2, 3, type = "width", round = "both") 301s [1] "" 301s substr2_ctl(flags, 2, 3, type = "width", round = "neither") 301s [1] "" 301s emo.0 <- "_B" 301s emo.2 <- "" 301s emo.2a <- paste0("_", emo.2, "^", emo.2) 301s nchar_ctl(c(emo.0, emo.1, emo.2), type = "width") 301s [1] 6 6 2 301s nchar_ctl(c(emo.0, emo.1, emo.2), type = "graphemes") 301s [1] 3 5 1 301s substr2_ctl(emo.0, 1, 1, type = "width") 301s [1] "" 301s substr2_ctl(emo.0, 1, 1, type = "width", round = "stop") 301s [1] "" 301s substr2_ctl(emo.0, 1, 2, type = "width", round = "stop") 301s [1] "" 301s substr2_ctl(emo.0, 2, 3, type = "width", round = "stop") 301s [1] "" 301s substr2_ctl(emo.0, 2, 3, type = "width", round = "start") 301s [1] "" 301s substr2_ctl(emo.0, 2, 3, type = "width", round = "both") 301s [1] "" 301s substr2_ctl(emo.0, 2, 3, type = "width", round = "neither") 301s [1] "" 301s substr2_ctl(emo.1, 1, 3, type = "width") 301s [1] "A_" 301s substr2_ctl(emo.1, 1, 3, type = "width", round = "stop") 301s [1] "A_" 301s substr2_ctl(emo.1, 3, 5, type = "width") 301s [1] "_" 301s substr2_ctl(emo.1, 4, 5, type = "width") 301s [1] "_" 301s emo.3 <- "" 301s emo.4 <- " \033[0m" 301s [4] "\033[44m \033[0m" 301s [5] "\033[44mthere was\033[0m" 301s [6] "\033[44ma humpty \033[0m" 301s [7] "\033[44m \033[0m" 301s [8] "\033[44m \033[0m" 301s [9] "\033[44mdumpty \033[0m" 301s [10] "\033[44mA__B on\033[0m" 301s [11] "\033[44mthe wall \033[0m" 301s [12] "\033[44mand he \033[0m" 301s [13] "\033[44mhad a \033[0m" 301s [14] "\033[44m big \033[0m" 301s [15] "\033[44mfall \033[0m" 301s [16] "\033[44moh no \033[0m" 301s [17] "\033[44monce upon\033[0m" 301s [18] "\033[44ma time \033[0m" 301s [19] "\033[44m \033[0m" 301s [20] "\033[44m \033[0m" 301s [21] "\033[44mthere was\033[0m" 301s [22] "\033[44ma humpty \033[0m" 301s [23] "\033[44m \033[0m" 301s [24] "\033[44m \033[0m" 301s [25] "\033[44mdumpty \033[0m" 301s [26] "\033[44mA__B on\033[0m" 301s [27] "\033[44mthe wall \033[0m" 301s [28] "\033[44mand he \033[0m" 301s [29] "\033[44mhad a \033[0m" 301s [30] "\033[44m big \033[0m" 301s [31] "\033[44mfall \033[0m" 301s [32] "\033[44moh no \033[0m" 301s emo.6 <- c(emo.0, emo.2a, emo.4) 301s substr2_ctl(emo.6, 1, 2, type = "graphemes") 301s [1] "" 301s [2] "_" 301s [3] "" 301s substr2_ctl(emo.6, 1, 3, type = "graphemes") 301s [1] "" 301s [2] "_^" 301s [3] "" 301s substr2_ctl(emo.6, 2, 3, type = "graphemes") 301s [1] "" 301s [2] "^" 301s [3] "" 301s substr2_ctl(emo.6, 3, 3, type = "graphemes") 301s [1] "" "^" "" 302s emo.5 <- "\360\237\221\266\033[43m\360\237\217\275###\033[m" 302s Encoding(emo.5) <- "UTF-8" 302s substr2_ctl(emo.5, 1, 2, type = "width") 302s [1] "\033[43m\033[0m" 302s substr2_ctl(emo.5, 2, 3, type = "width") 302s [1] "\033[43m#\033[0m" 302s nchar_ctl(emo.5, type = "width") 302s [1] 5 302s nchar_ctl(emo.5, type = "grapheme") 302s [1] 4 302s emo.0.1 <- paste0("\033[33m", substr2_ctl(emo.0, 1, 1, type = "graphemes"), 302s substr2_ctl(emo.0.1, 2, 2, type = "width") 302s [1] "\033[33m\033[0m" 302s substr2_ctl(emo.0.1, 2, 2, type = "width", terminate = FALSE) 302s [1] "\033[33m" 302s substr2_ctl(emo.0.1, 1, 1, type = "width", round = "stop") 302s [1] "\033[33m\033[0m" 302s substr2_ctl(emo.0.1, 1, 3, type = "width") 302s [1] "\033[33m\033[0m" 302s substr2_ctl(emo.0.1, 1, 3, type = "width", terminate = FALSE) 302s [1] "\033[33m\033[45m" 302s substr2_ctl(emo.0.1, 1, 3, type = "width", round = "stop") 302s [1] "\033[33m\033[0m" 302s emo.0.2 <- paste0(emo.0.1, "\a") 302s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 302s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 302s substr2_ctl(emo.0.2, 1, 3, type = "width", round = "start") 302s [1] "\033[33m\033[45m\a\033[0m" 302s emo.0.3 <- paste0(emo.0.1, "\a\033]8;;x.yz\033\\") 302s substr2_ctl(emo.0.3, 1, 3, type = "width", round = "start") 302s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 302s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 302s [1] "\033[33m\033[45m\a\033[0m" 302s emo.0.4 <- paste0("\033]8;;x.yz\033\\", substr2_ctl(emo.0, 1, 302s substr2_ctl(emo.0.4, 1, 3, type = "width") 302s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 302s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 302s [1] "\033]8;;x.yz\033\\\033]8;;w.ww\033\\\a\033]8;;\033\\" 302s substr2_ctl(emo.0.4, 1, 3, type = "width", terminate = FALSE) 302s [1] "\033]8;;x.yz\033\\\033]8;;w.ww\033\\\a\033[42m" 302s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 302s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 302s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 302s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 302s substr2_ctl(emo.0.4, 1, 2, type = "width", terminate = FALSE) 302s [1] "\033]8;;x.yz\033\\" 302s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 302s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 302s substr2_ctl(emo.0.4, 1, 2, type = "width") 302s [1] "\033]8;;x.yz\033\\\033]8;;\033\\" 302s unitizer_sect("replacement and width", { 302s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0) 302s [1] "A__B" 302s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0, type = "width") 302s [1] "A__B" 302s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width") 302s [1] "A__B" 302s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "stop") 302s [1] "A__B" 302s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "neither") 302s [1] "A__B" 302s `substr2_ctl<-`(emo.1, 4, 4, value = "#", type = "width") 302s [1] "A_#_B" 302s `substr2_ctl<-`(emo.1, 4, 5, value = emo.0, type = "width") 302s [1] "A__B" 302s x <- "ABCDEF" 302s `substr2_ctl<-`(x, 2, 4, value = emo.0, type = "width") 302s [1] "ADEF" 302s `substr2_ctl<-`(x, 2, 4, value = emo.0, type = "width", round = "stop") 302s [1] "ADEF" 302s `substr2_ctl<-`(x, 2, 5, value = emo.0, type = "width") 302s [1] "AF" 302s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0, type = "width", round = "both") 302s [1] "A__B" 302s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "both") 302s [1] "A__B" 302s a <- c(rep(emo.1, 4), rep(x, 2)) 302s b <- c(emo.0, "#", rep(emo.0, 4)) 302s starts <- c(3, 4, 4, 4, 2, 2) 302s stops <- c(4, 4, 4, 5, 4, 5) 302s x <- a 302s substr2_ctl(x, starts, stops, type = "width") <- b 302s x 302s [1] "A__B" 302s [2] "A_#_B" 302s [3] "A__B" 302s [4] "A__B" 302s [5] "ADEF" 302s [6] "AF" 302s starts <- c(3, 4, 2, 3, 4, 2) 302s ends <- c(8, 9, 7, 7, 8, 6) 302s emo.3 <- rep(paste0("", 302s emo.4 <- "" 302s [2] "" 302s [3] "" 302s [4] "" 302s [5] "" 302s [6] "" 302s substr2_ctl(x1, starts, ends, type = "width", round = "stop") <- emo.4 302s x1 302s [1] "" 302s [2] "" 302s [3] "" 302s [4] "" 302s [5] "" 302s [6] "" 302s emo.7 <- "_" 302s emo.7a <- "" 302s `substr2_ctl<-`(emo.7, 3, 3, type = "width", round = "stop", 302s [1] "_" 302s `substr2_ctl<-`(emo.7, 3, 3, type = "width", round = "stop", 302s [1] "#" 302s `substr2_ctl<-`(emo.7a, 2, 1, type = "width", round = "both", 302s [1] "" 302s 302s Prepping Unitizers... 302s Warning in history_capt(history, interactive.mode) : 302s Unable to capture history in non-interactive mode. 302s | 68/68 tests passed; nothing to review. 302s 302s 302s > 302s autopkgtest [15:30:47]: test run-unit-test: -----------------------] 303s autopkgtest [15:30:48]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 303s run-unit-test PASS 303s autopkgtest [15:30:48]: test pkg-r-autopkgtest: preparing testbed 304s Reading package lists... 304s Building dependency tree... 304s Reading state information... 304s Starting pkgProblemResolver with broken count: 0 305s Starting 2 pkgProblemResolver with broken count: 0 305s Done 305s The following NEW packages will be installed: 305s build-essential cpp cpp-14 cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu 305s dctrl-tools g++ g++-14 g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc 305s gcc-14 gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu gfortran gfortran-14 305s gfortran-14-aarch64-linux-gnu gfortran-aarch64-linux-gnu icu-devtools 305s libasan8 libblas-dev libbz2-dev libcc1-0 libdeflate-dev libgcc-14-dev 305s libgfortran-14-dev libhwasan0 libicu-dev libisl23 libitm1 libjpeg-dev 305s libjpeg-turbo8-dev libjpeg8-dev liblapack-dev liblsan0 liblzma-dev libmpc3 305s libncurses-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 305s libpkgconf3 libpng-dev libreadline-dev libstdc++-14-dev libtirpc-dev 305s libtsan2 libubsan1 pkg-r-autopkgtest pkgconf pkgconf-bin r-base-dev 305s zlib1g-dev 306s 0 upgraded, 54 newly installed, 0 to remove and 0 not upgraded. 306s Need to get 92.7 MB of archives. 306s After this operation, 334 MB of additional disk space will be used. 306s Get:1 http://ftpmaster.internal/ubuntu plucky/main arm64 libisl23 arm64 0.27-1 [676 kB] 307s Get:2 http://ftpmaster.internal/ubuntu plucky/main arm64 libmpc3 arm64 1.3.1-1build2 [56.8 kB] 307s Get:3 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-14-aarch64-linux-gnu arm64 14.2.0-17ubuntu3 [10.6 MB] 313s Get:4 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-14 arm64 14.2.0-17ubuntu3 [1028 B] 313s Get:5 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp-aarch64-linux-gnu arm64 4:14.2.0-1ubuntu1 [5558 B] 313s Get:6 http://ftpmaster.internal/ubuntu plucky/main arm64 cpp arm64 4:14.2.0-1ubuntu1 [22.4 kB] 313s Get:7 http://ftpmaster.internal/ubuntu plucky/main arm64 libcc1-0 arm64 15-20250222-0ubuntu1 [44.2 kB] 313s Get:8 http://ftpmaster.internal/ubuntu plucky/main arm64 libitm1 arm64 15-20250222-0ubuntu1 [28.0 kB] 313s Get:9 http://ftpmaster.internal/ubuntu plucky/main arm64 libasan8 arm64 15-20250222-0ubuntu1 [2924 kB] 315s Get:10 http://ftpmaster.internal/ubuntu plucky/main arm64 liblsan0 arm64 15-20250222-0ubuntu1 [1319 kB] 315s Get:11 http://ftpmaster.internal/ubuntu plucky/main arm64 libtsan2 arm64 15-20250222-0ubuntu1 [2694 kB] 318s Get:12 http://ftpmaster.internal/ubuntu plucky/main arm64 libubsan1 arm64 15-20250222-0ubuntu1 [1178 kB] 318s Get:13 http://ftpmaster.internal/ubuntu plucky/main arm64 libhwasan0 arm64 15-20250222-0ubuntu1 [1642 kB] 319s Get:14 http://ftpmaster.internal/ubuntu plucky/main arm64 libgcc-14-dev arm64 14.2.0-17ubuntu3 [2593 kB] 321s Get:15 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-14-aarch64-linux-gnu arm64 14.2.0-17ubuntu3 [20.9 MB] 333s Get:16 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-14 arm64 14.2.0-17ubuntu3 [526 kB] 333s Get:17 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc-aarch64-linux-gnu arm64 4:14.2.0-1ubuntu1 [1200 B] 333s Get:18 http://ftpmaster.internal/ubuntu plucky/main arm64 gcc arm64 4:14.2.0-1ubuntu1 [4998 B] 333s Get:19 http://ftpmaster.internal/ubuntu plucky/main arm64 libstdc++-14-dev arm64 14.2.0-17ubuntu3 [2499 kB] 334s Get:20 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-14-aarch64-linux-gnu arm64 14.2.0-17ubuntu3 [12.1 MB] 342s Get:21 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-14 arm64 14.2.0-17ubuntu3 [21.8 kB] 342s Get:22 http://ftpmaster.internal/ubuntu plucky/main arm64 g++-aarch64-linux-gnu arm64 4:14.2.0-1ubuntu1 [956 B] 342s Get:23 http://ftpmaster.internal/ubuntu plucky/main arm64 g++ arm64 4:14.2.0-1ubuntu1 [1080 B] 342s Get:24 http://ftpmaster.internal/ubuntu plucky/main arm64 build-essential arm64 12.10ubuntu1 [4932 B] 342s Get:25 http://ftpmaster.internal/ubuntu plucky/main arm64 dctrl-tools arm64 2.24-3build3 [103 kB] 342s Get:26 http://ftpmaster.internal/ubuntu plucky/main arm64 libgfortran-14-dev arm64 14.2.0-17ubuntu3 [498 kB] 342s Get:27 http://ftpmaster.internal/ubuntu plucky/main arm64 gfortran-14-aarch64-linux-gnu arm64 14.2.0-17ubuntu3 [11.4 MB] 349s Get:28 http://ftpmaster.internal/ubuntu plucky/main arm64 gfortran-14 arm64 14.2.0-17ubuntu3 [13.6 kB] 349s Get:29 http://ftpmaster.internal/ubuntu plucky/main arm64 gfortran-aarch64-linux-gnu arm64 4:14.2.0-1ubuntu1 [1022 B] 349s Get:30 http://ftpmaster.internal/ubuntu plucky/main arm64 gfortran arm64 4:14.2.0-1ubuntu1 [1166 B] 349s Get:31 http://ftpmaster.internal/ubuntu plucky/main arm64 icu-devtools arm64 76.1-1ubuntu2 [213 kB] 349s Get:32 http://ftpmaster.internal/ubuntu plucky/main arm64 libblas-dev arm64 3.12.1-2 [126 kB] 349s Get:33 http://ftpmaster.internal/ubuntu plucky/main arm64 libbz2-dev arm64 1.0.8-6 [36.1 kB] 349s Get:34 http://ftpmaster.internal/ubuntu plucky/main arm64 libdeflate-dev arm64 1.23-1 [53.7 kB] 349s Get:35 http://ftpmaster.internal/ubuntu plucky/main arm64 libicu-dev arm64 76.1-1ubuntu2 [12.2 MB] 357s Get:36 http://ftpmaster.internal/ubuntu plucky/main arm64 libjpeg-turbo8-dev arm64 2.1.5-3ubuntu2 [306 kB] 357s Get:37 http://ftpmaster.internal/ubuntu plucky/main arm64 libjpeg8-dev arm64 8c-2ubuntu11 [1484 B] 357s Get:38 http://ftpmaster.internal/ubuntu plucky/main arm64 libjpeg-dev arm64 8c-2ubuntu11 [1482 B] 357s Get:39 http://ftpmaster.internal/ubuntu plucky/main arm64 liblapack-dev arm64 3.12.1-2 [4439 kB] 360s Get:40 http://ftpmaster.internal/ubuntu plucky/main arm64 libncurses-dev arm64 6.5+20250216-2 [389 kB] 360s Get:41 http://ftpmaster.internal/ubuntu plucky/main arm64 libpcre2-16-0 arm64 10.45-1 [222 kB] 360s Get:42 http://ftpmaster.internal/ubuntu plucky/main arm64 libpcre2-32-0 arm64 10.45-1 [210 kB] 360s Get:43 http://ftpmaster.internal/ubuntu plucky/main arm64 libpcre2-posix3 arm64 10.45-1 [7084 B] 360s Get:44 http://ftpmaster.internal/ubuntu plucky/main arm64 libpcre2-dev arm64 10.45-1 [768 kB] 361s Get:45 http://ftpmaster.internal/ubuntu plucky/main arm64 libpkgconf3 arm64 1.8.1-4 [31.4 kB] 361s Get:46 http://ftpmaster.internal/ubuntu plucky/main arm64 zlib1g-dev arm64 1:1.3.dfsg+really1.3.1-1ubuntu1 [894 kB] 361s Get:47 http://ftpmaster.internal/ubuntu plucky/main arm64 libpng-dev arm64 1.6.47-1 [269 kB] 361s Get:48 http://ftpmaster.internal/ubuntu plucky/main arm64 libreadline-dev arm64 8.2-6 [179 kB] 362s Get:49 http://ftpmaster.internal/ubuntu plucky/main arm64 liblzma-dev arm64 5.6.4-1 [180 kB] 362s Get:50 http://ftpmaster.internal/ubuntu plucky/main arm64 pkgconf-bin arm64 1.8.1-4 [20.9 kB] 362s Get:51 http://ftpmaster.internal/ubuntu plucky/main arm64 pkgconf arm64 1.8.1-4 [16.7 kB] 362s Get:52 http://ftpmaster.internal/ubuntu plucky/main arm64 libtirpc-dev arm64 1.3.4+ds-1.3 [201 kB] 362s Get:53 http://ftpmaster.internal/ubuntu plucky/universe arm64 r-base-dev all 4.4.3-1 [4176 B] 362s Get:54 http://ftpmaster.internal/ubuntu plucky/universe arm64 pkg-r-autopkgtest all 20231212ubuntu1 [6448 B] 362s Fetched 92.7 MB in 56s (1646 kB/s) 362s Selecting previously unselected package libisl23:arm64. 362s (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 ... 95471 files and directories currently installed.) 362s Preparing to unpack .../00-libisl23_0.27-1_arm64.deb ... 362s Unpacking libisl23:arm64 (0.27-1) ... 362s Selecting previously unselected package libmpc3:arm64. 362s Preparing to unpack .../01-libmpc3_1.3.1-1build2_arm64.deb ... 362s Unpacking libmpc3:arm64 (1.3.1-1build2) ... 363s Selecting previously unselected package cpp-14-aarch64-linux-gnu. 363s Preparing to unpack .../02-cpp-14-aarch64-linux-gnu_14.2.0-17ubuntu3_arm64.deb ... 363s Unpacking cpp-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 363s Selecting previously unselected package cpp-14. 363s Preparing to unpack .../03-cpp-14_14.2.0-17ubuntu3_arm64.deb ... 363s Unpacking cpp-14 (14.2.0-17ubuntu3) ... 363s Selecting previously unselected package cpp-aarch64-linux-gnu. 363s Preparing to unpack .../04-cpp-aarch64-linux-gnu_4%3a14.2.0-1ubuntu1_arm64.deb ... 363s Unpacking cpp-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 363s Selecting previously unselected package cpp. 363s Preparing to unpack .../05-cpp_4%3a14.2.0-1ubuntu1_arm64.deb ... 363s Unpacking cpp (4:14.2.0-1ubuntu1) ... 363s Selecting previously unselected package libcc1-0:arm64. 363s Preparing to unpack .../06-libcc1-0_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking libcc1-0:arm64 (15-20250222-0ubuntu1) ... 363s Selecting previously unselected package libitm1:arm64. 363s Preparing to unpack .../07-libitm1_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking libitm1:arm64 (15-20250222-0ubuntu1) ... 363s Selecting previously unselected package libasan8:arm64. 363s Preparing to unpack .../08-libasan8_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking libasan8:arm64 (15-20250222-0ubuntu1) ... 363s Selecting previously unselected package liblsan0:arm64. 363s Preparing to unpack .../09-liblsan0_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking liblsan0:arm64 (15-20250222-0ubuntu1) ... 363s Selecting previously unselected package libtsan2:arm64. 363s Preparing to unpack .../10-libtsan2_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking libtsan2:arm64 (15-20250222-0ubuntu1) ... 363s Selecting previously unselected package libubsan1:arm64. 363s Preparing to unpack .../11-libubsan1_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking libubsan1:arm64 (15-20250222-0ubuntu1) ... 363s Selecting previously unselected package libhwasan0:arm64. 363s Preparing to unpack .../12-libhwasan0_15-20250222-0ubuntu1_arm64.deb ... 363s Unpacking libhwasan0:arm64 (15-20250222-0ubuntu1) ... 364s Selecting previously unselected package libgcc-14-dev:arm64. 364s Preparing to unpack .../13-libgcc-14-dev_14.2.0-17ubuntu3_arm64.deb ... 364s Unpacking libgcc-14-dev:arm64 (14.2.0-17ubuntu3) ... 364s Selecting previously unselected package gcc-14-aarch64-linux-gnu. 364s Preparing to unpack .../14-gcc-14-aarch64-linux-gnu_14.2.0-17ubuntu3_arm64.deb ... 364s Unpacking gcc-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 364s Selecting previously unselected package gcc-14. 364s Preparing to unpack .../15-gcc-14_14.2.0-17ubuntu3_arm64.deb ... 364s Unpacking gcc-14 (14.2.0-17ubuntu3) ... 364s Selecting previously unselected package gcc-aarch64-linux-gnu. 364s Preparing to unpack .../16-gcc-aarch64-linux-gnu_4%3a14.2.0-1ubuntu1_arm64.deb ... 364s Unpacking gcc-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 364s Selecting previously unselected package gcc. 364s Preparing to unpack .../17-gcc_4%3a14.2.0-1ubuntu1_arm64.deb ... 364s Unpacking gcc (4:14.2.0-1ubuntu1) ... 364s Selecting previously unselected package libstdc++-14-dev:arm64. 364s Preparing to unpack .../18-libstdc++-14-dev_14.2.0-17ubuntu3_arm64.deb ... 364s Unpacking libstdc++-14-dev:arm64 (14.2.0-17ubuntu3) ... 365s Selecting previously unselected package g++-14-aarch64-linux-gnu. 365s Preparing to unpack .../19-g++-14-aarch64-linux-gnu_14.2.0-17ubuntu3_arm64.deb ... 365s Unpacking g++-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 365s Selecting previously unselected package g++-14. 365s Preparing to unpack .../20-g++-14_14.2.0-17ubuntu3_arm64.deb ... 365s Unpacking g++-14 (14.2.0-17ubuntu3) ... 365s Selecting previously unselected package g++-aarch64-linux-gnu. 365s Preparing to unpack .../21-g++-aarch64-linux-gnu_4%3a14.2.0-1ubuntu1_arm64.deb ... 365s Unpacking g++-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 365s Selecting previously unselected package g++. 365s Preparing to unpack .../22-g++_4%3a14.2.0-1ubuntu1_arm64.deb ... 365s Unpacking g++ (4:14.2.0-1ubuntu1) ... 365s Selecting previously unselected package build-essential. 365s Preparing to unpack .../23-build-essential_12.10ubuntu1_arm64.deb ... 365s Unpacking build-essential (12.10ubuntu1) ... 365s Selecting previously unselected package dctrl-tools. 365s Preparing to unpack .../24-dctrl-tools_2.24-3build3_arm64.deb ... 365s Unpacking dctrl-tools (2.24-3build3) ... 365s Selecting previously unselected package libgfortran-14-dev:arm64. 365s Preparing to unpack .../25-libgfortran-14-dev_14.2.0-17ubuntu3_arm64.deb ... 365s Unpacking libgfortran-14-dev:arm64 (14.2.0-17ubuntu3) ... 365s Selecting previously unselected package gfortran-14-aarch64-linux-gnu. 365s Preparing to unpack .../26-gfortran-14-aarch64-linux-gnu_14.2.0-17ubuntu3_arm64.deb ... 365s Unpacking gfortran-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 365s Selecting previously unselected package gfortran-14. 366s Preparing to unpack .../27-gfortran-14_14.2.0-17ubuntu3_arm64.deb ... 366s Unpacking gfortran-14 (14.2.0-17ubuntu3) ... 366s Selecting previously unselected package gfortran-aarch64-linux-gnu. 366s Preparing to unpack .../28-gfortran-aarch64-linux-gnu_4%3a14.2.0-1ubuntu1_arm64.deb ... 366s Unpacking gfortran-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 366s Selecting previously unselected package gfortran. 366s Preparing to unpack .../29-gfortran_4%3a14.2.0-1ubuntu1_arm64.deb ... 366s Unpacking gfortran (4:14.2.0-1ubuntu1) ... 366s Selecting previously unselected package icu-devtools. 366s Preparing to unpack .../30-icu-devtools_76.1-1ubuntu2_arm64.deb ... 366s Unpacking icu-devtools (76.1-1ubuntu2) ... 366s Selecting previously unselected package libblas-dev:arm64. 366s Preparing to unpack .../31-libblas-dev_3.12.1-2_arm64.deb ... 366s Unpacking libblas-dev:arm64 (3.12.1-2) ... 366s Selecting previously unselected package libbz2-dev:arm64. 366s Preparing to unpack .../32-libbz2-dev_1.0.8-6_arm64.deb ... 366s Unpacking libbz2-dev:arm64 (1.0.8-6) ... 366s Selecting previously unselected package libdeflate-dev:arm64. 366s Preparing to unpack .../33-libdeflate-dev_1.23-1_arm64.deb ... 366s Unpacking libdeflate-dev:arm64 (1.23-1) ... 366s Selecting previously unselected package libicu-dev:arm64. 366s Preparing to unpack .../34-libicu-dev_76.1-1ubuntu2_arm64.deb ... 366s Unpacking libicu-dev:arm64 (76.1-1ubuntu2) ... 366s Selecting previously unselected package libjpeg-turbo8-dev:arm64. 366s Preparing to unpack .../35-libjpeg-turbo8-dev_2.1.5-3ubuntu2_arm64.deb ... 366s Unpacking libjpeg-turbo8-dev:arm64 (2.1.5-3ubuntu2) ... 366s Selecting previously unselected package libjpeg8-dev:arm64. 366s Preparing to unpack .../36-libjpeg8-dev_8c-2ubuntu11_arm64.deb ... 366s Unpacking libjpeg8-dev:arm64 (8c-2ubuntu11) ... 366s Selecting previously unselected package libjpeg-dev:arm64. 366s Preparing to unpack .../37-libjpeg-dev_8c-2ubuntu11_arm64.deb ... 366s Unpacking libjpeg-dev:arm64 (8c-2ubuntu11) ... 366s Selecting previously unselected package liblapack-dev:arm64. 367s Preparing to unpack .../38-liblapack-dev_3.12.1-2_arm64.deb ... 367s Unpacking liblapack-dev:arm64 (3.12.1-2) ... 367s Selecting previously unselected package libncurses-dev:arm64. 367s Preparing to unpack .../39-libncurses-dev_6.5+20250216-2_arm64.deb ... 367s Unpacking libncurses-dev:arm64 (6.5+20250216-2) ... 367s Selecting previously unselected package libpcre2-16-0:arm64. 367s Preparing to unpack .../40-libpcre2-16-0_10.45-1_arm64.deb ... 367s Unpacking libpcre2-16-0:arm64 (10.45-1) ... 367s Selecting previously unselected package libpcre2-32-0:arm64. 367s Preparing to unpack .../41-libpcre2-32-0_10.45-1_arm64.deb ... 367s Unpacking libpcre2-32-0:arm64 (10.45-1) ... 367s Selecting previously unselected package libpcre2-posix3:arm64. 367s Preparing to unpack .../42-libpcre2-posix3_10.45-1_arm64.deb ... 367s Unpacking libpcre2-posix3:arm64 (10.45-1) ... 367s Selecting previously unselected package libpcre2-dev:arm64. 367s Preparing to unpack .../43-libpcre2-dev_10.45-1_arm64.deb ... 367s Unpacking libpcre2-dev:arm64 (10.45-1) ... 367s Selecting previously unselected package libpkgconf3:arm64. 367s Preparing to unpack .../44-libpkgconf3_1.8.1-4_arm64.deb ... 367s Unpacking libpkgconf3:arm64 (1.8.1-4) ... 367s Selecting previously unselected package zlib1g-dev:arm64. 367s Preparing to unpack .../45-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_arm64.deb ... 367s Unpacking zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 367s Selecting previously unselected package libpng-dev:arm64. 367s Preparing to unpack .../46-libpng-dev_1.6.47-1_arm64.deb ... 367s Unpacking libpng-dev:arm64 (1.6.47-1) ... 367s Selecting previously unselected package libreadline-dev:arm64. 367s Preparing to unpack .../47-libreadline-dev_8.2-6_arm64.deb ... 367s Unpacking libreadline-dev:arm64 (8.2-6) ... 367s Selecting previously unselected package liblzma-dev:arm64. 367s Preparing to unpack .../48-liblzma-dev_5.6.4-1_arm64.deb ... 367s Unpacking liblzma-dev:arm64 (5.6.4-1) ... 367s Selecting previously unselected package pkgconf-bin. 367s Preparing to unpack .../49-pkgconf-bin_1.8.1-4_arm64.deb ... 367s Unpacking pkgconf-bin (1.8.1-4) ... 367s Selecting previously unselected package pkgconf:arm64. 367s Preparing to unpack .../50-pkgconf_1.8.1-4_arm64.deb ... 367s Unpacking pkgconf:arm64 (1.8.1-4) ... 367s Selecting previously unselected package libtirpc-dev:arm64. 367s Preparing to unpack .../51-libtirpc-dev_1.3.4+ds-1.3_arm64.deb ... 367s Unpacking libtirpc-dev:arm64 (1.3.4+ds-1.3) ... 367s Selecting previously unselected package r-base-dev. 367s Preparing to unpack .../52-r-base-dev_4.4.3-1_all.deb ... 367s Unpacking r-base-dev (4.4.3-1) ... 367s Selecting previously unselected package pkg-r-autopkgtest. 368s Preparing to unpack .../53-pkg-r-autopkgtest_20231212ubuntu1_all.deb ... 368s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ... 368s Setting up libjpeg-turbo8-dev:arm64 (2.1.5-3ubuntu2) ... 368s Setting up libncurses-dev:arm64 (6.5+20250216-2) ... 368s Setting up libreadline-dev:arm64 (8.2-6) ... 368s Setting up libpcre2-16-0:arm64 (10.45-1) ... 368s Setting up libpcre2-32-0:arm64 (10.45-1) ... 368s Setting up libtirpc-dev:arm64 (1.3.4+ds-1.3) ... 368s Setting up libpkgconf3:arm64 (1.8.1-4) ... 368s Setting up libmpc3:arm64 (1.3.1-1build2) ... 368s Setting up icu-devtools (76.1-1ubuntu2) ... 368s Setting up pkgconf-bin (1.8.1-4) ... 368s Setting up liblzma-dev:arm64 (5.6.4-1) ... 368s Setting up libubsan1:arm64 (15-20250222-0ubuntu1) ... 368s Setting up zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 368s Setting up libpcre2-posix3:arm64 (10.45-1) ... 368s Setting up libhwasan0:arm64 (15-20250222-0ubuntu1) ... 368s Setting up libasan8:arm64 (15-20250222-0ubuntu1) ... 368s Setting up libtsan2:arm64 (15-20250222-0ubuntu1) ... 368s Setting up libjpeg8-dev:arm64 (8c-2ubuntu11) ... 368s Setting up libisl23:arm64 (0.27-1) ... 368s Setting up libdeflate-dev:arm64 (1.23-1) ... 368s Setting up libicu-dev:arm64 (76.1-1ubuntu2) ... 368s Setting up libcc1-0:arm64 (15-20250222-0ubuntu1) ... 368s Setting up liblsan0:arm64 (15-20250222-0ubuntu1) ... 368s Setting up libblas-dev:arm64 (3.12.1-2) ... 368s update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so to provide /usr/lib/aarch64-linux-gnu/libblas.so (libblas.so-aarch64-linux-gnu) in auto mode 368s Setting up dctrl-tools (2.24-3build3) ... 368s Setting up libitm1:arm64 (15-20250222-0ubuntu1) ... 368s Setting up libbz2-dev:arm64 (1.0.8-6) ... 368s Setting up libpcre2-dev:arm64 (10.45-1) ... 368s Setting up libpng-dev:arm64 (1.6.47-1) ... 368s Setting up libjpeg-dev:arm64 (8c-2ubuntu11) ... 368s Setting up pkgconf:arm64 (1.8.1-4) ... 368s Setting up liblapack-dev:arm64 (3.12.1-2) ... 368s update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so to provide /usr/lib/aarch64-linux-gnu/liblapack.so (liblapack.so-aarch64-linux-gnu) in auto mode 368s Setting up cpp-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 368s Setting up libgcc-14-dev:arm64 (14.2.0-17ubuntu3) ... 368s Setting up libstdc++-14-dev:arm64 (14.2.0-17ubuntu3) ... 368s Setting up libgfortran-14-dev:arm64 (14.2.0-17ubuntu3) ... 368s Setting up cpp-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 368s Setting up cpp-14 (14.2.0-17ubuntu3) ... 368s Setting up cpp (4:14.2.0-1ubuntu1) ... 368s Setting up gcc-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 368s Setting up gcc-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 368s Setting up g++-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 368s Setting up gcc-14 (14.2.0-17ubuntu3) ... 368s Setting up gfortran-14-aarch64-linux-gnu (14.2.0-17ubuntu3) ... 368s Setting up g++-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 368s Setting up gfortran-aarch64-linux-gnu (4:14.2.0-1ubuntu1) ... 368s Setting up g++-14 (14.2.0-17ubuntu3) ... 368s Setting up gfortran-14 (14.2.0-17ubuntu3) ... 368s Setting up gcc (4:14.2.0-1ubuntu1) ... 368s Setting up g++ (4:14.2.0-1ubuntu1) ... 368s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 368s Setting up build-essential (12.10ubuntu1) ... 368s Setting up gfortran (4:14.2.0-1ubuntu1) ... 368s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode 368s update-alternatives: warning: skip creation of /usr/share/man/man1/f95.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f95) doesn't exist 368s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode 368s update-alternatives: warning: skip creation of /usr/share/man/man1/f77.1.gz because associated file /usr/share/man/man1/gfortran.1.gz (of link group f77) doesn't exist 368s Setting up r-base-dev (4.4.3-1) ... 368s Setting up pkg-r-autopkgtest (20231212ubuntu1) ... 368s Processing triggers for libc-bin (2.41-1ubuntu2) ... 368s Processing triggers for man-db (2.13.0-1) ... 369s Processing triggers for install-info (7.1.1-1) ... 370s autopkgtest [15:31:55]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest 370s autopkgtest [15:31:55]: test pkg-r-autopkgtest: [----------------------- 370s Test: Try to load the R library fansi 370s 370s R version 4.4.3 (2025-02-28) -- "Trophy Case" 370s Copyright (C) 2025 The R Foundation for Statistical Computing 370s Platform: aarch64-unknown-linux-gnu 370s 370s R is free software and comes with ABSOLUTELY NO WARRANTY. 370s You are welcome to redistribute it under certain conditions. 370s Type 'license()' or 'licence()' for distribution details. 370s 370s R is a collaborative project with many contributors. 370s Type 'contributors()' for more information and 370s 'citation()' on how to cite R or R packages in publications. 370s 370s Type 'demo()' for some demos, 'help()' for on-line help, or 370s 'help.start()' for an HTML browser interface to help. 370s Type 'q()' to quit R. 370s 370s > library('fansi') 370s > 370s > 370s Other tests are currently unsupported! 370s They will be progressively added. 371s autopkgtest [15:31:56]: test pkg-r-autopkgtest: -----------------------] 371s pkg-r-autopkgtest PASS 371s autopkgtest [15:31:56]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 372s autopkgtest [15:31:57]: @@@@@@@@@@@@@@@@@@@@ summary 372s run-unit-test PASS 372s pkg-r-autopkgtest PASS 391s nova [W] Using flock in prodstack6-arm64 391s Creating nova instance adt-plucky-arm64-r-cran-fansi-20250315-152545-juju-7f2275-prod-proposed-migration-environment-2-358b8a5e-00b3-4d97-a092-4fd8b9c70e31 from image adt/ubuntu-plucky-arm64-server-20250315.img (UUID bd6e766c-b51f-4b53-86d6-23aa4d18f524)... 391s nova [W] Timed out waiting for abdf9456-21f4-43f1-aad3-e6ffd0b28f42 to get deleted.