0s autopkgtest [18:00:02]: starting date and time: 2025-03-15 18:00:02+0000 0s autopkgtest [18:00:02]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [18:00:02]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.r70iwqbv/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-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@bos03-s390x-3.secgroup --name adt-plucky-s390x-r-cran-fansi-20250315-180002-juju-7f2275-prod-proposed-migration-environment-2-b9d8ba2d-4c50-4332-a576-38a22fc9b9d7 --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-proposed-migration-s390x -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/ 126s autopkgtest [18:02:08]: testbed dpkg architecture: s390x 126s autopkgtest [18:02:08]: testbed apt version: 2.9.33 127s autopkgtest [18:02:09]: @@@@@@@@@@@@@@@@@@@@ test bed setup 127s autopkgtest [18:02:09]: testbed release detected to be: None 127s autopkgtest [18:02:09]: updating testbed package index (apt update) 128s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [126 kB] 128s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 128s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 128s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 128s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [379 kB] 129s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.8 kB] 129s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [99.7 kB] 129s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [113 kB] 129s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x c-n-f Metadata [1824 B] 129s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted s390x c-n-f Metadata [116 B] 129s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [320 kB] 129s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x c-n-f Metadata [13.4 kB] 129s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [3776 B] 129s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x c-n-f Metadata [240 B] 129s Fetched 1073 kB in 1s (722 kB/s) 130s Reading package lists... 130s Reading package lists... 131s Building dependency tree... 131s Reading state information... 131s Calculating upgrade... 131s Calculating upgrade... 131s The following packages were automatically installed and are no longer required: 131s libnsl2 libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 131s linux-headers-6.11.0-8 linux-headers-6.11.0-8-generic 131s linux-modules-6.11.0-8-generic linux-tools-6.11.0-8 131s linux-tools-6.11.0-8-generic 131s Use 'sudo apt autoremove' to remove them. 131s The following packages will be upgraded: 131s pinentry-curses python3-jinja2 strace 131s 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 131s Need to get 652 kB of archives. 131s After this operation, 27.6 kB of additional disk space will be used. 131s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x strace s390x 6.13+ds-1ubuntu1 [500 kB] 132s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x pinentry-curses s390x 1.3.1-2ubuntu3 [42.9 kB] 132s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x python3-jinja2 all 3.1.5-2ubuntu1 [109 kB] 132s Fetched 652 kB in 1s (655 kB/s) 132s (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 ... 81428 files and directories currently installed.) 132s Preparing to unpack .../strace_6.13+ds-1ubuntu1_s390x.deb ... 132s Unpacking strace (6.13+ds-1ubuntu1) over (6.11-0ubuntu1) ... 132s Preparing to unpack .../pinentry-curses_1.3.1-2ubuntu3_s390x.deb ... 132s Unpacking pinentry-curses (1.3.1-2ubuntu3) over (1.3.1-2ubuntu2) ... 132s Preparing to unpack .../python3-jinja2_3.1.5-2ubuntu1_all.deb ... 132s Unpacking python3-jinja2 (3.1.5-2ubuntu1) over (3.1.5-2) ... 132s Setting up pinentry-curses (1.3.1-2ubuntu3) ... 132s Setting up python3-jinja2 (3.1.5-2ubuntu1) ... 133s Setting up strace (6.13+ds-1ubuntu1) ... 133s Processing triggers for man-db (2.13.0-1) ... 133s Reading package lists... 133s Building dependency tree... 133s Reading state information... 133s Solving dependencies... 134s The following packages will be REMOVED: 134s libnsl2* libpython3.12-minimal* libpython3.12-stdlib* libpython3.12t64* 134s linux-headers-6.11.0-8* linux-headers-6.11.0-8-generic* 134s linux-modules-6.11.0-8-generic* linux-tools-6.11.0-8* 134s linux-tools-6.11.0-8-generic* 134s 0 upgraded, 0 newly installed, 9 to remove and 5 not upgraded. 134s After this operation, 167 MB disk space will be freed. 134s (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 ... 81428 files and directories currently installed.) 134s Removing linux-tools-6.11.0-8-generic (6.11.0-8.8) ... 134s Removing linux-tools-6.11.0-8 (6.11.0-8.8) ... 134s Removing libpython3.12t64:s390x (3.12.9-1) ... 134s Removing libpython3.12-stdlib:s390x (3.12.9-1) ... 134s Removing libnsl2:s390x (1.3.0-3build3) ... 134s Removing libpython3.12-minimal:s390x (3.12.9-1) ... 134s Removing linux-headers-6.11.0-8-generic (6.11.0-8.8) ... 134s Removing linux-headers-6.11.0-8 (6.11.0-8.8) ... 135s Removing linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 135s Processing triggers for libc-bin (2.41-1ubuntu1) ... 135s (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 ... 56328 files and directories currently installed.) 135s Purging configuration files for libpython3.12-minimal:s390x (3.12.9-1) ... 135s Purging configuration files for linux-modules-6.11.0-8-generic (6.11.0-8.8) ... 135s autopkgtest [18:02:17]: upgrading testbed (apt dist-upgrade and autopurge) 135s Reading package lists... 135s Building dependency tree... 135s Reading state information... 136s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 136s Starting 2 pkgProblemResolver with broken count: 0 136s Done 136s Entering ResolveByKeep 136s 136s Calculating upgrade... 136s The following packages will be upgraded: 136s libc-bin libc-dev-bin libc6 libc6-dev locales 136s 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 136s Need to get 9512 kB of archives. 136s After this operation, 8192 B of additional disk space will be used. 136s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc6-dev s390x 2.41-1ubuntu2 [1678 kB] 138s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc-dev-bin s390x 2.41-1ubuntu2 [24.3 kB] 138s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc6 s390x 2.41-1ubuntu2 [2892 kB] 141s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libc-bin s390x 2.41-1ubuntu2 [671 kB] 141s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x locales all 2.41-1ubuntu2 [4246 kB] 145s Preconfiguring packages ... 145s Fetched 9512 kB in 9s (1058 kB/s) 145s (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 ... 56326 files and directories currently installed.) 145s Preparing to unpack .../libc6-dev_2.41-1ubuntu2_s390x.deb ... 145s Unpacking libc6-dev:s390x (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 145s Preparing to unpack .../libc-dev-bin_2.41-1ubuntu2_s390x.deb ... 145s Unpacking libc-dev-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 146s Preparing to unpack .../libc6_2.41-1ubuntu2_s390x.deb ... 146s Unpacking libc6:s390x (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 146s Setting up libc6:s390x (2.41-1ubuntu2) ... 146s (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 ... 56326 files and directories currently installed.) 146s Preparing to unpack .../libc-bin_2.41-1ubuntu2_s390x.deb ... 146s Unpacking libc-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 146s Setting up libc-bin (2.41-1ubuntu2) ... 146s (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 ... 56326 files and directories currently installed.) 146s Preparing to unpack .../locales_2.41-1ubuntu2_all.deb ... 146s Unpacking locales (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 146s Setting up locales (2.41-1ubuntu2) ... 146s Generating locales (this might take a while)... 147s en_US.UTF-8... done 147s Generation complete. 147s Setting up libc-dev-bin (2.41-1ubuntu2) ... 147s Setting up libc6-dev:s390x (2.41-1ubuntu2) ... 147s Processing triggers for man-db (2.13.0-1) ... 148s Processing triggers for systemd (257.3-1ubuntu3) ... 149s Reading package lists... 149s Building dependency tree... 149s Reading state information... 149s Starting pkgProblemResolver with broken count: 0 149s Starting 2 pkgProblemResolver with broken count: 0 149s Done 149s Solving dependencies... 149s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 150s autopkgtest [18:02:32]: rebooting testbed after setup commands that affected boot 169s autopkgtest [18:02:51]: testbed running kernel: Linux 6.14.0-10-generic #10-Ubuntu SMP Wed Mar 12 14:53:49 UTC 2025 171s autopkgtest [18:02:53]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-fansi 173s Get:1 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (dsc) [2110 B] 173s Get:2 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (tar) [482 kB] 173s Get:3 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (diff) [3068 B] 174s gpgv: Signature made Tue Nov 21 07:15:23 2023 UTC 174s gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1 174s gpgv: issuer "tille@debian.org" 174s gpgv: Can't check signature: No public key 174s dpkg-source: warning: cannot verify inline signature for ./r-cran-fansi_1.0.5-1.dsc: no acceptable signature found 174s autopkgtest [18:02:56]: testing package r-cran-fansi version 1.0.5-1 174s autopkgtest [18:02:56]: build not needed 176s autopkgtest [18:02:58]: test run-unit-test: preparing testbed 176s Reading package lists... 176s Building dependency tree... 176s Reading state information... 176s Starting pkgProblemResolver with broken count: 0 176s Starting 2 pkgProblemResolver with broken count: 0 176s Done 177s The following NEW packages will be installed: 177s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 177s fonts-font-awesome fonts-glyphicons-halflings fonts-mathjax 177s javascript-common libblas3 libcairo2 libdatrie1 libdeflate0 libfontconfig1 177s libfreetype6 libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libice6 177s libjbig0 libjpeg-turbo8 libjpeg8 libjs-bootstrap libjs-bootstrap4 libjs-d3 177s libjs-es5-shim libjs-highlight.js libjs-jquery libjs-jquery-datatables 177s libjs-jquery-selectize.js libjs-jquery-ui libjs-json libjs-mathjax 177s libjs-microplugin.js libjs-modernizr libjs-popper.js libjs-prettify 177s libjs-sifter.js libjs-twitter-bootstrap-datepicker liblapack3 liblua5.4-0 177s libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpaper-utils 177s libpaper2 libpixman-1-0 libsharpyuv0 libsm6 libtcl8.6 libthai-data libthai0 177s libtiff6 libtk8.6 libwebp7 libxcb-render0 libxcb-shm0 libxft2 libxrender1 177s libxss1 libxt6t64 littler node-bootstrap-sass node-html5shiv 177s node-normalize.css pandoc pandoc-data r-base-core r-cran-base64enc 177s r-cran-bslib r-cran-cachem r-cran-cli r-cran-commonmark r-cran-crayon 177s r-cran-diffobj r-cran-digest r-cran-evaluate r-cran-fansi r-cran-fastmap 177s r-cran-fontawesome r-cran-fs r-cran-glue r-cran-highr r-cran-htmltools 177s r-cran-httpuv r-cran-jquerylib r-cran-jsonlite r-cran-knitr r-cran-later 177s r-cran-lifecycle r-cran-littler r-cran-magrittr r-cran-memoise r-cran-mime 177s r-cran-pkgkitten r-cran-promises r-cran-r6 r-cran-rappdirs r-cran-rcpp 177s r-cran-rlang r-cran-rmarkdown r-cran-sass r-cran-shiny r-cran-sourcetools 177s r-cran-tinytex r-cran-unitizer r-cran-withr r-cran-xfun r-cran-xtable 177s r-cran-yaml unzip x11-common xdg-utils zip 177s 0 upgraded, 114 newly installed, 0 to remove and 0 not upgraded. 177s Need to get 130 MB of archives. 177s After this operation, 572 MB of additional disk space will be used. 177s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x libfreetype6 s390x 2.13.3+dfsg-1 [431 kB] 177s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-mono all 2.37-8 [502 kB] 178s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-dejavu-core all 2.37-8 [835 kB] 178s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig-config s390x 2.15.0-2ubuntu1 [37.5 kB] 178s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x libfontconfig1 s390x 2.15.0-2ubuntu1 [150 kB] 178s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x fontconfig s390x 2.15.0-2ubuntu1 [191 kB] 179s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 179s Get:8 http://ftpmaster.internal/ubuntu plucky/universe s390x fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-3 [118 kB] 179s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x fonts-mathjax all 2.7.9+dfsg-1 [2208 kB] 181s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x javascript-common all 12 [5216 B] 181s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x libblas3 s390x 3.12.1-2 [252 kB] 181s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x libpixman-1-0 s390x 0.44.0-3 [201 kB] 181s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x libxcb-render0 s390x 1.17.0-2 [17.0 kB] 181s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x libxcb-shm0 s390x 1.17.0-2 [5862 B] 181s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x libxrender1 s390x 1:0.9.10-1.1build1 [20.4 kB] 181s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x libcairo2 s390x 1.18.2-2 [580 kB] 181s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x libdatrie1 s390x 0.2.13-3build1 [20.6 kB] 181s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x libdeflate0 s390x 1.23-1 [46.1 kB] 181s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x libgfortran5 s390x 15-20250222-0ubuntu1 [620 kB] 182s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 15-20250222-0ubuntu1 [152 kB] 182s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x libgraphite2-3 s390x 1.3.14-2ubuntu1 [79.8 kB] 182s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x libharfbuzz0b s390x 10.2.0-1 [538 kB] 182s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x x11-common all 1:7.7+23ubuntu3 [21.7 kB] 182s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x libice6 s390x 2:1.1.1-1 [45.4 kB] 182s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-turbo8 s390x 2.1.5-3ubuntu2 [147 kB] 182s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg8 s390x 8c-2ubuntu11 [2146 B] 182s Get:27 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-bootstrap all 3.4.1+dfsg-3 [129 kB] 182s Get:28 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 182s Get:29 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-bootstrap4 all 4.6.1+dfsg1-4 [537 kB] 183s Get:30 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-d3 all 3.5.17-4 [132 kB] 183s Get:31 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-es5-shim all 4.6.7-2 [39.8 kB] 183s Get:32 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 183s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 183s Get:34 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-datatables all 1.11.5+dfsg-2 [146 kB] 183s Get:35 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-sifter.js all 0.6.0+dfsg-3 [12.6 kB] 183s Get:36 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-microplugin.js all 0.0.3+dfsg-1.1 [3712 B] 183s Get:37 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-selectize.js all 0.12.6+dfsg-1.1 [51.0 kB] 184s Get:38 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-ui all 1.13.2+dfsg-1 [252 kB] 184s Get:39 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-json all 0~20221030+~1.0.8-1 [20.6 kB] 184s Get:40 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-prettify all 2015.12.04+dfsg-1.1 [39.3 kB] 184s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x liblapack3 s390x 3.12.1-2 [2971 kB] 186s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x liblua5.4-0 s390x 5.4.7-1 [174 kB] 186s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x libthai-data all 0.1.29-2build1 [158 kB] 186s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x libthai0 s390x 0.1.29-2build1 [20.7 kB] 186s Get:45 http://ftpmaster.internal/ubuntu plucky/main s390x libpango-1.0-0 s390x 1.56.2-1 [253 kB] 186s Get:46 http://ftpmaster.internal/ubuntu plucky/main s390x libpangoft2-1.0-0 s390x 1.56.2-1 [50.2 kB] 186s Get:47 http://ftpmaster.internal/ubuntu plucky/main s390x libpangocairo-1.0-0 s390x 1.56.2-1 [28.2 kB] 186s Get:48 http://ftpmaster.internal/ubuntu plucky/main s390x libpaper2 s390x 2.2.5-0.3 [17.2 kB] 186s Get:49 http://ftpmaster.internal/ubuntu plucky/main s390x libpaper-utils s390x 2.2.5-0.3 [15.3 kB] 186s Get:50 http://ftpmaster.internal/ubuntu plucky/main s390x libsharpyuv0 s390x 1.5.0-0.1 [16.7 kB] 186s Get:51 http://ftpmaster.internal/ubuntu plucky/main s390x libsm6 s390x 2:1.2.4-1 [18.4 kB] 186s Get:52 http://ftpmaster.internal/ubuntu plucky/main s390x libtcl8.6 s390x 8.6.16+dfsg-1 [1034 kB] 187s Get:53 http://ftpmaster.internal/ubuntu plucky/main s390x libjbig0 s390x 2.1-6.1ubuntu2 [33.1 kB] 187s Get:54 http://ftpmaster.internal/ubuntu plucky/main s390x libwebp7 s390x 1.5.0-0.1 [210 kB] 187s Get:55 http://ftpmaster.internal/ubuntu plucky/main s390x libtiff6 s390x 4.5.1+git230720-4ubuntu4 [217 kB] 187s Get:56 http://ftpmaster.internal/ubuntu plucky/main s390x libxft2 s390x 2.3.6-1build1 [49.6 kB] 187s Get:57 http://ftpmaster.internal/ubuntu plucky/main s390x libxss1 s390x 1:1.2.3-1build3 [7396 B] 187s Get:58 http://ftpmaster.internal/ubuntu plucky/main s390x libtk8.6 s390x 8.6.16-1 [830 kB] 188s Get:59 http://ftpmaster.internal/ubuntu plucky/main s390x libxt6t64 s390x 1:1.2.1-1.2build1 [184 kB] 188s Get:60 http://ftpmaster.internal/ubuntu plucky/main s390x zip s390x 3.0-14ubuntu2 [187 kB] 189s Get:61 http://ftpmaster.internal/ubuntu plucky/main s390x unzip s390x 6.0-28ubuntu6 [186 kB] 189s Get:62 http://ftpmaster.internal/ubuntu plucky/main s390x xdg-utils all 1.2.1-2ubuntu1 [66.0 kB] 189s Get:63 http://ftpmaster.internal/ubuntu plucky/universe s390x r-base-core s390x 4.4.3-1 [28.6 MB] 216s Get:64 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-littler s390x 0.3.20-2 [95.0 kB] 216s Get:65 http://ftpmaster.internal/ubuntu plucky/universe s390x littler all 0.3.20-2 [2554 B] 216s Get:66 http://ftpmaster.internal/ubuntu plucky/universe s390x node-bootstrap-sass all 3.4.3-2 [187 kB] 216s Get:67 http://ftpmaster.internal/ubuntu plucky/universe s390x node-html5shiv all 3.7.3+dfsg-5 [13.5 kB] 216s Get:68 http://ftpmaster.internal/ubuntu plucky/universe s390x node-normalize.css all 8.0.1-5 [10.8 kB] 216s Get:69 http://ftpmaster.internal/ubuntu plucky/universe s390x pandoc-data all 3.1.11.1-3build1 [78.8 kB] 216s Get:70 http://ftpmaster.internal/ubuntu plucky/universe s390x pandoc s390x 3.1.11.1+ds-2 [52.5 MB] 267s Get:71 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-base64enc s390x 0.1-3-3 [28.0 kB] 268s Get:72 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rlang s390x 1.1.5-1 [1713 kB] 269s Get:73 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fastmap s390x 1.2.0-1 [72.4 kB] 269s Get:74 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-cachem s390x 1.1.0-1 [74.0 kB] 269s Get:75 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-digest s390x 0.6.37-1 [205 kB] 269s Get:76 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-htmltools s390x 0.5.8.1-1 [372 kB] 270s Get:77 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-jquerylib all 0.1.4+dfsg-4 [13.5 kB] 270s Get:78 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-jsonlite s390x 1.9.1+dfsg-1 [447 kB] 270s Get:79 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-cli s390x 3.6.4-1 [1379 kB] 272s Get:80 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-glue s390x 1.8.0-1 [164 kB] 272s Get:81 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-lifecycle all 1.0.4+dfsg-1 [110 kB] 272s Get:82 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-memoise all 2.0.1-1 [53.9 kB] 272s Get:83 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-mime s390x 0.12-2 [35.8 kB] 272s Get:84 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fs s390x 1.6.5+dfsg-1 [245 kB] 272s Get:85 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-r6 all 2.6.1-1 [101 kB] 272s Get:86 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rappdirs s390x 0.3.3-1 [47.5 kB] 272s Get:87 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-sass s390x 0.4.9+dfsg-1 [1019 kB] 273s Get:88 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-bslib all 0.8.0+dfsg-1 [4294 kB] 277s Get:89 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-commonmark s390x 1.9.2-2 [142 kB] 278s Get:90 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-crayon all 1.5.3-1 [165 kB] 278s Get:91 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-diffobj s390x 0.3.5-1 [1115 kB] 279s Get:92 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-evaluate all 1.0.3-1 [114 kB] 279s Get:93 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fansi s390x 1.0.5-1 [615 kB] 279s Get:94 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-fontawesome all 0.5.3-1 [1331 kB] 281s Get:95 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-xfun s390x 0.51+dfsg-1 [574 kB] 281s Get:96 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-highr all 0.11+dfsg-1 [38.5 kB] 281s Get:97 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-pkgkitten all 0.2.4-1 [27.2 kB] 281s Get:98 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rcpp s390x 1.0.14-1 [2003 kB] 283s Get:99 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-later s390x 1.4.1+dfsg-1 [148 kB] 283s Get:100 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-magrittr s390x 2.0.3-1 [154 kB] 283s Get:101 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-promises s390x 1.3.2+dfsg-1 [296 kB] 284s Get:102 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-httpuv s390x 1.6.15+dfsg-1 [507 kB] 284s Get:103 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-yaml s390x 2.3.10-1 [113 kB] 284s Get:104 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-mathjax all 2.7.9+dfsg-1 [5665 kB] 289s Get:105 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-knitr all 1.49+dfsg-1 [859 kB] 290s Get:106 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-tinytex all 0.56-1 [148 kB] 290s Get:107 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-modernizr all 3.13.0-0.1 [101 kB] 290s Get:108 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-xtable all 1:1.8-4-2 [689 kB] 290s Get:109 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-sourcetools s390x 0.1.7-1-1 [47.1 kB] 291s Get:110 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-withr all 3.0.2+dfsg-1 [214 kB] 291s Get:111 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-twitter-bootstrap-datepicker all 1.3.1+dfsg1-4.1 [28.5 kB] 291s Get:112 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-shiny all 1.10.0+dfsg-2 [3124 kB] 294s Get:113 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-rmarkdown all 2.29+dfsg-1 [1501 kB] 295s Get:114 http://ftpmaster.internal/ubuntu plucky/universe s390x r-cran-unitizer all 1.4.21-1 [1428 kB] 296s Preconfiguring packages ... 297s Fetched 130 MB in 1min 59s (1085 kB/s) 297s Selecting previously unselected package libfreetype6:s390x. 297s (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 ... 56326 files and directories currently installed.) 297s Preparing to unpack .../000-libfreetype6_2.13.3+dfsg-1_s390x.deb ... 297s Unpacking libfreetype6:s390x (2.13.3+dfsg-1) ... 297s Selecting previously unselected package fonts-dejavu-mono. 297s Preparing to unpack .../001-fonts-dejavu-mono_2.37-8_all.deb ... 297s Unpacking fonts-dejavu-mono (2.37-8) ... 297s Selecting previously unselected package fonts-dejavu-core. 297s Preparing to unpack .../002-fonts-dejavu-core_2.37-8_all.deb ... 297s Unpacking fonts-dejavu-core (2.37-8) ... 297s Selecting previously unselected package fontconfig-config. 297s Preparing to unpack .../003-fontconfig-config_2.15.0-2ubuntu1_s390x.deb ... 297s Unpacking fontconfig-config (2.15.0-2ubuntu1) ... 297s Selecting previously unselected package libfontconfig1:s390x. 297s Preparing to unpack .../004-libfontconfig1_2.15.0-2ubuntu1_s390x.deb ... 297s Unpacking libfontconfig1:s390x (2.15.0-2ubuntu1) ... 297s Selecting previously unselected package fontconfig. 297s Preparing to unpack .../005-fontconfig_2.15.0-2ubuntu1_s390x.deb ... 297s Unpacking fontconfig (2.15.0-2ubuntu1) ... 297s Selecting previously unselected package fonts-font-awesome. 297s Preparing to unpack .../006-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 297s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 297s Selecting previously unselected package fonts-glyphicons-halflings. 297s Preparing to unpack .../007-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-3_all.deb ... 297s Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 297s Selecting previously unselected package fonts-mathjax. 297s Preparing to unpack .../008-fonts-mathjax_2.7.9+dfsg-1_all.deb ... 297s Unpacking fonts-mathjax (2.7.9+dfsg-1) ... 297s Selecting previously unselected package javascript-common. 297s Preparing to unpack .../009-javascript-common_12_all.deb ... 297s Unpacking javascript-common (12) ... 297s Selecting previously unselected package libblas3:s390x. 297s Preparing to unpack .../010-libblas3_3.12.1-2_s390x.deb ... 297s Unpacking libblas3:s390x (3.12.1-2) ... 297s Selecting previously unselected package libpixman-1-0:s390x. 297s Preparing to unpack .../011-libpixman-1-0_0.44.0-3_s390x.deb ... 297s Unpacking libpixman-1-0:s390x (0.44.0-3) ... 297s Selecting previously unselected package libxcb-render0:s390x. 297s Preparing to unpack .../012-libxcb-render0_1.17.0-2_s390x.deb ... 297s Unpacking libxcb-render0:s390x (1.17.0-2) ... 297s Selecting previously unselected package libxcb-shm0:s390x. 297s Preparing to unpack .../013-libxcb-shm0_1.17.0-2_s390x.deb ... 297s Unpacking libxcb-shm0:s390x (1.17.0-2) ... 297s Selecting previously unselected package libxrender1:s390x. 297s Preparing to unpack .../014-libxrender1_1%3a0.9.10-1.1build1_s390x.deb ... 297s Unpacking libxrender1:s390x (1:0.9.10-1.1build1) ... 297s Selecting previously unselected package libcairo2:s390x. 297s Preparing to unpack .../015-libcairo2_1.18.2-2_s390x.deb ... 297s Unpacking libcairo2:s390x (1.18.2-2) ... 297s Selecting previously unselected package libdatrie1:s390x. 297s Preparing to unpack .../016-libdatrie1_0.2.13-3build1_s390x.deb ... 297s Unpacking libdatrie1:s390x (0.2.13-3build1) ... 297s Selecting previously unselected package libdeflate0:s390x. 297s Preparing to unpack .../017-libdeflate0_1.23-1_s390x.deb ... 297s Unpacking libdeflate0:s390x (1.23-1) ... 297s Selecting previously unselected package libgfortran5:s390x. 297s Preparing to unpack .../018-libgfortran5_15-20250222-0ubuntu1_s390x.deb ... 297s Unpacking libgfortran5:s390x (15-20250222-0ubuntu1) ... 297s Selecting previously unselected package libgomp1:s390x. 297s Preparing to unpack .../019-libgomp1_15-20250222-0ubuntu1_s390x.deb ... 297s Unpacking libgomp1:s390x (15-20250222-0ubuntu1) ... 297s Selecting previously unselected package libgraphite2-3:s390x. 297s Preparing to unpack .../020-libgraphite2-3_1.3.14-2ubuntu1_s390x.deb ... 297s Unpacking libgraphite2-3:s390x (1.3.14-2ubuntu1) ... 297s Selecting previously unselected package libharfbuzz0b:s390x. 297s Preparing to unpack .../021-libharfbuzz0b_10.2.0-1_s390x.deb ... 297s Unpacking libharfbuzz0b:s390x (10.2.0-1) ... 297s Selecting previously unselected package x11-common. 297s Preparing to unpack .../022-x11-common_1%3a7.7+23ubuntu3_all.deb ... 297s Unpacking x11-common (1:7.7+23ubuntu3) ... 297s Selecting previously unselected package libice6:s390x. 297s Preparing to unpack .../023-libice6_2%3a1.1.1-1_s390x.deb ... 297s Unpacking libice6:s390x (2:1.1.1-1) ... 297s Selecting previously unselected package libjpeg-turbo8:s390x. 297s Preparing to unpack .../024-libjpeg-turbo8_2.1.5-3ubuntu2_s390x.deb ... 297s Unpacking libjpeg-turbo8:s390x (2.1.5-3ubuntu2) ... 297s Selecting previously unselected package libjpeg8:s390x. 297s Preparing to unpack .../025-libjpeg8_8c-2ubuntu11_s390x.deb ... 297s Unpacking libjpeg8:s390x (8c-2ubuntu11) ... 297s Selecting previously unselected package libjs-bootstrap. 297s Preparing to unpack .../026-libjs-bootstrap_3.4.1+dfsg-3_all.deb ... 297s Unpacking libjs-bootstrap (3.4.1+dfsg-3) ... 297s Selecting previously unselected package libjs-popper.js. 297s Preparing to unpack .../027-libjs-popper.js_1.16.1+ds-6_all.deb ... 297s Unpacking libjs-popper.js (1.16.1+ds-6) ... 297s Selecting previously unselected package libjs-bootstrap4. 297s Preparing to unpack .../028-libjs-bootstrap4_4.6.1+dfsg1-4_all.deb ... 297s Unpacking libjs-bootstrap4 (4.6.1+dfsg1-4) ... 297s Selecting previously unselected package libjs-d3. 297s Preparing to unpack .../029-libjs-d3_3.5.17-4_all.deb ... 297s Unpacking libjs-d3 (3.5.17-4) ... 297s Selecting previously unselected package libjs-es5-shim. 297s Preparing to unpack .../030-libjs-es5-shim_4.6.7-2_all.deb ... 297s Unpacking libjs-es5-shim (4.6.7-2) ... 297s Selecting previously unselected package libjs-highlight.js. 297s Preparing to unpack .../031-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 297s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 297s Selecting previously unselected package libjs-jquery. 297s Preparing to unpack .../032-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 298s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 298s Selecting previously unselected package libjs-jquery-datatables. 298s Preparing to unpack .../033-libjs-jquery-datatables_1.11.5+dfsg-2_all.deb ... 298s Unpacking libjs-jquery-datatables (1.11.5+dfsg-2) ... 298s Selecting previously unselected package libjs-sifter.js. 298s Preparing to unpack .../034-libjs-sifter.js_0.6.0+dfsg-3_all.deb ... 298s Unpacking libjs-sifter.js (0.6.0+dfsg-3) ... 298s Selecting previously unselected package libjs-microplugin.js. 298s Preparing to unpack .../035-libjs-microplugin.js_0.0.3+dfsg-1.1_all.deb ... 298s Unpacking libjs-microplugin.js (0.0.3+dfsg-1.1) ... 298s Selecting previously unselected package libjs-jquery-selectize.js. 298s Preparing to unpack .../036-libjs-jquery-selectize.js_0.12.6+dfsg-1.1_all.deb ... 298s Unpacking libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 298s Selecting previously unselected package libjs-jquery-ui. 298s Preparing to unpack .../037-libjs-jquery-ui_1.13.2+dfsg-1_all.deb ... 298s Unpacking libjs-jquery-ui (1.13.2+dfsg-1) ... 298s Selecting previously unselected package libjs-json. 298s Preparing to unpack .../038-libjs-json_0~20221030+~1.0.8-1_all.deb ... 298s Unpacking libjs-json (0~20221030+~1.0.8-1) ... 298s Selecting previously unselected package libjs-prettify. 298s Preparing to unpack .../039-libjs-prettify_2015.12.04+dfsg-1.1_all.deb ... 298s Unpacking libjs-prettify (2015.12.04+dfsg-1.1) ... 298s Selecting previously unselected package liblapack3:s390x. 298s Preparing to unpack .../040-liblapack3_3.12.1-2_s390x.deb ... 298s Unpacking liblapack3:s390x (3.12.1-2) ... 298s Selecting previously unselected package liblua5.4-0:s390x. 298s Preparing to unpack .../041-liblua5.4-0_5.4.7-1_s390x.deb ... 298s Unpacking liblua5.4-0:s390x (5.4.7-1) ... 298s Selecting previously unselected package libthai-data. 298s Preparing to unpack .../042-libthai-data_0.1.29-2build1_all.deb ... 298s Unpacking libthai-data (0.1.29-2build1) ... 298s Selecting previously unselected package libthai0:s390x. 298s Preparing to unpack .../043-libthai0_0.1.29-2build1_s390x.deb ... 298s Unpacking libthai0:s390x (0.1.29-2build1) ... 298s Selecting previously unselected package libpango-1.0-0:s390x. 298s Preparing to unpack .../044-libpango-1.0-0_1.56.2-1_s390x.deb ... 298s Unpacking libpango-1.0-0:s390x (1.56.2-1) ... 298s Selecting previously unselected package libpangoft2-1.0-0:s390x. 298s Preparing to unpack .../045-libpangoft2-1.0-0_1.56.2-1_s390x.deb ... 298s Unpacking libpangoft2-1.0-0:s390x (1.56.2-1) ... 298s Selecting previously unselected package libpangocairo-1.0-0:s390x. 298s Preparing to unpack .../046-libpangocairo-1.0-0_1.56.2-1_s390x.deb ... 298s Unpacking libpangocairo-1.0-0:s390x (1.56.2-1) ... 298s Selecting previously unselected package libpaper2:s390x. 298s Preparing to unpack .../047-libpaper2_2.2.5-0.3_s390x.deb ... 298s Unpacking libpaper2:s390x (2.2.5-0.3) ... 298s Selecting previously unselected package libpaper-utils. 298s Preparing to unpack .../048-libpaper-utils_2.2.5-0.3_s390x.deb ... 298s Unpacking libpaper-utils (2.2.5-0.3) ... 298s Selecting previously unselected package libsharpyuv0:s390x. 298s Preparing to unpack .../049-libsharpyuv0_1.5.0-0.1_s390x.deb ... 298s Unpacking libsharpyuv0:s390x (1.5.0-0.1) ... 298s Selecting previously unselected package libsm6:s390x. 298s Preparing to unpack .../050-libsm6_2%3a1.2.4-1_s390x.deb ... 298s Unpacking libsm6:s390x (2:1.2.4-1) ... 298s Selecting previously unselected package libtcl8.6:s390x. 298s Preparing to unpack .../051-libtcl8.6_8.6.16+dfsg-1_s390x.deb ... 298s Unpacking libtcl8.6:s390x (8.6.16+dfsg-1) ... 298s Selecting previously unselected package libjbig0:s390x. 298s Preparing to unpack .../052-libjbig0_2.1-6.1ubuntu2_s390x.deb ... 298s Unpacking libjbig0:s390x (2.1-6.1ubuntu2) ... 298s Selecting previously unselected package libwebp7:s390x. 298s Preparing to unpack .../053-libwebp7_1.5.0-0.1_s390x.deb ... 298s Unpacking libwebp7:s390x (1.5.0-0.1) ... 298s Selecting previously unselected package libtiff6:s390x. 298s Preparing to unpack .../054-libtiff6_4.5.1+git230720-4ubuntu4_s390x.deb ... 298s Unpacking libtiff6:s390x (4.5.1+git230720-4ubuntu4) ... 298s Selecting previously unselected package libxft2:s390x. 298s Preparing to unpack .../055-libxft2_2.3.6-1build1_s390x.deb ... 298s Unpacking libxft2:s390x (2.3.6-1build1) ... 298s Selecting previously unselected package libxss1:s390x. 298s Preparing to unpack .../056-libxss1_1%3a1.2.3-1build3_s390x.deb ... 298s Unpacking libxss1:s390x (1:1.2.3-1build3) ... 298s Selecting previously unselected package libtk8.6:s390x. 298s Preparing to unpack .../057-libtk8.6_8.6.16-1_s390x.deb ... 298s Unpacking libtk8.6:s390x (8.6.16-1) ... 298s Selecting previously unselected package libxt6t64:s390x. 298s Preparing to unpack .../058-libxt6t64_1%3a1.2.1-1.2build1_s390x.deb ... 298s Unpacking libxt6t64:s390x (1:1.2.1-1.2build1) ... 298s Selecting previously unselected package zip. 298s Preparing to unpack .../059-zip_3.0-14ubuntu2_s390x.deb ... 298s Unpacking zip (3.0-14ubuntu2) ... 298s Selecting previously unselected package unzip. 298s Preparing to unpack .../060-unzip_6.0-28ubuntu6_s390x.deb ... 298s Unpacking unzip (6.0-28ubuntu6) ... 298s Selecting previously unselected package xdg-utils. 298s Preparing to unpack .../061-xdg-utils_1.2.1-2ubuntu1_all.deb ... 298s Unpacking xdg-utils (1.2.1-2ubuntu1) ... 298s Selecting previously unselected package r-base-core. 298s Preparing to unpack .../062-r-base-core_4.4.3-1_s390x.deb ... 298s Unpacking r-base-core (4.4.3-1) ... 298s Selecting previously unselected package r-cran-littler. 298s Preparing to unpack .../063-r-cran-littler_0.3.20-2_s390x.deb ... 298s Unpacking r-cran-littler (0.3.20-2) ... 298s Selecting previously unselected package littler. 298s Preparing to unpack .../064-littler_0.3.20-2_all.deb ... 298s Unpacking littler (0.3.20-2) ... 298s Selecting previously unselected package node-bootstrap-sass. 298s Preparing to unpack .../065-node-bootstrap-sass_3.4.3-2_all.deb ... 298s Unpacking node-bootstrap-sass (3.4.3-2) ... 298s Selecting previously unselected package node-html5shiv. 298s Preparing to unpack .../066-node-html5shiv_3.7.3+dfsg-5_all.deb ... 298s Unpacking node-html5shiv (3.7.3+dfsg-5) ... 298s Selecting previously unselected package node-normalize.css. 298s Preparing to unpack .../067-node-normalize.css_8.0.1-5_all.deb ... 298s Unpacking node-normalize.css (8.0.1-5) ... 298s Selecting previously unselected package pandoc-data. 298s Preparing to unpack .../068-pandoc-data_3.1.11.1-3build1_all.deb ... 298s Unpacking pandoc-data (3.1.11.1-3build1) ... 298s Selecting previously unselected package pandoc. 298s Preparing to unpack .../069-pandoc_3.1.11.1+ds-2_s390x.deb ... 298s Unpacking pandoc (3.1.11.1+ds-2) ... 300s Selecting previously unselected package r-cran-base64enc. 300s Preparing to unpack .../070-r-cran-base64enc_0.1-3-3_s390x.deb ... 300s Unpacking r-cran-base64enc (0.1-3-3) ... 300s Selecting previously unselected package r-cran-rlang. 300s Preparing to unpack .../071-r-cran-rlang_1.1.5-1_s390x.deb ... 300s Unpacking r-cran-rlang (1.1.5-1) ... 300s Selecting previously unselected package r-cran-fastmap. 300s Preparing to unpack .../072-r-cran-fastmap_1.2.0-1_s390x.deb ... 300s Unpacking r-cran-fastmap (1.2.0-1) ... 300s Selecting previously unselected package r-cran-cachem. 300s Preparing to unpack .../073-r-cran-cachem_1.1.0-1_s390x.deb ... 300s Unpacking r-cran-cachem (1.1.0-1) ... 300s Selecting previously unselected package r-cran-digest. 300s Preparing to unpack .../074-r-cran-digest_0.6.37-1_s390x.deb ... 300s Unpacking r-cran-digest (0.6.37-1) ... 300s Selecting previously unselected package r-cran-htmltools. 300s Preparing to unpack .../075-r-cran-htmltools_0.5.8.1-1_s390x.deb ... 300s Unpacking r-cran-htmltools (0.5.8.1-1) ... 300s Selecting previously unselected package r-cran-jquerylib. 300s Preparing to unpack .../076-r-cran-jquerylib_0.1.4+dfsg-4_all.deb ... 300s Unpacking r-cran-jquerylib (0.1.4+dfsg-4) ... 300s Selecting previously unselected package r-cran-jsonlite. 300s Preparing to unpack .../077-r-cran-jsonlite_1.9.1+dfsg-1_s390x.deb ... 300s Unpacking r-cran-jsonlite (1.9.1+dfsg-1) ... 300s Selecting previously unselected package r-cran-cli. 300s Preparing to unpack .../078-r-cran-cli_3.6.4-1_s390x.deb ... 300s Unpacking r-cran-cli (3.6.4-1) ... 300s Selecting previously unselected package r-cran-glue. 300s Preparing to unpack .../079-r-cran-glue_1.8.0-1_s390x.deb ... 300s Unpacking r-cran-glue (1.8.0-1) ... 300s Selecting previously unselected package r-cran-lifecycle. 300s Preparing to unpack .../080-r-cran-lifecycle_1.0.4+dfsg-1_all.deb ... 300s Unpacking r-cran-lifecycle (1.0.4+dfsg-1) ... 300s Selecting previously unselected package r-cran-memoise. 300s Preparing to unpack .../081-r-cran-memoise_2.0.1-1_all.deb ... 300s Unpacking r-cran-memoise (2.0.1-1) ... 300s Selecting previously unselected package r-cran-mime. 300s Preparing to unpack .../082-r-cran-mime_0.12-2_s390x.deb ... 300s Unpacking r-cran-mime (0.12-2) ... 300s Selecting previously unselected package r-cran-fs. 300s Preparing to unpack .../083-r-cran-fs_1.6.5+dfsg-1_s390x.deb ... 300s Unpacking r-cran-fs (1.6.5+dfsg-1) ... 300s Selecting previously unselected package r-cran-r6. 300s Preparing to unpack .../084-r-cran-r6_2.6.1-1_all.deb ... 300s Unpacking r-cran-r6 (2.6.1-1) ... 300s Selecting previously unselected package r-cran-rappdirs. 300s Preparing to unpack .../085-r-cran-rappdirs_0.3.3-1_s390x.deb ... 300s Unpacking r-cran-rappdirs (0.3.3-1) ... 300s Selecting previously unselected package r-cran-sass. 300s Preparing to unpack .../086-r-cran-sass_0.4.9+dfsg-1_s390x.deb ... 300s Unpacking r-cran-sass (0.4.9+dfsg-1) ... 300s Selecting previously unselected package r-cran-bslib. 300s Preparing to unpack .../087-r-cran-bslib_0.8.0+dfsg-1_all.deb ... 300s Unpacking r-cran-bslib (0.8.0+dfsg-1) ... 300s Selecting previously unselected package r-cran-commonmark. 300s Preparing to unpack .../088-r-cran-commonmark_1.9.2-2_s390x.deb ... 300s Unpacking r-cran-commonmark (1.9.2-2) ... 300s Selecting previously unselected package r-cran-crayon. 300s Preparing to unpack .../089-r-cran-crayon_1.5.3-1_all.deb ... 300s Unpacking r-cran-crayon (1.5.3-1) ... 300s Selecting previously unselected package r-cran-diffobj. 300s Preparing to unpack .../090-r-cran-diffobj_0.3.5-1_s390x.deb ... 300s Unpacking r-cran-diffobj (0.3.5-1) ... 300s Selecting previously unselected package r-cran-evaluate. 300s Preparing to unpack .../091-r-cran-evaluate_1.0.3-1_all.deb ... 300s Unpacking r-cran-evaluate (1.0.3-1) ... 300s Selecting previously unselected package r-cran-fansi. 300s Preparing to unpack .../092-r-cran-fansi_1.0.5-1_s390x.deb ... 300s Unpacking r-cran-fansi (1.0.5-1) ... 300s Selecting previously unselected package r-cran-fontawesome. 300s Preparing to unpack .../093-r-cran-fontawesome_0.5.3-1_all.deb ... 300s Unpacking r-cran-fontawesome (0.5.3-1) ... 300s Selecting previously unselected package r-cran-xfun. 300s Preparing to unpack .../094-r-cran-xfun_0.51+dfsg-1_s390x.deb ... 300s Unpacking r-cran-xfun (0.51+dfsg-1) ... 300s Selecting previously unselected package r-cran-highr. 300s Preparing to unpack .../095-r-cran-highr_0.11+dfsg-1_all.deb ... 300s Unpacking r-cran-highr (0.11+dfsg-1) ... 300s Selecting previously unselected package r-cran-pkgkitten. 300s Preparing to unpack .../096-r-cran-pkgkitten_0.2.4-1_all.deb ... 300s Unpacking r-cran-pkgkitten (0.2.4-1) ... 300s Selecting previously unselected package r-cran-rcpp. 300s Preparing to unpack .../097-r-cran-rcpp_1.0.14-1_s390x.deb ... 300s Unpacking r-cran-rcpp (1.0.14-1) ... 300s Selecting previously unselected package r-cran-later. 300s Preparing to unpack .../098-r-cran-later_1.4.1+dfsg-1_s390x.deb ... 300s Unpacking r-cran-later (1.4.1+dfsg-1) ... 300s Selecting previously unselected package r-cran-magrittr. 300s Preparing to unpack .../099-r-cran-magrittr_2.0.3-1_s390x.deb ... 300s Unpacking r-cran-magrittr (2.0.3-1) ... 300s Selecting previously unselected package r-cran-promises. 300s Preparing to unpack .../100-r-cran-promises_1.3.2+dfsg-1_s390x.deb ... 300s Unpacking r-cran-promises (1.3.2+dfsg-1) ... 300s Selecting previously unselected package r-cran-httpuv. 300s Preparing to unpack .../101-r-cran-httpuv_1.6.15+dfsg-1_s390x.deb ... 300s Unpacking r-cran-httpuv (1.6.15+dfsg-1) ... 300s Selecting previously unselected package r-cran-yaml. 300s Preparing to unpack .../102-r-cran-yaml_2.3.10-1_s390x.deb ... 300s Unpacking r-cran-yaml (2.3.10-1) ... 300s Selecting previously unselected package libjs-mathjax. 300s Preparing to unpack .../103-libjs-mathjax_2.7.9+dfsg-1_all.deb ... 300s Unpacking libjs-mathjax (2.7.9+dfsg-1) ... 301s Selecting previously unselected package r-cran-knitr. 301s Preparing to unpack .../104-r-cran-knitr_1.49+dfsg-1_all.deb ... 301s Unpacking r-cran-knitr (1.49+dfsg-1) ... 301s Selecting previously unselected package r-cran-tinytex. 301s Preparing to unpack .../105-r-cran-tinytex_0.56-1_all.deb ... 301s Unpacking r-cran-tinytex (0.56-1) ... 301s Selecting previously unselected package libjs-modernizr. 301s Preparing to unpack .../106-libjs-modernizr_3.13.0-0.1_all.deb ... 301s Unpacking libjs-modernizr (3.13.0-0.1) ... 301s Selecting previously unselected package r-cran-xtable. 301s Preparing to unpack .../107-r-cran-xtable_1%3a1.8-4-2_all.deb ... 301s Unpacking r-cran-xtable (1:1.8-4-2) ... 301s Selecting previously unselected package r-cran-sourcetools. 301s Preparing to unpack .../108-r-cran-sourcetools_0.1.7-1-1_s390x.deb ... 301s Unpacking r-cran-sourcetools (0.1.7-1-1) ... 301s Selecting previously unselected package r-cran-withr. 301s Preparing to unpack .../109-r-cran-withr_3.0.2+dfsg-1_all.deb ... 301s Unpacking r-cran-withr (3.0.2+dfsg-1) ... 301s Selecting previously unselected package libjs-twitter-bootstrap-datepicker. 301s Preparing to unpack .../110-libjs-twitter-bootstrap-datepicker_1.3.1+dfsg1-4.1_all.deb ... 301s Unpacking libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 301s Selecting previously unselected package r-cran-shiny. 301s Preparing to unpack .../111-r-cran-shiny_1.10.0+dfsg-2_all.deb ... 301s Unpacking r-cran-shiny (1.10.0+dfsg-2) ... 301s Selecting previously unselected package r-cran-rmarkdown. 301s Preparing to unpack .../112-r-cran-rmarkdown_2.29+dfsg-1_all.deb ... 301s Unpacking r-cran-rmarkdown (2.29+dfsg-1) ... 301s Selecting previously unselected package r-cran-unitizer. 301s Preparing to unpack .../113-r-cran-unitizer_1.4.21-1_all.deb ... 301s Unpacking r-cran-unitizer (1.4.21-1) ... 301s Setting up libjs-json (0~20221030+~1.0.8-1) ... 301s Setting up javascript-common (12) ... 301s Setting up libgraphite2-3:s390x (1.3.14-2ubuntu1) ... 301s Setting up libpixman-1-0:s390x (0.44.0-3) ... 301s Setting up libsharpyuv0:s390x (1.5.0-0.1) ... 301s Setting up fonts-mathjax (2.7.9+dfsg-1) ... 301s Setting up libjs-mathjax (2.7.9+dfsg-1) ... 301s Setting up libxrender1:s390x (1:0.9.10-1.1build1) ... 301s Setting up libdatrie1:s390x (0.2.13-3build1) ... 301s Setting up libjs-popper.js (1.16.1+ds-6) ... 301s Setting up libxcb-render0:s390x (1.17.0-2) ... 301s Setting up libjs-sifter.js (0.6.0+dfsg-3) ... 301s Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 301s Setting up unzip (6.0-28ubuntu6) ... 301s Setting up x11-common (1:7.7+23ubuntu3) ... 301s Setting up node-html5shiv (3.7.3+dfsg-5) ... 301s Setting up libdeflate0:s390x (1.23-1) ... 301s Setting up libjs-microplugin.js (0.0.3+dfsg-1.1) ... 301s Setting up libxcb-shm0:s390x (1.17.0-2) ... 301s Setting up libgomp1:s390x (15-20250222-0ubuntu1) ... 301s Setting up libjs-modernizr (3.13.0-0.1) ... 301s Setting up libjbig0:s390x (2.1-6.1ubuntu2) ... 301s Setting up libjs-es5-shim (4.6.7-2) ... 301s Setting up zip (3.0-14ubuntu2) ... 301s Setting up libblas3:s390x (3.12.1-2) ... 301s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so.3 to provide /usr/lib/s390x-linux-gnu/libblas.so.3 (libblas.so.3-s390x-linux-gnu) in auto mode 301s Setting up libfreetype6:s390x (2.13.3+dfsg-1) ... 301s Setting up libjs-d3 (3.5.17-4) ... 301s Setting up fonts-dejavu-mono (2.37-8) ... 301s Setting up libtcl8.6:s390x (8.6.16+dfsg-1) ... 301s Setting up fonts-dejavu-core (2.37-8) ... 301s Setting up libjpeg-turbo8:s390x (2.1.5-3ubuntu2) ... 301s Setting up libgfortran5:s390x (15-20250222-0ubuntu1) ... 301s Setting up libwebp7:s390x (1.5.0-0.1) ... 301s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 301s Setting up liblua5.4-0:s390x (5.4.7-1) ... 301s Setting up libharfbuzz0b:s390x (10.2.0-1) ... 301s Setting up libthai-data (0.1.29-2build1) ... 301s Setting up node-bootstrap-sass (3.4.3-2) ... 301s Setting up libjs-prettify (2015.12.04+dfsg-1.1) ... 301s Setting up libxss1:s390x (1:1.2.3-1build3) ... 301s Setting up libjs-bootstrap4 (4.6.1+dfsg1-4) ... 301s Setting up libpaper2:s390x (2.2.5-0.3) ... 301s Setting up pandoc-data (3.1.11.1-3build1) ... 301s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 301s Setting up node-normalize.css (8.0.1-5) ... 301s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 301s Setting up xdg-utils (1.2.1-2ubuntu1) ... 301s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 301s Setting up libjs-bootstrap (3.4.1+dfsg-3) ... 301s Setting up libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 301s Setting up libjpeg8:s390x (8c-2ubuntu11) ... 301s Setting up libice6:s390x (2:1.1.1-1) ... 301s Setting up liblapack3:s390x (3.12.1-2) ... 301s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/s390x-linux-gnu/liblapack.so.3 (liblapack.so.3-s390x-linux-gnu) in auto mode 301s Setting up fontconfig-config (2.15.0-2ubuntu1) ... 302s Setting up libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 302s Setting up libpaper-utils (2.2.5-0.3) ... 302s Setting up libjs-jquery-datatables (1.11.5+dfsg-2) ... 302s Setting up libthai0:s390x (0.1.29-2build1) ... 302s Setting up libjs-jquery-ui (1.13.2+dfsg-1) ... 302s Setting up pandoc (3.1.11.1+ds-2) ... 302s Setting up libtiff6:s390x (4.5.1+git230720-4ubuntu4) ... 302s Setting up libfontconfig1:s390x (2.15.0-2ubuntu1) ... 302s Setting up libsm6:s390x (2:1.2.4-1) ... 302s Setting up fontconfig (2.15.0-2ubuntu1) ... 304s Regenerating fonts cache... done. 304s Setting up libxft2:s390x (2.3.6-1build1) ... 304s Setting up libtk8.6:s390x (8.6.16-1) ... 304s Setting up libpango-1.0-0:s390x (1.56.2-1) ... 304s Setting up libcairo2:s390x (1.18.2-2) ... 304s Setting up libxt6t64:s390x (1:1.2.1-1.2build1) ... 304s Setting up libpangoft2-1.0-0:s390x (1.56.2-1) ... 304s Setting up libpangocairo-1.0-0:s390x (1.56.2-1) ... 304s Setting up r-base-core (4.4.3-1) ... 304s Creating config file /etc/R/Renviron with new version 304s Setting up r-cran-crayon (1.5.3-1) ... 304s Setting up r-cran-sourcetools (0.1.7-1-1) ... 304s Setting up r-cran-commonmark (1.9.2-2) ... 304s Setting up r-cran-r6 (2.6.1-1) ... 304s Setting up r-cran-pkgkitten (0.2.4-1) ... 304s Setting up r-cran-magrittr (2.0.3-1) ... 304s Setting up r-cran-rappdirs (0.3.3-1) ... 304s Setting up r-cran-littler (0.3.20-2) ... 304s Setting up r-cran-fs (1.6.5+dfsg-1) ... 304s Setting up r-cran-rcpp (1.0.14-1) ... 304s Setting up r-cran-diffobj (0.3.5-1) ... 304s Setting up r-cran-rlang (1.1.5-1) ... 304s Setting up littler (0.3.20-2) ... 304s Setting up r-cran-xfun (0.51+dfsg-1) ... 304s Setting up r-cran-withr (3.0.2+dfsg-1) ... 304s Setting up r-cran-mime (0.12-2) ... 304s Setting up r-cran-base64enc (0.1-3-3) ... 304s Setting up r-cran-digest (0.6.37-1) ... 304s Setting up r-cran-yaml (2.3.10-1) ... 304s Setting up r-cran-evaluate (1.0.3-1) ... 304s Setting up r-cran-highr (0.11+dfsg-1) ... 304s Setting up r-cran-fansi (1.0.5-1) ... 304s Setting up r-cran-glue (1.8.0-1) ... 304s Setting up r-cran-xtable (1:1.8-4-2) ... 304s Setting up r-cran-cli (3.6.4-1) ... 304s Setting up r-cran-lifecycle (1.0.4+dfsg-1) ... 304s Setting up r-cran-fastmap (1.2.0-1) ... 304s Setting up r-cran-jsonlite (1.9.1+dfsg-1) ... 304s Setting up r-cran-later (1.4.1+dfsg-1) ... 304s Setting up r-cran-htmltools (0.5.8.1-1) ... 304s Setting up r-cran-tinytex (0.56-1) ... 304s Setting up r-cran-knitr (1.49+dfsg-1) ... 304s Setting up r-cran-cachem (1.1.0-1) ... 304s Setting up r-cran-sass (0.4.9+dfsg-1) ... 304s Setting up r-cran-unitizer (1.4.21-1) ... 304s Setting up r-cran-fontawesome (0.5.3-1) ... 304s Setting up r-cran-jquerylib (0.1.4+dfsg-4) ... 304s Setting up r-cran-memoise (2.0.1-1) ... 304s Setting up r-cran-promises (1.3.2+dfsg-1) ... 304s Setting up r-cran-httpuv (1.6.15+dfsg-1) ... 304s Setting up r-cran-bslib (0.8.0+dfsg-1) ... 304s Setting up r-cran-shiny (1.10.0+dfsg-2) ... 304s Setting up r-cran-rmarkdown (2.29+dfsg-1) ... 304s Processing triggers for libc-bin (2.41-1ubuntu2) ... 304s Processing triggers for man-db (2.13.0-1) ... 305s Processing triggers for install-info (7.1.1-1) ... 306s autopkgtest [18:05:08]: test run-unit-test: [----------------------- 306s BEGIN TEST run.R 306s 306s R version 4.4.3 (2025-02-28) -- "Trophy Case" 306s Copyright (C) 2025 The R Foundation for Statistical Computing 306s Platform: s390x-ibm-linux-gnu 306s 306s R is free software and comes with ABSOLUTELY NO WARRANTY. 306s You are welcome to redistribute it under certain conditions. 306s Type 'license()' or 'licence()' for distribution details. 306s 306s R is a collaborative project with many contributors. 306s Type 'contributors()' for more information and 306s 'citation()' on how to cite R or R packages in publications. 306s 306s Type 'demo()' for some demos, 'help()' for on-line help, or 306s 'help.start()' for an HTML browser interface to help. 306s Type 'q()' to quit R. 306s 306s > # to avoid variability on terminals with different capabilities 306s > # plus generally random options being set 306s > 306s > if(getRversion() < "3.2.2") { 306s + warning("Cannot run tests with R version less than 3.2.2.") 306s + } else if(!suppressWarnings(require('fansi'))) { 306s + # this is to avoid accidentally running tests under valgrind without fansi 306s + # installed... (no, we've never done this...) 306s + warning("Cannot run tests without package `fansi`") 306s + } else if(!suppressWarnings(require('unitizer'))) { 306s + warning("Cannot run tests without package `unitizer`") 306s + } else { 306s + old.opt <- options( 306s + fansi.tabs.as.spaces=FALSE, 306s + fansi.tab.stops=8L, 306s + fansi.warn=TRUE, 306s + fansi.term.cap=c('bright', '256') 306s + # warnPartialMatchArgs = TRUE, 306s + # warnPartialMatchAttr = TRUE, 306s + # warnPartialMatchDollar = TRUE 306s + ) 306s + on.exit(old.opt) 306s + pat.all <- "^[^.].*\\.[Rr]$" 306s + pattern <- pat.all 306s + # pattern <- "over" 306s + unitize_dir( 306s + 'unitizer', 306s + pattern=pattern, 306s + state='suggested' 306s + ) 306s + # we skip utf8 tests on solaris due to the problems with deparse (and maybe 306s + # others, don't have a solaris system handy for testing). 306s + if( 306s + !grepl("solaris|sun", Sys.info()[['sysname']], ignore.case=TRUE) && 306s + identical(pattern, pat.all) 306s + ) { 306s + unitize('special/utf8.R', state='suggested') 306s + } 306s + # UCD 12.1 update in 4.0.4 produces correct widths for emoji 306s + if(getRversion() >= "4.0.4" && identical(pattern, pat.all)) 306s + unitize('special/emo-graph.R', state='suggested') 306s + } 306s Loading required package: fansi 306s Loading required package: unitizer 306s 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. 306s 306s Preloads... 306s Loading unitizer data... 306s Parsing tests... 306s Parsing has.R 306s Parsing interactions.R 306s Parsing misc.R 307s Parsing nchar.R 307s Parsing normalize.R 307s Parsing overflow.R 307s Parsing strip.R 307s Parsing strsplit.R 307s Parsing substr.R 307s Parsing tabs.R 307s Parsing tohtml.R 307s Parsing trimws.R 307s Parsing url.R 307s Parsing wrap.R 308s Evaluating tests... 308s 308s 1/14 has.R: 308s 1/14 has.R: library(fansi) 308s 1/14 has.R: unitizer_sect("has", { 308s 1/14 has.R: has_ctl(paste0(red, "hello", end)) 308s [1] TRUE 308s 1/14 has.R: has_ctl(paste0("hello", end)) 308s [1] TRUE 308s 1/14 has.R: has_ctl(paste0("hello")) 308s [1] FALSE 308s 1/14 has.R: in.middle <- c("world", paste0("hello", red), "wow") 308s 1/14 has.R: in.end <- c("world", "wow", paste0("hello", red)) 308s 1/14 has.R: in.start <- c(paste0("hello", red), "wow", "world") 308s 1/14 has.R: has_ctl(in.middle) 308s [1] FALSE TRUE FALSE 308s 1/14 has.R: has_ctl(in.end) 308s [1] FALSE FALSE TRUE 308s 1/14 has.R: has_ctl(in.start) 308s [1] TRUE FALSE FALSE 308s 1/14 has.R: has_ctl(c(in.start, NA)) 308s [1] TRUE FALSE FALSE NA 308s 1/14 has.R: has_ctl("hello\nworld") 308s [1] TRUE 308s 1/14 has.R: has_sgr("hello\nworld") 308s [1] FALSE 308s 1/14 has.R: has_sgr(in.end) 308s [1] FALSE FALSE TRUE 308s 1/14 has.R: has_ctl("hello\033p world") 308s [1] TRUE 308s 1/14 has.R: unitizer_sect("corner cases", { 308s 1/14 has.R: has_ctl("hello\033[31#0mworld") 308s [1] TRUE 308s 1/14 has.R: suppressWarnings(has_ctl("hello\033[31#0mworld")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello world", ctl = c("sgr", "sgr")) 308s [1] FALSE 308s 1/14 has.R: has_ctl("hello\033[31#0") 308s [1] TRUE 308s Warning in has_ctl("hello\033[31#0") : 308s 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. 308s 1/14 has.R: unitizer_sect("select ctl", { 308s 1/14 has.R: has_ctl("hello\033[31mworld", ctl = c("sgr")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello\033[31mworld", ctl = c("csi")) 308s [1] FALSE 308s 1/14 has.R: has_ctl("hello\033[31!mworld", ctl = c("sgr")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello\033[31!mworld", ctl = c("csi")) 308s [1] FALSE 308s 1/14 has.R: has_ctl("hello\033[31lworld", ctl = c("csi")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello\nworld", ctl = c("all", "nl")) 308s [1] FALSE 308s 1/14 has.R: has_ctl("hello\nworld", ctl = c("all", "c0")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello\tworld", ctl = c("all", "c0")) 308s [1] FALSE 308s 1/14 has.R: has_ctl("hello\tworld", ctl = c("c0")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello\033pworld", ctl = c("esc")) 308s [1] TRUE 308s 1/14 has.R: has_ctl("hello\033pworld", ctl = c("all", "esc")) 308s [1] FALSE 308s 1/14 has.R: unitizer_sect("bad inputs", { 308s 1/14 has.R: has_ctl("hello world", warn = NULL) 308s Error in has_ctl("hello world", warn = NULL) : 308s Argument `warn` must be TRUE or FALSE. 308s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 308s 1/14 has.R: has_ctl("hello world", ctl = 1:3) 308s Error in has_ctl("hello world", ctl = 1:3) : 308s Argument `ctl` must be character. 308s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 308s 1/14 has.R: has_ctl("hello world", ctl = "bananas") 308s 1/14 has.R: has_ctl("hello world", ctl = NA_character_) 308s Error in has_ctl("hello world", ctl = "bananas") : 308s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 308s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 308s Error in has_ctl("hello world", ctl = NA_character_) : 308s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 308s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 308s 1/14 has.R: has_ctl(c("\033[31mhello", "wo\nrld"), ctl = character()) 308s [1] FALSE FALSE 308s 1/14 has.R: unitizer_sect("deprecation", { 308s 1/14 has.R: has_ctl("hello world", which = "sgr") 308s [1] FALSE 308s Parameter `which` has been deprecated; use `ctl` instead. 308s 308s 2/14 interactions.R: 308s 2/14 interactions.R: library(fansi) 308s 2/14 interactions.R: unitizer_sect("substr", { 308s 2/14 interactions.R: str.0 <- c("\033[44mhello", "world") 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4) 308s [1] "\033[44mell\033[0m" "orl" 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = TRUE) 308s [1] "\033[44mell\033[0m" "\033[44morl\033[0m" 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = "\033[33m") 308s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 308s 2/14 interactions.R: substr2_ctl(str.0, 2, 4, carry = "\033[33m") 308s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 308s 2/14 interactions.R: substr_sgr(str.0, 2, 4, carry = "\033[33m") 308s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 308s 2/14 interactions.R: substr2_sgr(str.0, 2, 4, carry = "\033[33m") 308s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 308s 2/14 interactions.R: str.1 <- c("hello", "\033[44mworld", "barrow") 308s 2/14 interactions.R: substr_ctl(str.1, 2, 4) 308s [1] "ell" "\033[44morl\033[0m" "arr" 308s 2/14 interactions.R: substr_ctl(str.1, 2, 4, carry = TRUE) 308s [1] "ell" "\033[44morl\033[0m" "\033[44marr\033[0m" 308s 2/14 interactions.R: substr_ctl(str.1, 2, 4, carry = "\033[33m") 308s [1] "\033[33mell\033[0m" "\033[33;44morl\033[0m" "\033[33;44marr\033[0m" 308s 2/14 interactions.R: str.2 <- c("\033[33mA\033[44mBCD", "ABCD", "\033[39mABCD") 308s 2/14 interactions.R: substr_ctl(str.2, 2, 2) 308s [1] "\033[33;44mB\033[0m" "B" "B" 308s 2/14 interactions.R: substr_ctl(str.2, 2, 2, carry = TRUE) 308s [1] "\033[33;44mB\033[0m" "\033[33;44mB\033[0m" "\033[44mB\033[0m" 308s 2/14 interactions.R: substr_ctl(str.2, 2, 2, carry = TRUE, terminate = FALSE) 308s [1] "\033[33;44mB" "B" "\033[0;44mB" 308s 2/14 interactions.R: str.3 <- c("\033[35mA\033[42mB", "\033[49mCD") 308s 2/14 interactions.R: substr_ctl(str.3, 2, 2, carry = TRUE, terminate = FALSE) 308s [1] "\033[35;42mB" "\033[0;35mD" 308s 2/14 interactions.R: wrp.0 <- c("once upon \033[44ma time in a land far away ov 308s 2/14 interactions.R: unitizer_sect("wrap/trim", { 308s 2/14 interactions.R: strwrap_ctl(wrp.0, 20) 308s [1] "once upon \033[44ma time in\033[0m" "\033[44ma land far away\033[0m" 308s [3] "\033[44mover\033[0m" "the mountains and" 308s [5] "\033[7msea lived a fair\033[0m" "\033[7mcreature\033[0m" 308s [7] "with \033[4mdark itentions\033[0m" "\033[4mand a yappy dog.\033[0m" 308s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = TRUE) 308s [1] "once upon \033[44ma time in\033[0m" 308s [2] "\033[44ma land far away\033[0m" 308s [3] "\033[44mover\033[0m" 308s [4] "\033[44mthe mountains and\033[0m" 308s [5] "\033[7;44msea lived a fair\033[0m" 308s [6] "\033[7;44mcreature\033[0m" 308s [7] "\033[7;44mwith \033[4mdark itentions\033[0m" 308s [8] "\033[4;7;44mand a yappy dog.\033[0m" 308s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in\033[0m" 308s [2] "\033[33;44ma land far away\033[0m" 308s [3] "\033[33;44mover\033[0m" 308s [4] "\033[33;44mthe mountains and\033[0m" 308s [5] "\033[7;33;44msea lived a fair\033[0m" 308s [6] "\033[7;33;44mcreature\033[0m" 308s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 308s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 308s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in\033[0m" 308s [2] "\033[33;44ma land far away\033[0m" 308s [3] "\033[33;44mover\033[0m" 308s [4] "\033[33;44mthe mountains and\033[0m" 308s [5] "\033[7;33;44msea lived a fair\033[0m" 308s [6] "\033[7;33;44mcreature\033[0m" 308s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 308s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 308s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in\033[0m" 308s [2] "\033[33;44ma land far away\033[0m" 308s [3] "\033[33;44mover\033[0m" 308s [4] "\033[33;44mthe mountains and\033[0m" 308s [5] "\033[7;33;44msea lived a fair\033[0m" 308s [6] "\033[7;33;44mcreature\033[0m" 308s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 308s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 308s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in\033[0m" 308s [2] "\033[33;44ma land far away\033[0m" 308s [3] "\033[33;44mover\033[0m" 308s [4] "\033[33;44mthe mountains and\033[0m" 308s [5] "\033[7;33;44msea lived a fair\033[0m" 308s [6] "\033[7;33;44mcreature\033[0m" 308s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 308s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 308s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in \033[0m" 308s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 308s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 308s 2/14 interactions.R: strtrim_sgr(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in \033[0m" 308s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 308s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 308s 2/14 interactions.R: strtrim2_ctl(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in \033[0m" 308s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 308s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 308s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in \033[0m" 308s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 308s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 308s 2/14 interactions.R: wrp.1 <- c("once upon \033[44ma time in a land far away ov 308s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, carry = "\033[33m") 308s [1] "\033[33monce upon \033[44ma time in \033[0m" 308s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 308s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 308s 2/14 interactions.R: wrp.2 <- c("hello \033[42mworld", "goodnight\033[49m moon" 308s 2/14 interactions.R: strwrap_ctl(wrp.2, 10, carry = "\033[35m", simplify = FALS 308s [[1]] 308s [1] "\033[35mhello\033[0m" "\033[35;42mworld\033[0m" 308s 308s [[2]] 308s [1] "\033[35;42mgoodnight\033[0m" "\033[35mmoon\033[0m" 308s 308s [[3]] 308s [1] "\033[35moh \033[39mboy" 308s 308s 2/14 interactions.R: strwrap_ctl(wrp.2, 10, carry = "\033[35m", simplify = FALS 308s [[1]] 308s [1] "hello" "\033[42mworld" 308s 308s [[2]] 308s [1] "goodnight" "\033[0;35mmoon" 308s 308s [[3]] 308s [1] "oh \033[39mboy" 308s 308s 2/14 interactions.R: unitizer_sect("normalize", { 308s 2/14 interactions.R: str.2 <- c("\033[44mhello", "wo\033[mrld", "barrow") 308s 2/14 interactions.R: normalize_state(str.2) 308s [1] "\033[44mhello" "world" "barrow" 308s 2/14 interactions.R: normalize_state(str.2, carry = TRUE) 308s [1] "\033[44mhello" "wo\033[49mrld" "barrow" 308s 2/14 interactions.R: normalize_state(str.2, carry = "\033[33m") 308s [1] "\033[44mhello" "wo\033[39m\033[49mrld" "barrow" 308s 2/14 interactions.R: unitizer_sect("carry corner cases", { 308s 2/14 interactions.R: substr_ctl("", 2, 3, carry = "\033[33m") 308s [1] "" 308s 2/14 interactions.R: substr_ctl("", 2, 3, carry = "\033[33m", terminate = FALSE 308s [1] "" 308s 2/14 interactions.R: substr_ctl("\033[39m", 2, 3, carry = "\033[33m", terminate 308s [1] "\033[0m" 308s 2/14 interactions.R: substr_ctl("\033[39m", 2, 3, carry = "\033[33m", terminate 308s [1] "\033[39m" 308s 2/14 interactions.R: substr_ctl("", 0, 1, carry = "\033[33m") 308s [1] "" 308s 2/14 interactions.R: substr_ctl("", 0, 1, carry = "\033[33m", terminate = FALSE 308s [1] "" 308s 2/14 interactions.R: substr_ctl("\033[39m", 0, 1, carry = "\033[33m", terminate 308s [1] "\033[0m" 308s 2/14 interactions.R: substr_ctl("\033[39m", 0, 1, carry = "\033[33m", terminate 308s [1] "\033[39m" 308s 2/14 interactions.R: substr_ctl("", 0, 0, carry = "\033[33m") 308s [1] "" 308s 2/14 interactions.R: substr_ctl("", 0, 0, carry = "\033[33m", terminate = FALSE 308s [1] "" 308s 2/14 interactions.R: substr_ctl("\033[39m", 0, 0, carry = "\033[33m", terminate 308s [1] "" 308s 2/14 interactions.R: substr_ctl(character(), 2, 4, carry = "\033[33m") 308s character(0) 308s 2/14 interactions.R: substr_ctl(NA, 2, 4, carry = "\033[33m") 308s [1] NA 308s 2/14 interactions.R: substr_ctl(environment(), 2, 4, carry = "\033[33m") 308s Error in as.character(args[["x"]]) : 308s cannot coerce type 'environment' to vector of type 'character' 308s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV 308s 2/14 interactions.R: substr_ctl("hello", 2, 4, carry = c("\033[33m", "\033[44m" 308s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 308s Argument `carry` must be scalar. 308s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = NA_character_) 308s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 308s Argument `carry` may not be NA. 308s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = character()) 308s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 308s Argument `carry` must be scalar. 308s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = 1) 308s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 308s Argument `carry` must be logical or character. 308s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = Inf) 308s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 308s Argument `carry` must be logical or character. 308s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: sgrs <- c("A\033[31mB", "C\033[1mD", "E\033[4mF", "G\033[1 308s 2/14 interactions.R: substr_ctl(sgrs, 2, 2, carry = TRUE) 308s [1] "\033[31mB\033[0m" "\033[1;31mD\033[0m" 308s [3] "\033[1;4;31mF\033[0m" "\033[1;4;31;13mH\033[0m" 308s [5] "\033[1;4;31;62;13mJ\033[0m" "\033[1;4;62;13mL\033[0m" 308s [7] "\033[1;4;52;62;13mN\033[0m" "\033[1;4;52;13mP\033[0m" 308s [9] "\033[4;52;13mR\033[0m" "\033[52;13mT\033[0m" 308s [11] "\033[13mU\033[0m" "W" 308s 2/14 interactions.R: normalize_state(str.2, carry = NA_character_) 308s Error in normalize_state(str.2, carry = NA_character_) : 308s Argument `carry` may not be NA. 308s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: normalize_state(str.2, carry = character()) 308s 2/14 interactions.R: normalize_state(str.2, carry = 1) 308s 2/14 interactions.R: normalize_state(str.2, carry = Inf) 308s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = NA_character_) 308s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, carry = character()) 308s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, carry = 1) 308s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, carry = Inf) 308s Error in normalize_state(str.2, carry = character()) : 308s Argument `carry` must be scalar. 308s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 308s Error in normalize_state(str.2, carry = 1) : 308s Argument `carry` must be logical or character. 308s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 308s Error in normalize_state(str.2, carry = Inf) : 308s Argument `carry` must be logical or character. 308s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 308s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 308s Argument `carry` may not be NA. 308s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 308s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 308s Argument `carry` must be scalar. 308s Calls: unitize_dir ... strwrap_sgr -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 308s Error in strwrap2_ctl(wrp.0, 20, carry = 1) : 308s Argument `carry` must be logical or character. 308s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 308s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 308s Argument `carry` must be logical or character. 308s Calls: unitize_dir ... strwrap2_sgr -> strwrap2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: strwrap_ctl(c("\033[33mA \033[4mB", "\033[44mC D"), carry 308s [1] "\033[33mA\033[0m" "\033[4;33mB\033[0m" "\033[4;33;44mC\033[0m" 308s [4] "\033[4;33;44mD\033[0m" 308s 2/14 interactions.R: unitizer_sect("terminate", { 308s 2/14 interactions.R: str.0 <- c("hel\033[33m", "wo\033[44mrld") 308s 2/14 interactions.R: substr_ctl(str.0, 2, 5, terminate = FALSE) 308s [1] "el\033[33m" "o\033[44mrld" 308s 2/14 interactions.R: substr_sgr(str.0, 2, 5, terminate = FALSE) 308s [1] "el\033[33m" "o\033[44mrld" 308s 2/14 interactions.R: substr2_ctl(str.0, 2, 5, terminate = FALSE) 308s [1] "el\033[33m" "o\033[44mrld" 308s 2/14 interactions.R: substr2_sgr(str.0, 2, 5, terminate = FALSE) 308s [1] "el\033[33m" "o\033[44mrld" 308s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in" "a land far away" 308s [3] "over" "the mountains and" 308s [5] "\033[7msea lived a fair" "creature" 308s [7] "with \033[4mdark itentions" "and a yappy dog." 308s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in" "a land far away" 308s [3] "over" "the mountains and" 308s [5] "\033[7msea lived a fair" "creature" 308s [7] "with \033[4mdark itentions" "and a yappy dog." 308s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in" "a land far away" 308s [3] "over" "the mountains and" 308s [5] "\033[7msea lived a fair" "creature" 308s [7] "with \033[4mdark itentions" "and a yappy dog." 308s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in" "a land far away" 308s [3] "over" "the mountains and" 308s [5] "\033[7msea lived a fair" "creature" 308s [7] "with \033[4mdark itentions" "and a yappy dog." 308s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 308s [3] "with \033[4mdark itentions " 308s 2/14 interactions.R: strtrim_sgr(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 308s [3] "with \033[4mdark itentions " 308s 2/14 interactions.R: strtrim2_ctl(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 308s [3] "with \033[4mdark itentions " 308s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, terminate = FALSE) 308s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 308s [3] "with \033[4mdark itentions " 308s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, terminate = NA) 308s Error in strtrim2_ctl(x = x, width = width, warn = warn, tabs.as.spaces = tabs.as.spaces, : 308s Argument `terminate` must be TRUE or FALSE 308s Calls: unitize_dir ... strtrim2_sgr -> strtrim2_ctl -> VAL_IN_ENV -> stop2 308s 2/14 interactions.R: unitizer_sect("bridge", { 308s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[31m") 308s [1] "\033[0;31m" 308s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[31m", normalize = TRUE) 308s [1] "\033[49m\033[31m" 308s 2/14 interactions.R: fansi:::bridge("", "\033[31m") 308s [1] "\033[31m" 308s 2/14 interactions.R: fansi:::bridge("\033[42m", "") 308s [1] "\033[0m" 308s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[42m") 308s [1] "" 308s 2/14 interactions.R: end <- c("\033[31", "\033[41m", NA_character_, "\033[44m") 309s 2/14 interactions.R: restart <- c("", NA_character_, "\033[45m", "\033[45m") 309s 2/14 interactions.R: fansi:::bridge(end, restart) 309s [1] "" "" "" "\033[45m" 309s 2/14 interactions.R: base.st <- "%s\033]8;%s;%s\033\\" 309s 2/14 interactions.R: url <- "https://x.yz" 309s 2/14 interactions.R: u0 <- sprintf(base.st, "", "", url) 309s 2/14 interactions.R: fansi:::bridge(paste0("\033[42m", u0), "\033[31m") 309s [1] "\033[0;31m\033]8;;\033\\" 309s 2/14 interactions.R: fansi:::bridge("\033[31m", paste0("\033[42m", u0)) 309s [1] "\033[0;42m\033]8;;https://x.yz\033\\" 309s 2/14 interactions.R: txt <- c("A\033[31mBC", "D\033[39mE\033[42mF") 309s 2/14 interactions.R: `substr_ctl<-`(txt, 2, 2, value = "?", normalize = TRUE, c 309s [1] "A?\033[31mC" "D\033[39m?\033[42mF" 309s 2/14 interactions.R: unitizer_sect("at end / close", { 309s 2/14 interactions.R: x <- c("a\033[31mb", "c", "\033[42md") 309s 2/14 interactions.R: state_at_end(x) 309s [1] "\033[31m" "" "\033[42m" 309s 2/14 interactions.R: state_at_end(x, carry = TRUE) 309s [1] "\033[31m" "\033[31m" "\033[31;42m" 309s 2/14 interactions.R: state_at_end(x, carry = TRUE, normalize = TRUE) 309s [1] "\033[31m" "\033[31m" "\033[31m\033[42m" 309s 2/14 interactions.R: state_at_end("a\033[pb") 309s Warning in state_at_end("a\033[pb") : 309s 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. 309s [1] "" 309s 2/14 interactions.R: state_at_end("a\033[pb", warn = FALSE) 309s [1] "" 309s 2/14 interactions.R: state_at_end(c("\033[42mA", NA_character_, "\033[31mA")) 309s [1] "\033[42m" NA "\033[31m" 309s 2/14 interactions.R: state_at_end(c("\033[42mA", NA_character_, "\033[31mA"), c 309s [1] "\033[42m" NA NA 309s 2/14 interactions.R: close_state(x) 309s [1] "\033[0m" "" "\033[0m" 309s 2/14 interactions.R: close_state(x, normalize = TRUE) 309s [1] "\033[39m" "" "\033[49m" 309s 2/14 interactions.R: close_state("a\033[pb") 309s Warning in close_state("a\033[pb") : 309s 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. 309s [1] "" 309s 2/14 interactions.R: close_state("a\033[pb", warn = FALSE) 309s [1] "" 309s 2/14 interactions.R: state_no_arg <- function(x) { 309s 2/14 interactions.R: x <- "\360" 309s 2/14 interactions.R: Encoding(x) <- "UTF-8" 309s 2/14 interactions.R: state_no_arg(x) 309s [1] "Encountered a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 309s 2/14 interactions.R: y <- "\033[45phello" 309s 2/14 interactions.R: state_no_arg(y) 309s [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." 309s 309s 3/14 misc.R: 309s 3/14 misc.R: library(unitizer) 309s 3/14 misc.R: library(fansi) 309s 3/14 misc.R: unitizer_sect("term_cap_test", { 309s 3/14 misc.R: tct <- term_cap_test() 309s bright  -> \033[91;104mbright \033[0m 309s 256  -> \033[38;5;196;48;5;21m256 \033[0m 309s truecolor -> \033[38;2;255;0;0;48;2;0;0;255mtruecolor\033[0m 309s 3/14 misc.R: tct 309s [1] "\033[91;104mbright \033[0m" 309s [2] "\033[38;5;196;48;5;21m256 \033[0m" 309s [3] "\033[38;2;255;0;0;48;2;0;0;255mtruecolor\033[0m" 309s 3/14 misc.R: fansi_lines(LETTERS, step = 6) 309s [1] "\033[37;48;5;23mA\033[39;49m" "\033[37;48;5;29mB\033[39;49m" 309s [3] "\033[30;48;5;35mC\033[39;49m" "\033[30;48;5;41mD\033[39;49m" 309s [5] "\033[30;48;5;47mE\033[39;49m" "\033[37;48;5;53mF\033[39;49m" 309s [7] "\033[37;48;5;59mG\033[39;49m" "\033[37;48;5;65mH\033[39;49m" 309s [9] "\033[30;48;5;71mI\033[39;49m" "\033[30;48;5;77mJ\033[39;49m" 309s [11] "\033[30;48;5;83mK\033[39;49m" "\033[37;48;5;89mL\033[39;49m" 309s [13] "\033[37;48;5;95mM\033[39;49m" "\033[37;48;5;101mN\033[39;49m" 309s [15] "\033[30;48;5;107mO\033[39;49m" "\033[30;48;5;113mP\033[39;49m" 309s [17] "\033[30;48;5;119mQ\033[39;49m" "\033[37;48;5;125mR\033[39;49m" 309s [19] "\033[37;48;5;131mS\033[39;49m" "\033[37;48;5;137mT\033[39;49m" 309s [21] "\033[30;48;5;143mU\033[39;49m" "\033[30;48;5;149mV\033[39;49m" 309s [23] "\033[30;48;5;155mW\033[39;49m" "\033[37;48;5;161mX\033[39;49m" 309s [25] "\033[37;48;5;167mY\033[39;49m" "\033[37;48;5;173mZ\033[39;49m" 309s 3/14 misc.R: local({ 309s [1] "" "a" 309s 3/14 misc.R: unitizer_sect("add_int", { 309s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 309s 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. 309s 3/14 misc.R: fansi:::add_int(1, 1) 309s [1] 2 309s Error in fansi:::add_int(2^31 - 1, 1) : 309s Integer overflow in file utils.c at line 99; contact maintainer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 3/14 misc.R: fansi:::add_int(2^31 - 1, 1) 309s 3/14 misc.R: fansi:::add_int(2^31 - 1, 0) 309s [1] 2147483647 309s 3/14 misc.R: fansi:::add_int(-2^31 + 1, 0) 309s [1] -2147483647 309s Error in fansi:::add_int(-2^31 + 1, -1) : 309s Integer overflow in file utils.c at line 99; contact maintainer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 3/14 misc.R: fansi:::add_int(-2^31 + 1, -1) 309s 3/14 misc.R: unitizer_sect("unhandled", { 309s 3/14 misc.R: string.0 <- c("\033[41mhello world\033[m", "foo\033[22>m", "\033[9 309s 3/14 misc.R: unhandled_ctl(string.0) 309s index start stop error translated esc 309s 1 2 4 9 invalid-substr FALSE \033[22>m 309s 2 3 1 6 invalid-substr FALSE \033[999m 309s 3 4 5 11 invalid-substr FALSE \033[31#3m 309s 4 5 2 6 non-SGR/hyperlink FALSE \033[31k 309s 5 6 6 7 non-CSI/OSC FALSE \033m 309s 3/14 misc.R: string.1 <- c("foo\033[22>mhello\033[9999m", "a\033[31k", "hello\0 309s 3/14 misc.R: unhandled_ctl(string.1) 309s index start stop error translated esc 309s 1 1 4 9 invalid-substr FALSE \033[22>m 309s 2 1 15 21 invalid-substr FALSE \033[9999m 309s 3 2 2 6 non-SGR/hyperlink FALSE \033[31k 309s 4 3 6 7 non-CSI/OSC FALSE \033m 309s 5 3 9 14 unknown-substr FALSE \033[180m 309s 6 3 21 21 malformed-ESC FALSE \033 309s 3/14 misc.R: unhandled_ctl("hello\033\033\033[45p wor\ald") 309s index start stop error translated esc 309s 1 1 6 7 malformed-ESC FALSE \033\033 309s 2 1 8 12 non-SGR/hyperlink FALSE \033[45p 309s 3 1 17 17 C0 FALSE \a 309s 3/14 misc.R: unhandled_ctl("\033[38;5;220mworld\033[m", "bright") 309s index start stop error translated esc 309s 1 1 1 11 exceed-term-cap FALSE \033[38;5;220m 309s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bright") 309s index start stop error translated esc 309s 1 1 1 16 exceed-term-cap FALSE \033[38;2;10;20;30m 309s Error in unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bri") : 309s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 309s Calls: unitize_dir ... withVisible -> unhandled_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bri") 309s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", NULL) 309s Error in unhandled_ctl("\033[38;2;10;20;30mworld\033[m", NULL) : 309s Argument `term.cap` must be character. 309s Calls: unitize_dir ... withVisible -> unhandled_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: unhandled_ctl("AB\033[34m\033]9\033\\\033[1m\033[2LCD") 309s index start stop error translated esc 309s 1 1 17 20 non-SGR/hyperlink FALSE \033[2L 309s 3/14 misc.R: unhandled_ctl("AB\033[34m\033]9\033[1m\033[2LCD") 309s index start stop error translated esc 309s 1 1 8 20 malformed-CSI/OSC FALSE \033]9\033[1m\033[2LCD 309s 3/14 misc.R: unhandled_ctl("A\033[45#1pB\033[256pC\033[256mD") 309s index start stop error translated esc 309s 1 1 2 8 CSI/OSC-bad-substr FALSE \033[45#1p 309s 2 1 10 15 non-SGR/hyperlink FALSE \033[256p 309s 3 1 17 22 invalid-substr FALSE \033[256m 309s 3/14 misc.R: unhandled_ctl("\033[38m") 309s index start stop error translated esc 309s 1 1 1 5 invalid-substr FALSE \033[38m 309s 3/14 misc.R: unitizer_sect("strtrim", { 309s 3/14 misc.R: strtrim_ctl(" hello world", 7) 309s [1] " hello " 309s 3/14 misc.R: strtrim_ctl("\033[42m hello world\033[m", 7) 309s [1] "\033[42m hello \033[0m" 309s 3/14 misc.R: strtrim_ctl(" hello\nworld", 7) 309s [1] " hello\nw" 309s 3/14 misc.R: strtrim_ctl("\033[42m hello\nworld\033[m", 7) 309s [1] "\033[42m hello\nw\033[0m" 309s 3/14 misc.R: strtrim_ctl("\nhello\nworld", 7) 309s [1] "\nhello\nwo" 309s 3/14 misc.R: strtrim_ctl("\033[42m\nhello\nworld\033[m", 7) 309s [1] "\033[42m\nhello\nwo\033[0m" 309s 3/14 misc.R: strtrim_ctl("\thello\rworld foobar", 12) 309s Warning in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 309s Warning in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 309s [1] "\thello\rworld f" 309s 3/14 misc.R: strtrim_ctl("\033[42m\thello\rworld\033[m foobar", 12) 309s [1] "\033[42m\thello\rworld\033[m f" 309s 3/14 misc.R: strtrim2_ctl("\033[42m\thello world\033[m foobar", 12, tabs.as.spa 309s [1] "\033[42m hell\033[0m" 309s 3/14 misc.R: strtrim_sgr("\033[42m\the\allo world\033[m foobar", 12, warn = FAL 309s [1] "\033[42m\the\allo worl\033[0m" 309s 3/14 misc.R: strtrim2_sgr("\033[42m\the\allo world\033[m foobar", 12, tabs.as.s 309s [1] "\033[42m he\allo wor\033[0m" 309s 3/14 misc.R: identical(strtrim_ctl(c("AB", NA_character_, "CD"), 1), strtrim(c( 309s [1] TRUE 309s 3/14 misc.R: strtrim_ctl(c("AB", NA_character_, "CD"), 1, carry = TRUE) 309s [1] "A" NA NA 309s 3/14 misc.R: hello2.0 <- "\033[42m\thello world\033[m foobar" 309s 3/14 misc.R: strtrim_ctl(1:3, width = 10) 309s [1] "1" "2" "3" 309s 3/14 misc.R: strtrim_ctl(hello2.0, width = "35") 309s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `width` must be a positive scalar numeric representable as an integer. 309s Calls: unitize_dir ... eval -> eval -> withVisible -> strtrim_ctl -> strtrim2_ctl 309s 3/14 misc.R: strtrim_ctl(hello2.0, width = NA_integer_) 309s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `width` must be a positive scalar numeric representable as an integer. 309s Calls: unitize_dir ... eval -> eval -> withVisible -> strtrim_ctl -> strtrim2_ctl 309s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, warn = NULL) 309s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `warn` must be TRUE or FALSE. 309s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, ctl = 0) 309s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `ctl` must be character. 309s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 309s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 309s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, ctl = "bananas") 309s 3/14 misc.R: strtrim2_ctl(1:3, width = 10) 309s [1] "1" "2" "3" 309s Error in strtrim2_ctl(hello2.0, width = "35") : 309s Argument `width` must be a positive scalar numeric representable as an integer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strtrim2_ctl 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = "35") 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = NA_integer_) 309s Error in strtrim2_ctl(hello2.0, width = NA_integer_) : 309s Argument `width` must be a positive scalar numeric representable as an integer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strtrim2_ctl 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, warn = NULL) 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = NA) 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = 1:3) 309s Error in strtrim2_ctl(hello2.0, width = 10, warn = NULL) : 309s Argument `warn` must be TRUE or FALSE. 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s Error in strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = NA) : 309s Argument `tabs.as.spaces` must be TRUE or FALSE. 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s Error in strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = 1:3) : 309s Argument `tabs.as.spaces` must be TRUE or FALSE. 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tab.stops = -(1:3)) 309s Error in strtrim2_ctl(hello2.0, width = 10, tab.stops = -(1:3)) : 309s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tab.stops = 0) 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, ctl = 0) 309s Error in strtrim2_ctl(hello2.0, width = 10, tab.stops = 0) : 309s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s Error in strtrim2_ctl(hello2.0, width = 10, ctl = 0) : 309s Argument `ctl` must be character. 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s Error in strtrim2_ctl(hello2.0, width = 10, ctl = "bananas") : 309s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 309s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 309s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, ctl = "bananas") 309s 3/14 misc.R: unitizer_sect("enc check", { 309s 3/14 misc.R: x <- y <- "He\237" 309s 3/14 misc.R: Encoding(x) <- "latin1" 309s 3/14 misc.R: fansi:::check_enc(x, 1) 309s Error in fansi:::check_enc(x, 1) : 309s Internal Error: unexpected encoding 2 encountered at index 1. Contact maintainer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 3/14 misc.R: Encoding(y) <- "bytes" 309s 3/14 misc.R: fansi:::check_enc(y, 1) 309s Error in fansi:::check_enc(y, 1) : 309s Byte encoded string encountered at index 1. Byte encoded strings are not supported. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 3/14 misc.R: fansi:::check_enc("hello", 1) 309s [1] TRUE 309s 3/14 misc.R: unitizer_sect("what as int", { 309s 3/14 misc.R: fansi:::ctl_as_int(c(1, 2, 3, 4, 5)) 309s [1] 112 309s 3/14 misc.R: fansi:::ctl_as_int(c(2, 3, 4, 5)) 309s [1] 15 309s 3/14 misc.R: fansi:::ctl_as_int(c(1, 2, 3, 9)) 309s Error in fansi:::ctl_as_int(c(1, 2, 3, 9)) : 309s Internal Error: max ctl value allowed is 6. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s Error in fansi:::ctl_as_int(c(2, 3, 9)) : 309s Internal Error: max ctl value allowed is 6. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 3/14 misc.R: fansi:::ctl_as_int(c(2, 3, 9)) 309s 3/14 misc.R: unitizer_sect("HTML helper", { 309s 3/14 misc.R: html_esc(character()) 309s character(0) 309s 3/14 misc.R: html_esc(1:10) 309s Error in html_esc(1:10) : Argument `x` must be character, is integer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 309s 3/14 misc.R: html_esc(NA_character_) 309s [1] NA 309s 3/14 misc.R: html_esc("") 309s [1] "<he&llo>" 309s 3/14 misc.R: html_esc("ow&wo") 309s [1] "ow&wo" 309s 3/14 misc.R: html_esc(c("hello", "wors", NA, "")) 309s [1] "hello" "wor<ld>s" NA "" 309s 3/14 misc.R: html_esc(c("he'l\"lo", "wors", NA, "")) 309s [1] "he'l"lo" "wor<ld>s" NA 309s [4] "" 309s 3/14 misc.R: html_esc("<<<<") 309s [1] "<<<<" 309s 3/14 misc.R: html_esc("<123hello>") 309s [1] "<123hello>" 309s 3/14 misc.R: txt <- c("day > night", "hello world") 309s 3/14 misc.R: html_code_block(character()) 309s [1] "
" 309s 3/14 misc.R: html_code_block(txt) 309s [1] "
day > night\nhello world
" 309s 3/14 misc.R: html_code_block(1:10) 309s 3/14 misc.R: html_code_block(txt, class = c("not-fansi", "plain")) 309s [1] "
day > night\nhello world
" 309s Error in html_code_block(1:10) : 309s Argument `x` must be character, is integer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_code_block 309s 3/14 misc.R: html_code_block(txt, class = NULL) 309s Error in html_code_block(txt, class = NULL) : 309s Argument `class` must be character, is NULL. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_code_block 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "<>") 309s [1] "h&e'l\"lo" "wor<ld>s" NA "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "><") 309s [1] "h&e'l\"lo" "wor<ld>s" NA "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "<&>") 309s [1] "h&e'l\"lo" "wor<ld>s" NA "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>") 309s [1] "h&e'l\"lo" "wor<ld>s" NA 309s [4] "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>\"") 309s [1] "h&e'l"lo" "wor<ld>s" NA 309s [4] "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'&>\"<") 309s [1] "h&e'l"lo" "wor<ld>s" NA 309s [4] "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "") 309s [1] "h&e'l\"lo" "wors" NA "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>\"<") 309s [1] "h&e'l"lo" "wor<ld>s" NA 309s [4] "" 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), character()) 309s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), character()) : 309s Argument `what` must be scalar character and not NA. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 309s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), NA_character_) : 309s Argument `what` must be scalar character and not NA. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 309s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), 1:5) : 309s Argument `what` must be character, is integer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), NA_character_) 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), 1:5) 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&><") 309s [1] "h&e'l\"lo" "wor<ld>s" NA 309s [4] "" 309s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), "'x><") : 309s Argument `what` may only contain ASCII characters "&", "<", ">", "'", or "\"". 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 309s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'x><") 309s 3/14 misc.R: unitizer_sect("hooks", { 309s 3/14 misc.R: h.1 <- list(set = function(...) cat("Set hooks: ", names(list(...) 309s 3/14 misc.R: h.2 <- list(set = function(...) cat("Set hooks: ", names(list(...) 309s 3/14 misc.R: h.3 <- list(set = function(...) cat("Set hooks: ", names(list(...) 309s Error in set_knit_hooks(list(1, 2)) : 309s Argument `hooks` does not appear to be `knitr::knit_hooks`. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: h.4 <- list(set = function(...) stop("error in set"), get = functi 309s 3/14 misc.R: set_knit_hooks(list(1, 2)) 309s 3/14 misc.R: set_knit_hooks(list(function() NULL, function() NULL)) 309s Error in set_knit_hooks(list(function() NULL, function() NULL)) : 309s Argument `hooks` does not appear to be `knitr::knit_hooks`. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: res1 <- set_knit_hooks(h.1, .test = TRUE) 309s Set hooks: output 309s 309s 3/14 misc.R: res1[["new.hooks"]][["output"]]("hello") 309s [1] "old.hook" 309s 3/14 misc.R: res1[["new.hooks"]][["output"]]("hello\033[31m world") 309s [1] "
hello world
" 309s 3/14 misc.R: res1a <- set_knit_hooks(h.1, split.nl = TRUE, .test = TRUE) 309s Set hooks: output 309s 309s 3/14 misc.R: res1a[["new.hooks"]][["output"]]("hello\033[31m wo\nrld") 309s [1] "
hello wo\nrld
" 309s 3/14 misc.R: p.f.2 <- function(x, y) NULL 309s 3/14 misc.R: p.f.3 <- function(x, class) sprintf("new proc fun, '%s'", class) 309s 3/14 misc.R: p.f.4 <- function(x, class) stop("new proc fun") 309s 3/14 misc.R: set_knit_hooks(h.1, split.nl = "banana") 309s Error in set_knit_hooks(h.1, split.nl = "banana") : 309s Argument `split.n` must be TRUE or FALSE 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: set_knit_hooks(h.1, proc.fun = p.f.2) 309s Error in set_knit_hooks(h.1, proc.fun = p.f.2) : 309s Argument `proc.fun` must be a function with formals named `x` and `class`. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: set_knit_hooks(h.1, which = "hello") 309s Error in set_knit_hooks(h.1, which = "hello") : 309s Argument `which` must be character containing values in c("output", "warning", "error", "message") 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: set_knit_hooks(h.1, which = NULL) 309s 3/14 misc.R: res2 <- set_knit_hooks(h.1, which = c("output", "message"), class 309s Set hooks: output message 309s 309s 3/14 misc.R: res2[["new.hooks"]][["message"]]("hello") 309s Error in set_knit_hooks(h.1, which = NULL) : 309s Argument `which` must be character containing values in c("output", "warning", "error", "message") 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s [1] "old.hook" 309s 3/14 misc.R: res2[["new.hooks"]][["message"]]("hello\033[31m world") 309s [1] "new proc fun, 'f-message'" 309s 3/14 misc.R: res2[["new.hooks"]][["output"]]("hello\033[31m world") 309s [1] "new proc fun, 'f-output'" 309s 3/14 misc.R: res3 <- set_knit_hooks(h.1, which = c("message", "warning"), 309s Set hooks: message warning 309s 309s 3/14 misc.R: res3[["new.hooks"]][["warning"]]("hello") 309s [1] "old.hook" 309s Error in proc.fun(x = x, class = class) : new proc fun 309s Error in res3[["new.hooks"]][["warning"]]("hello\033[31mworld") : 309s Argument `proc.fun` for `set_knit_hooks` caused an error when processing output; see prior error. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 3/14 misc.R: res3[["new.hooks"]][["warning"]]("hello\033[31mworld") 309s 3/14 misc.R: set_knit_hooks(h.2) 309s Warning in set_knit_hooks(h.2) : 309s 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 309s Set hooks: output 309s 309s $output 309s NULL 309s 309s 3/14 misc.R: set_knit_hooks(h.3) 309s Set hooks: output 309s 309s $output 309s NULL 309s 309s Error in hooks$get(hook.name) : error in get 309s Warning in set_knit_hooks(h.3) : 309s 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 309s 3/14 misc.R: set_knit_hooks(h.4) 309s Error in (function (...) : error in set 309s Warning in set_knit_hooks(h.4) : 309s Failure while trying to set hooks; see prior error; are you sure you passed `knitr::knit_hooks` as the `hooks` argument? 309s 309s $output 309s function() "old.hook" 309s 309s 309s 3/14 misc.R: set_knit_hooks(h.1, style = NULL) 309s Error in set_knit_hooks(h.1, style = NULL) : 309s Argument `style` must be character. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: set_knit_hooks(h.1, class = 1:10) 309s Error in set_knit_hooks(h.1, class = 1:10) : 309s Argument `class` should be a character vector the same length as `which`. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: set_knit_hooks(h.1, class = letters) 309s Error in set_knit_hooks(h.1, class = letters) : 309s Argument `class` should be a character vector the same length as `which`. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: set_knit_hooks(h.1, which = c("output", "message", "output")) 309s Error in set_knit_hooks(h.1, which = c("output", "message", "output")) : 309s Argument `which` may not contain duplicate values (output). 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 309s 3/14 misc.R: unitizer_sect("output funs", { 309s 3/14 misc.R: fansi_lines(1:3) 309s [1] "\033[37;48;5;18m1\033[39;49m" "\033[37;48;5;19m2\033[39;49m" 309s [3] "\033[37;48;5;20m3\033[39;49m" 309s 3/14 misc.R: fansi_lines(1:3, step = "hello") 309s 3/14 misc.R: capture.output(fwl("\033[43mhello")) 309s Error in fansi_lines(1:3, step = "hello") : 309s Argument `step` must be a strictly positive scalar integer. 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> fansi_lines 309s [1] "\033[43mhello" "\033[0m" 309s 3/14 misc.R: unitizer_sect("validation", { 309s 3/14 misc.R: fansi:::VAL_IN_ENV(booboo = "error") 309s Error in fansi:::VAL_IN_ENV(booboo = "error") : 309s Internal Error: some arguments to validate unknown 309s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 309s 309s 4/14 nchar.R: 309s 4/14 nchar.R: library(fansi) 309s 4/14 nchar.R: unitizer_sect("basic tests", { 309s 4/14 nchar.R: nchar_ctl(c("hello", "world")) 309s [1] 5 5 309s 4/14 nchar.R: nchar_ctl(c("hello", "world"), type = "width") 309s [1] 5 5 309s 4/14 nchar.R: nchar_ctl(c("hello", "world"), type = "wi") 309s [1] 5 5 309s 4/14 nchar.R: na.world <- c("hello", NA, "world", "") 309s 4/14 nchar.R: identical(nchar_ctl(na.world), nchar(na.world)) 309s [1] TRUE 309s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = FALSE), nchar(na.world, 309s [1] TRUE 309s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = NA, type = "width"), nchar 309s [1] TRUE 309s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = TRUE, type = "width"), 309s [1] TRUE 309s 4/14 nchar.R: identical(nzchar_ctl(na.world), nzchar(na.world)) 309s [1] TRUE 309s 4/14 nchar.R: identical(nzchar_ctl(na.world, keepNA = TRUE), nzchar(na.world, 309s [1] TRUE 309s 4/14 nchar.R: identical(nzchar_ctl(na.world, keepNA = NA), nzchar(na.world, 309s [1] TRUE 309s 4/14 nchar.R: identical(nchar_ctl(na.world, type = "bytes"), nchar(na.world, 309s [1] TRUE 309s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = FALSE, type = "bytes"), 309s [1] TRUE 309s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = TRUE, type = "bytes"), 309s [1] TRUE 309s 4/14 nchar.R: w.names <- c(a = "hello", b = "world") 309s 4/14 nchar.R: identical(nchar_ctl(w.names), nchar(w.names)) 309s [1] TRUE 309s 4/14 nchar.R: w.dim <- matrix(letters[1:6], 2, 3, dimnames = list(X = LETTERS[2 309s 4/14 nchar.R: identical(nchar_ctl(w.dim), nchar(w.dim)) 309s [1] TRUE 309s 4/14 nchar.R: hw.sgr <- c("hello", "wo\033[42mrld", "\033[31m", "mo\non", "star 309s 4/14 nchar.R: identical(nchar_ctl(hw.sgr), nchar(strip_ctl(hw.sgr))) 309s [1] TRUE 309s 4/14 nchar.R: x <- "\360" 309s 4/14 nchar.R: if (isTRUE(l10n_info()[["UTF-8"]])) { 309s [1] TRUE 309s 4/14 nchar.R: Encoding(x) <- "UTF-8" 309s 4/14 nchar.R: identical(nzchar_ctl(x), nzchar(x)) 309s [1] TRUE 309s 4/14 nchar.R: nchar_ctl(x) 309s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 309s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 309s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 309s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 309s Argument `x` contains a malformed UTF-8 sequence at index [2], see `?unhandled_ctl`. 309s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 309s 4/14 nchar.R: nchar_ctl(c("", x)) 309s 4/14 nchar.R: identical(nchar_ctl(x, allowNA = TRUE), nchar(x, allowNA = TRUE)) 309s [1] TRUE 309s 4/14 nchar.R: unitizer_sect("with escapes", { 309s 4/14 nchar.R: esc.2 <- "\n\r\033P\033[31m\a" 309s 4/14 nchar.R: nchar_ctl(esc.2) 309s [1] 0 309s 4/14 nchar.R: nchar_ctl(esc.2, warn = FALSE) 309s [1] 0 309s 4/14 nchar.R: nzchar_ctl(esc.2) 309s [1] FALSE 309s 4/14 nchar.R: nzchar_ctl(esc.2, warn = FALSE) 309s [1] FALSE 309s 4/14 nchar.R: nchar_ctl("\033[31#mworld", ctl = "sgr") 309s [1] 5 309s 4/14 nchar.R: nchar_ctl("\033[31#mworld", ctl = "csi") 309s [1] 11 309s 4/14 nchar.R: unitizer_sect("ctl", { 309s 4/14 nchar.R: esc.3 <- "\n\t\033[31m\033[41!m\033p" 309s 4/14 nchar.R: nzchar_ctl(esc.3, warn = FALSE) 309s [1] FALSE 309s 4/14 nchar.R: nzchar_ctl(sprintf("%sa", esc.3), warn = FALSE) 309s [1] TRUE 309s 4/14 nchar.R: nzchar_ctl(esc.3, ctl = c("sgr", "csi", "esc"), warn = FALSE) 309s [1] TRUE 309s 4/14 nchar.R: nzchar_ctl(esc.3, ctl = c("c0", "nl"), warn = FALSE) 309s [1] TRUE 309s 4/14 nchar.R: nzchar_ctl("\n\t\n", ctl = c("nl"), warn = FALSE) 309s [1] TRUE 309s 4/14 nchar.R: nzchar_ctl("\t\n", ctl = c("nl"), warn = FALSE) 309s [1] TRUE 309s 4/14 nchar.R: unitizer_sect("corner cases", { 309s 4/14 nchar.R: ncbad <- c("\033\200", "\033[31;\200m", "\033[31;\200p", "\033]8; 309s 4/14 nchar.R: Encoding(ncbad) <- "UTF-8" 309s 4/14 nchar.R: nchar_ctl(ncbad) 309s [1] 0 0 0 0 0 309s 4/14 nchar.R: fansi:::set_rver(numeric_version("3.2.1")) 309s 4/14 nchar.R: nzchar_ctl(c("\033[31mA", "\033[31m")) 309s [1] TRUE FALSE 309s 4/14 nchar.R: nchar_ctl(c("\033[31mA", "\033[31m")) 309s [1] 1 0 310s 4/14 nchar.R: fansi:::set_rver() 310s 4/14 nchar.R: unitizer_sect("bad inputs", { 310s 4/14 nchar.R: nchar_ctl(9:10, warn = 1:3) 310s Error in nchar_ctl(9:10, warn = 1:3) : 310s Argument `warn` must be TRUE or FALSE. 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", allowNA = 1:3) 310s Error in nchar_ctl("hello\033[31m world", allowNA = 1:3) : 310s Argument `allowNA` must be interpretable as a scalar logical. 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", keepNA = 1:3) 310s Error in nchar_ctl("hello\033[31m world", keepNA = 1:3) : 310s Argument `keepNA` must be interpretable as a scalar logical. 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s Parameter `strip` has been deprecated; use `ctl` instead. 310s Error in nchar_ctl("hello\033[31m world", strip = 1:3) : 310s Argument `ctl` must be character. 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", strip = 1:3) 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", ctl = "bananas") 310s Error in nchar_ctl("hello\033[31m world", ctl = "bananas") : 310s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = NA_character_) 310s Error in nchar_ctl("hello\033[31m world", type = NA_character_) : 310s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = 1) 310s Error in nchar_ctl("hello\033[31m world", type = 1) : 310s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = "bananas") 310s Error in nchar_ctl("hello\033[31m world", type = "bananas") : 310s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 310s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nzchar_ctl(9:10, warn = 1:3) 310s Error in nzchar_ctl(9:10, warn = 1:3) : 310s Argument `warn` must be TRUE or FALSE. 310s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", keepNA = 1:3) 310s Error in nzchar_ctl("hello\033[31m world", keepNA = 1:3) : 310s Argument `keepNA` must be interpretable as a scalar logical. 310s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", ctl = 1) 310s Error in nzchar_ctl("hello\033[31m world", ctl = 1) : 310s Argument `ctl` must be character. 310s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 310s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", ctl = "bananas") 310s Error in nzchar_ctl("hello\033[31m world", ctl = "bananas") : 310s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 310s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 310s 310s 5/14 normalize.R: 310s 5/14 normalize.R: library(fansi) 310s 5/14 normalize.R: unitizer_sect("no expansion", { 310s 5/14 normalize.R: normalize_state("A\033[31mB") 310s [1] "A\033[31mB" 310s 5/14 normalize.R: normalize_state("\033[31mAB") 310s [1] "\033[31mAB" 310s 5/14 normalize.R: normalize_state("AB\033[31m") 310s [1] "AB\033[31m" 310s 5/14 normalize.R: normalize_state(c("A\033[31mB", "AB")) 310s [1] "A\033[31mB" "AB" 310s 5/14 normalize.R: normalize_state(c("\033[31mAB", "AB")) 310s [1] "\033[31mAB" "AB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31m", "AB")) 310s [1] "AB\033[31m" "AB" 310s 5/14 normalize.R: unitizer_sect("simple expansion", { 310s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "AB")) 310s [1] "A\033[31m\033[42mB" "AB" 310s 5/14 normalize.R: normalize_state(c("\033[31;42mAB", "AB")) 310s [1] "\033[31m\033[42mAB" "AB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "AB")) 310s [1] "AB\033[31m\033[42m" "AB" 310s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "A\033[39;4mB")) 310s [1] "A\033[31m\033[42mB" "A\033[4mB" 310s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "\033[39;4mAB")) 310s [1] "A\033[31m\033[42mB" "\033[4mAB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "A\033[39;4mB")) 310s [1] "AB\033[31m\033[42m" "A\033[4mB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "A\033[0;4mB")) 310s [1] "AB\033[31m\033[42m" "A\033[4mB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "AB\033[0;4m")) 310s [1] "AB\033[31m\033[42m" "AB\033[4m" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "\033[0;4mAB")) 310s [1] "AB\033[31m\033[42m" "\033[4mAB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", NA, "\033[0;4mAB")) 310s [1] "AB\033[31m\033[42m" NA "\033[4mAB" 310s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", NA, "\033[0;4mAB"), carry 310s [1] "AB\033[31m\033[42m" NA NA 310s 5/14 normalize.R: unitizer_sect("superflous codes", { 310s 5/14 normalize.R: normalize_state(c("A\033[31;44;38;5;226;36mBC\033[mD")) 310s [1] "A\033[36m\033[44mBC\033[39m\033[49mD" 310s 5/14 normalize.R: normalize_state(c("A\033[31;44;38;5;226;36m\033[0mBCD")) 310s [1] "ABCD" 310s 5/14 normalize.R: unitizer_sect("broad code test", { 310s 5/14 normalize.R: normalize_state(c("A\033[33;44mB\033[1;3;4mCD\033[mE")) 310s [1] "A\033[33m\033[44mB\033[1m\033[3m\033[4mCD\033[22m\033[23m\033[24m\033[39m\033[49mE" 310s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 310s [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" 310s 5/14 normalize.R: unhandled_ctl(normalize_state("A\033[33;44mB\033[1;2;3;4;5;6; 310s [1] index start stop error translated esc 310s <0 rows> (or 0-length row.names) 310s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 310s [1] "A\033[33m\033[44mB\033[39m\033[49mC" 310s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 310s [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" 310s 5/14 normalize.R: unitizer_sect("errors and warnings", { 310s 5/14 normalize.R: normalize_state(list(1, 2, 3)) 310s [1] "1" "2" "3" 310s 5/14 normalize.R: x <- c("A\033[38;2;100;150;3;36mBC\033[mD") 310s 5/14 normalize.R: normalize_state(x, term.cap = c("old")) 310s [1] "A\033[2m\033[3m\033[36mBC\033[22m\033[23m\033[39mD" 310s 5/14 normalize.R: normalize_state(x, term.cap = c("bright", "old")) 310s [1] "A\033[2m\033[3m\033[36m\033[100mBC\033[22m\033[23m\033[39m\033[49mD" 310s Warning in normalize_state(x, term.cap = c("old")) : 310s 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. 310s Warning in normalize_state(x, term.cap = c("bright", "old")) : 310s 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. 310s 5/14 normalize.R: normalize_state(x, term.cap = character()) 310s [1] "A\033[36mBC\033[39mD" 310s 5/14 normalize.R: normalize_state(x, term.cap = c("bright")) 310s Warning in normalize_state(x, term.cap = character()) : 310s 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. 310s Warning in normalize_state(x, term.cap = c("bright")) : 310s 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. 310s [1] "A\033[36mBC\033[39mD" 310s 5/14 normalize.R: normalize_state(x, term.cap = c("bright", "256", "truecolor") 310s [1] "A\033[36mBC\033[39mD" 310s 5/14 normalize.R: substr_ctl(x, 1, 2, normalize = "yeah baby") 310s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 310s Argument `normalize` must be TRUE or FALSE. 310s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 310s 5/14 normalize.R: substr_ctl(x, 1, 2, normalize = NA) 310s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 310s Argument `normalize` must be TRUE or FALSE. 310s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 310s 5/14 normalize.R: unitizer_sect("in functions", { 310s 5/14 normalize.R: string1 <- "hello \033[33;44mblue world" 310s 5/14 normalize.R: string2 <- "\033[4;1mgoodbye\033[7m white \033[mmoon" 310s 5/14 normalize.R: string3 <- c(string1, string2) 310s 5/14 normalize.R: strwrap_ctl(string1, 11, normalize = TRUE) 310s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 310s [2] "\033[33m\033[44mworld\033[39m\033[49m" 310s 5/14 normalize.R: strwrap_ctl(string2, 11, normalize = TRUE) 310s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 310s [2] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 310s 5/14 normalize.R: strwrap_ctl(string3, 11, normalize = TRUE) 310s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 310s [2] "\033[33m\033[44mworld\033[39m\033[49m" 310s [3] "\033[1m\033[4mgoodbye\033[22m\033[24m" 310s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 310s 5/14 normalize.R: strwrap_ctl(string3, 11, normalize = TRUE, simplify = FALSE) 310s [[1]] 310s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 310s [2] "\033[33m\033[44mworld\033[39m\033[49m" 310s 310s [[2]] 310s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 310s [2] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 310s 310s 5/14 normalize.R: strwrap2_ctl(string3, 11, normalize = TRUE, pad.end = " ") 310s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 310s [2] "\033[33m\033[44mworld \033[39m\033[49m" 310s [3] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 310s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 310s 5/14 normalize.R: strwrap_sgr(string3, 11, normalize = TRUE) 310s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 310s [2] "\033[33m\033[44mworld\033[39m\033[49m" 310s [3] "\033[1m\033[4mgoodbye\033[22m\033[24m" 310s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 310s 5/14 normalize.R: strwrap2_sgr(string3, 11, normalize = TRUE, pad.end = " ") 310s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 310s [2] "\033[33m\033[44mworld \033[39m\033[49m" 310s [3] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 310s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 310s 5/14 normalize.R: strtrim_sgr(string3, 8, normalize = TRUE) 310s [1] "hello \033[33m\033[44mbl\033[39m\033[49m" 310s [2] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 310s 5/14 normalize.R: strtrim_sgr(string3, 8, normalize = TRUE) 310s [1] "hello \033[33m\033[44mbl\033[39m\033[49m" 310s [2] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 310s 5/14 normalize.R: substr_ctl("\033[33;44mhello\033[m world", 3, 8, normalize = 310s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 310s 5/14 normalize.R: substr2_ctl("\033[33;44mhello\033[m world", 3, 8, normalize = 310s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 310s 5/14 normalize.R: substr_sgr("\033[33;44mhello\033[m world", 3, 8, normalize = 310s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 310s 5/14 normalize.R: substr2_sgr("\033[33;44mhello\033[m world", 3, 8, normalize = 310s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 310s 5/14 normalize.R: substr_ctl(string3, c(3, 3), c(8, 15), normalize = TRUE) 310s [1] "llo \033[33m\033[44mbl\033[39m\033[49m" 310s [2] "\033[1m\033[4modbye\033[7m white \033[22m\033[24m\033[27mm" 310s 5/14 normalize.R: strsplit_ctl(string3, " ", normalize = TRUE) 310s [[1]] 310s [1] "hello" 310s [2] "\033[33m\033[44mblue\033[39m\033[49m" 310s [3] "\033[33m\033[44mworld\033[39m\033[49m" 310s 310s [[2]] 310s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 310s [2] "\033[1m\033[4m\033[7mwhite\033[22m\033[24m\033[27m" 310s [3] "moon" 310s 310s 310s 6/14 overflow.R: 310s 6/14 overflow.R: library(fansi) 310s 6/14 overflow.R: old_max <- fansi:::set_int_max(15) 310s 6/14 overflow.R: unitizer_sect("tabs", { 310s 6/14 overflow.R: tabs_as_spaces("\t1234567") 310s [1] " 1234567" 310s 6/14 overflow.R: tryCatch(tabs_as_spaces("\t12345678"), error = conditionMessag 310s [1] "Converting tabs to spaces will cause string to be longer than allowed INT_MAX." 310s 6/14 overflow.R: invisible(fansi:::set_int_max(12)) 310s 6/14 overflow.R: tabs_as_spaces(c("\t", "\t123")) 310s [1] " " " 123" 310s 6/14 overflow.R: unitizer_sect("wrap", { 310s 6/14 overflow.R: invisible(fansi:::set_int_max(15)) 310s 6/14 overflow.R: string <- "0123456789" 310s 6/14 overflow.R: strwrap_ctl(string, 16) 310s [1] "0123456789" 310s 6/14 overflow.R: strwrap2_ctl(string, 16, pad.end = " ") 310s [1] "0123456789 " 310s 6/14 overflow.R: tce(strwrap2_ctl(string, 17, pad.end = " ")) 310s [1] "Adding padding will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: strwrap_ctl(string, 16, prefix = "-----") 310s [1] "-----0123456789" 310s 6/14 overflow.R: tce(strwrap_ctl(string, 16, prefix = "------")) 310s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: strwrap_ctl(string, 16, indent = 5) 310s [1] " 0123456789" 310s 6/14 overflow.R: tce(strwrap_ctl(string, 16, indent = 6)) 310s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: strwrap_ctl(string, 16, indent = 2, prefix = "---") 310s [1] "--- 0123456789" 310s 6/14 overflow.R: tce(strwrap_ctl(string, 16, indent = 3, prefix = "---")) 310s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: string2 <- "012345678901234" 310s 6/14 overflow.R: string3 <- "0123456789012345" 310s 6/14 overflow.R: strwrap_ctl(string2, 16) 310s [1] "012345678901234" 310s 6/14 overflow.R: tce(strwrap_ctl(string3, 16)) 310s [1] "Strings longer than INT_MAX not supported (length 16 at index 1)." 310s 6/14 overflow.R: string4 <- "\033[31m0123456789" 310s 6/14 overflow.R: tce(strwrap_ctl(string4, 16)) 310s [1] "Generating closing SGR will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: invisible(fansi:::set_int_max(9)) 310s 6/14 overflow.R: tce(strwrap_ctl("A\033[31m a", 5)) 310s [1] "Generating closing SGR will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: unitizer_sect("html", { 310s 6/14 overflow.R: invisible(fansi:::set_int_max(38)) 310s 6/14 overflow.R: sgr_to_html("\033[31ma") 310s [1] "a" 310s 6/14 overflow.R: tce(sgr_to_html("\033[31mab")) 310s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: tce(sgr_to_html("\033[31m\033[42mhello")) 310s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: invisible(fansi:::set_int_max(57)) 310s 6/14 overflow.R: tce(sgr_to_html("\033[31m\033[42mhello", classes = TRUE)) 310s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 310s 6/14 overflow.R: invisible(fansi:::set_int_max(58)) 310s 6/14 overflow.R: (x <- sgr_to_html("\033[31m\033[42mhello", classes = TRUE)) 310s [1] "hello" 310s 6/14 overflow.R: nchar(x) 310s [1] 58 310s 6/14 overflow.R: invisible(fansi:::set_int_max(4)) 310s 6/14 overflow.R: tce(sgr_to_html("hello")) 310s [1] "Strings longer than INT_MAX not supported (length 5 at index 1)." 310s 6/14 overflow.R: tce(html_esc("hello")) 310s [1] "Strings longer than INT_MAX not supported (length 5 at index 1)." 310s 6/14 overflow.R: tce(html_esc("<")) 310s [1] "<" 310s 6/14 overflow.R: tce(html_esc(" eval -> eval -> withVisible -> 310s 6/14 overflow.R: invisible(fansi:::set_int_max(130)) 310s 6/14 overflow.R: fansi:::size_buff(c(0L, 127L, 128L, 64L, 200L, 1024L)) 310s Error in fansi:::size_buff(c(0L, 127L, 128L, 64L, 200L, 1024L)) : 310s Internal Error: max allowed buffer size is INT_MAX + 1. (req: 201 vs lim: 131), in FANSI_size_buff_ext. 310s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 310s 6/14 overflow.R: invisible(fansi:::set_int_max(64)) 310s 6/14 overflow.R: fansi:::size_buff(c(0L, 32L, 63L, 64L)) 310s [1] 1 33 65 65 310s 6/14 overflow.R: fansi:::size_buff(c(0L, 32L, 63L, 65L)) 310s Error in fansi:::size_buff(c(0L, 32L, 63L, 65L)) : 310s Internal Error: max allowed buffer size is INT_MAX + 1. (req: 66 vs lim: 65), in FANSI_size_buff_ext. 310s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 310s 6/14 overflow.R: invisible(fansi:::set_int_max(old_max)) 310s Warning in fansi:::size_buff_prot_test() : 310s Unable to release buffer allocated by FANSI_size_buff_prot_test while in native code. Buffer will be released on return to R. 310s Warning in fansi:::size_buff_prot_test() : 310s Unable to release buffer allocated by FANSI_size_buff_prot_test while in native code. Buffer will be released on return to R. 310s 6/14 overflow.R: dat <- fansi:::size_buff_prot_test() 310s 6/14 overflow.R: dat["first", "self"] == dat["smaller 1.0", "self"] 310s [1] TRUE 310s 6/14 overflow.R: dat["new buff", "prev"] == dat["grow 1.0", "self"] 310s [1] TRUE 310s 6/14 overflow.R: dat["new buff", "prev"] != dat["new buff", "self"] 310s [1] TRUE 310s 6/14 overflow.R: dat["smaller 1.1", "self"] == dat["grow 1.0", "self"] 310s [1] TRUE 310s 6/14 overflow.R: dat["smaller 2.0", "self"] == dat["new buff", "self"] 310s [1] TRUE 310s 6/14 overflow.R: dat["smaller 2.0", "prev"] == dat["new buff", "prev"] 310s [1] TRUE 310s 6/14 overflow.R: dat["smaller 2.0", "prev"] == dat["grow 2.0", "prev"] 310s [1] TRUE 310s 6/14 overflow.R: dat["grow 1.1", "prev"] == dat["grow 2.0", "self"] 310s [1] TRUE 310s 6/14 overflow.R: dat["grow 2.1", "prev"] == dat["grow 1.1", "self"] 310s [1] TRUE 310s 6/14 overflow.R: unitizer_sect("misc", { 310s 6/14 overflow.R: invisible(fansi:::set_int_max(5)) 310s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 310s Strings longer than INT_MAX not supported (length 8 at index 1). 310s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 310s 6/14 overflow.R: substr_ctl("\033[43mA B", 5, 5) 310s 6/14 overflow.R: substr_ctl("12345", 1, 5) 310s [1] "12345" 310s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 310s Strings longer than INT_MAX not supported (length 6 at index 1). 310s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 310s 6/14 overflow.R: substr_ctl("123456", 1, 6) 310s 6/14 overflow.R: fansi:::reset_limits() 310s [1] TRUE 310s 6/14 overflow.R: unitizer_sect("R_len_t", { 310s 6/14 overflow.R: old_rlent <- fansi:::set_rlent_max(5) 310s 6/14 overflow.R: tabs_as_spaces("A\tB") 310s Error in tabs_as_spaces("A\tB") : 310s Attempting to create CHARSXP longer than R_LEN_T_MAX at index [1]. 310s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> tabs_as_spaces 310s 6/14 overflow.R: new_rlent <- fansi:::set_rlent_max(old_rlent) 310s 6/14 overflow.R: fansi:::reset_limits() 310s [1] TRUE 310s 6/14 overflow.R: unitizer_sect("internal", { 310s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_reset)) 310s [1] "Internal Error: attempt to size buffer w/o reset in FANSI_buff_test_reset." 310s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_copy_overflow)) 310s [1] "Internal Error: exceeded target buffer size in _copy." 310s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_mcopy_overflow)) 310s [1] "Internal Error: exceeded target buffer size in _mcopy." 310s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_fill_overflow)) 310s [1] "Internal Error: exceeded allocated buffer in _fill." 310s 310s 7/14 strip.R: 310s 7/14 strip.R: library(fansi) 310s 7/14 strip.R: unitizer_sect("Strip ansi", { 310s 7/14 strip.R: strip_ctl(sprintf("hello %sworld%s", red, end)) 310s [1] "hello world" 310s 7/14 strip.R: strip_ctl(sprintf("he%sllo %sworld", red, end)) 310s [1] "hello world" 310s 7/14 strip.R: strip_ctl(sprintf("%shello %sworld%s", grn.bg, red, end)) 310s [1] "hello world" 310s 7/14 strip.R: strip_ctl(sprintf("%s%shello %sworld%s", grn.bg, inv, red, end)) 310s [1] "hello world" 310s 7/14 strip.R: string <- paste("string", format(1:10)) 310s 7/14 strip.R: string[c(2, 4, 6)] <- paste0(red, string[c(2, 4, 6)], end) 310s 7/14 strip.R: strip_ctl(string) 310s [1] "string 1" "string 2" "string 3" "string 4" "string 5" "string 6" 310s [7] "string 7" "string 8" "string 9" "string 10" 310s 7/14 strip.R: strip_sgr(string) 310s [1] "string 1" "string 2" "string 3" "string 4" "string 5" "string 6" 310s [7] "string 7" "string 8" "string 9" "string 10" 310s 7/14 strip.R: strip_sgr(1:3) 310s [1] "1" "2" "3" 310s 7/14 strip.R: unitizer_sect("Corner cases", { 310s 7/14 strip.R: strip_ctl("hello\033") 310s Warning in strip_ctl("hello\033") : 310s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 310s [1] "hello" 310s 7/14 strip.R: strip_ctl("hello\033", ctl = c("nl", "c0")) 310s [1] "hello\033" 310s 7/14 strip.R: strip_ctl("hello\033[") 310s Warning in strip_ctl("hello\033[") : 310s 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. 310s Warning in strip_ctl("hello\033[42") : 310s 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. 310s [1] "hello" 310s 7/14 strip.R: strip_ctl("hello\033[42") 310s [1] "hello" 310s 7/14 strip.R: strip_ctl("hello\033[42", ctl = c("all", "csi", "sgr")) 310s [1] "hello42" 310s 7/14 strip.R: strip_ctl("hello\033[31##3m illegal") 310s [1] "hello illegal" 310s 7/14 strip.R: strip_ctl("hello\033[31##m legal") 310s [1] "hello legal" 310s 7/14 strip.R: strip_ctl(1:3) 310s [1] "1" "2" "3" 310s 7/14 strip.R: unitizer_sect("Whitespace", { 310s 7/14 strip.R: fansi:::process("hello world") 310s [1] "hello world" 310s 7/14 strip.R: fansi:::process("hello. world") 310s [1] "hello. world" 310s 7/14 strip.R: fansi:::process(c("hello world", "hello. world")) 310s [1] "hello world" "hello. world" 310s 7/14 strip.R: fansi:::process("hello. world? moon! wow.") 310s [1] "hello. world? moon! wow." 310s 7/14 strip.R: fansi:::process(" hello") 310s [1] "hello" 310s 7/14 strip.R: fansi:::process(" hello\n world") 310s [1] "hello world" 310s 7/14 strip.R: fansi:::process(" hello \n world") 310s [1] "hello world" 310s 7/14 strip.R: fansi:::process(" hello world\n ") 310s [1] "hello world" 310s 7/14 strip.R: fansi:::process("hello. ") 310s [1] "hello." 310s 7/14 strip.R: fansi:::process("hello! ") 310s [1] "hello!" 310s 7/14 strip.R: fansi:::process("hello? ") 310s [1] "hello?" 310s 7/14 strip.R: fansi:::process("hello? ") 310s [1] "hello?" 310s 7/14 strip.R: fansi:::process(" \t hello") 310s [1] "hello" 310s 7/14 strip.R: fansi:::process(" \t\a\r hello") 310s [1] "\a\rhello" 310s 7/14 strip.R: fansi:::process(" \t\a\r hello", ctl = c("all", "c0")) 310s [1] "\a\r hello" 310s 7/14 strip.R: fansi:::process("hello. \r world.") 310s [1] "hello. \rworld." 310s 7/14 strip.R: fansi:::process("hello. \033[31m world.\033[0m") 310s [1] "hello. \033[31mworld.\033[0m" 310s 7/14 strip.R: str1 <- c("hello ", " world") 311s 7/14 strip.R: fansi:::process(str1) 311s [1] "hello" "world" 311s 7/14 strip.R: str1 311s [1] "hello " " world" 311s 7/14 strip.R: fansi:::process("hello.\n\nworld") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\n\nworld") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\n\n\nworld") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n \nworld") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\t\nworld") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\t\n\tworld") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n \t \n \t world") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\nworld\n\n") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\nworld\n\n ") 311s [1] "hello.\n\nworld" 311s 7/14 strip.R: fansi:::process("\n\nhello.\n\t\n\tworld\n\t\n woohoo\n ") 311s [1] "\n\nhello.\n\nworld\n\nwoohoo" 311s 7/14 strip.R: fansi:::process("\n \t\nhello.\n\t\n\tworld\n\t\n woohoo\n ") 311s [1] "\n\nhello.\n\nworld\n\nwoohoo" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m\nworld") 311s [1] "hello.\n\n\033[44mworld" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n \t\nworld") 311s [1] "hello.\n\n\033[44mworld" 311s 7/14 strip.R: fansi:::process("hello.\033[44m\n\n \t\nworld") 311s [1] "hello.\033[44m\n\nworld" 311s 7/14 strip.R: fansi:::process("hello.\n\n \t\n\033[44mworld") 311s [1] "hello.\n\n\033[44mworld" 311s 7/14 strip.R: fansi:::process("hello.\n\n\033[44m \t\nworld") 311s [1] "hello.\n\n\033[44mworld" 311s 7/14 strip.R: fansi:::process("hello \033[44m world") 311s [1] "hello \033[44mworld" 311s 7/14 strip.R: fansi:::process("hello. \033[44m world") 311s [1] "hello. \033[44mworld" 311s 7/14 strip.R: fansi:::process("hello\033[44m\033[31m world") 311s [1] "hello\033[44m\033[31m world" 311s 7/14 strip.R: fansi:::process("hello\033[44m\033[31m\n\nworld") 311s [1] "hello\033[44m\033[31m\n\nworld" 311s 7/14 strip.R: fansi:::process("hello\n\033[44m\033[31m\nworld") 311s [1] "hello\n\n\033[44m\033[31mworld" 311s 7/14 strip.R: fansi:::process("hello\n\n\033[44m\033[31mworld") 311s [1] "hello\n\n\033[44m\033[31mworld" 311s 7/14 strip.R: fansi:::process("hello\033[44m\033[31d world") 311s [1] "hello\033[44m\033[31d world" 311s 7/14 strip.R: fansi:::process("hello \033[44m\033[31d world") 311s [1] "hello \033[44m\033[31dworld" 311s 7/14 strip.R: fansi:::process("hello \033[44m \033[31d world") 311s [1] "hello \033[44m\033[31dworld" 311s 7/14 strip.R: fansi:::process("hello\033[44m\033[31d world", ctl = c("all", 311s [1] "hello\033[44m\033[31d world" 311s 7/14 strip.R: fansi:::process("hello \033[44m\033[31d world", ctl = c("all", 311s [1] "hello \033[44m\033[31d world" 311s 7/14 strip.R: fansi:::process("hello \033[44m \033[31d world", ctl = c("all", 311s [1] "hello \033[44m\033[31d world" 311s 7/14 strip.R: fansi:::process("hello\033[44m\a world", ctl = c("all")) 311s [1] "hello\033[44m\a world" 311s 7/14 strip.R: fansi:::process("hello\033[44m\a world", ctl = c("all", "c0")) 311s [1] "hello\033[44m\a world" 311s 7/14 strip.R: fansi:::process("hello. \033[44m\a world", ctl = c("all")) 311s [1] "hello. \033[44m\aworld" 311s 7/14 strip.R: fansi:::process("hello. \033[44m\a world", ctl = c("all", "c0")) 311s [1] "hello. \033[44m\a world" 311s 7/14 strip.R: fansi:::process("hello. \033[44m \a world", ctl = c("all")) 311s [1] "hello. \033[44m\aworld" 311s 7/14 strip.R: fansi:::process("hello. \033[44m \a world", ctl = c("all", "c0")) 311s [1] "hello. \033[44m\a world" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m \a world", ctl = c("all")) 311s [1] "hello. \033[44m\aworld" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m \a world", ctl = c("all", "c0") 311s [1] "hello. \033[44m\a world" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n\a world", ctl = c("all")) 311s [1] "hello.\n\n\033[44m\aworld" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n\a world", ctl = c("all", 311s [1] "hello.\n\n\033[44m\a world" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m\a\n world", ctl = c("all")) 311s [1] "hello.\n\n\033[44m\aworld" 311s 7/14 strip.R: fansi:::process("hello.\n\033[44m\a\n world", ctl = c("all", 311s [1] "hello. \033[44m\a world" 311s 7/14 strip.R: unitizer_sect("Selective stripping", { 311s 7/14 strip.R: string.0 <- "hello\033k\033[45p world\n\033[31mgoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.0) 311s [1] "hello worldgoodbye moon" 311s 7/14 strip.R: strip_ctl(string.0, "sgr") 311s [1] "hello\033k\033[45p world\ngoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.0, c("nl", "c0", "sgr", "csi", "esc")) 311s [1] "hello worldgoodbye moon" 311s 7/14 strip.R: strip_ctl(string.0, "all") 311s [1] "hello worldgoodbye moon" 311s 7/14 strip.R: strip_ctl(string.0, c("c0", "esc")) 311s [1] "hello45p world\n31mgoodbye moon" 311s 7/14 strip.R: strip_ctl(string.0, c("nl")) 311s [1] "hello\033k\033[45p world\033[31mgoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.0, character()) 311s [1] "hello\033k\033[45p world\n\033[31mgoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.0, c("all", "c0", "esc")) 311s [1] "hello\033k worldgoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.0, c("all", "sgr")) 311s [1] "hello world\033[31mgoodbye moon" 311s 7/14 strip.R: string.1 <- "hello\033\033[45p world\n\033[31#3mgoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.1, c("nl", "sgr", "esc")) 311s Warning in strip_ctl(string.1, c("nl", "sgr", "esc")) : 311s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 311s [1] "hello[45p worldgoodbye\a moon" 311s 7/14 strip.R: strip_ctl(string.1, c("csi")) 311s [1] "hello\033 world\n\033[31#3mgoodbye\a moon" 311s Warning in strip_ctl(string.1, "all") : 311s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 311s 7/14 strip.R: strip_ctl(string.1, "all") 311s [1] "hello[45p worldgoodbye moon" 311s Warning in strip_ctl(string.1, c("all", "sgr")) : 311s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 311s 7/14 strip.R: strip_ctl(string.1, c("c0", "nl")) 311s [1] "hello\033\033[45p world\033[31#3mgoodbye moon" 311s 7/14 strip.R: strip_ctl(string.1, c("all", "sgr")) 311s [1] "hello[45p world\033[31#3mgoodbye moon" 311s 7/14 strip.R: strip_sgr(string.1) 311s [1] "hello\033\033[45p world\ngoodbye\a moon" 311s 7/14 strip.R: strip_ctl(c(string.0, string.1, "hello"), warn = FALSE) 311s [1] "hello worldgoodbye moon" "hello[45p worldgoodbye moon" 311s [3] "hello" 311s 7/14 strip.R: string.2 <- "\033k\033[45p\a\n\033[31mgoodbye moon" 311s 7/14 strip.R: strip_ctl(string.2) 311s [1] "goodbye moon" 311s 7/14 strip.R: strip_ctl(string.2, "sgr") 311s [1] "\033k\033[45p\a\ngoodbye moon" 311s 7/14 strip.R: string.3 <- "hello world\033k\033[45p\a\n\033[31m" 311s 7/14 strip.R: strip_ctl(string.3) 311s [1] "hello world" 311s 7/14 strip.R: strip_ctl(string.3, "sgr") 311s [1] "hello world\033k\033[45p\a\n" 311s 7/14 strip.R: unitizer_sect("Bad Inputs", { 311s 7/14 strip.R: strip_ctl("hello\033[41mworld", warn = 1:3) 311s 7/14 strip.R: strip_ctl("hello\033[41mworld", ctl = 1:3) 311s Error in strip_ctl("hello\033[41mworld", warn = 1:3) : 311s Argument `warn` must be TRUE or FALSE. 311s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 311s Error in strip_ctl("hello\033[41mworld", ctl = 1:3) : 311s Argument `ctl` must be character. 311s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 311s Error in strip_ctl("hello\033[41mworld", ctl = "bananas") : 311s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 311s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 311s 7/14 strip.R: strip_ctl("hello\033[41mworld", ctl = "bananas") 311s Parameter `strip` has been deprecated; use `ctl` instead. 311s 7/14 strip.R: strip_ctl("hello\033[41mworld", strip = "sgr") 311s [1] "helloworld" 311s Error in strip_sgr("hello\033[41mworld", warn = 1:3) : 311s Argument `warn` must be TRUE or FALSE. 311s Calls: unitize_dir ... eval -> withVisible -> strip_sgr -> VAL_IN_ENV -> stop2 311s 7/14 strip.R: strip_sgr("hello\033[41mworld", warn = 1:3) 311s 311s 8/14 strsplit.R: 311s 8/14 strsplit.R: library(fansi) 311s 8/14 strsplit.R: unitizer_sect("basic splits", { 311s 8/14 strsplit.R: str.0 <- c("hello world", "goodbye moon") 311s 8/14 strsplit.R: identical(strsplit(str.0[1], " "), strsplit_ctl(str.0[1], " ") 311s [1] TRUE 311s 8/14 strsplit.R: identical(strsplit(str.0, "h"), strsplit_ctl(str.0, "h")) 311s [1] TRUE 311s 8/14 strsplit.R: identical(strsplit(str.0, "m"), strsplit_ctl(str.0, "m")) 311s [1] TRUE 311s 8/14 strsplit.R: identical(strsplit(str.0, "g"), strsplit_ctl(str.0, "g")) 311s [1] TRUE 311s 8/14 strsplit.R: str.1 <- "hello\033[31m world" 311s 8/14 strsplit.R: str.2 <- "\033[42m hello\033[m world, Goodbye Moon" 311s 8/14 strsplit.R: strsplit_ctl(str.1, " ") 311s [[1]] 311s [1] "hello" "\033[31mworld\033[0m" 311s 311s 8/14 strsplit.R: strsplit_ctl(str.1, "hello") 311s [[1]] 311s [1] "" "\033[31m world\033[0m" 311s 311s 8/14 strsplit.R: strsplit_ctl(str.2, ", ") 311s [[1]] 311s [1] "\033[42m hello\033[m world" "Goodbye Moon" 311s 311s 8/14 strsplit.R: strsplit_ctl(c(str.1, "hello world", str.2), "hello") 311s [[1]] 311s [1] "" "\033[31m world\033[0m" 311s 311s [[2]] 311s [1] "" " world" 311s 311s [[3]] 311s [1] "\033[42m \033[0m" " world, Goodbye Moon" 311s 311s 8/14 strsplit.R: unitizer_sect("corner cases", { 311s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", "") 311s [[1]] 311s [1] "h" "e" "l" "l" 311s [5] "o" "\033[31m \033[0m" "\033[31mw\033[0m" "\033[31mo\033[0m" 311s [9] "\033[31mr\033[0m" "\033[31ml\033[0m" "\033[31md\033[0m" 311s 311s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", "[", fixed = TRUE) 311s [[1]] 311s [1] "hello\033[31m world" 311s 311s Error in strsplit_ctl("hello\033[31m world", NA_character_) : 311s Argument `split` may not contain NAs. 311s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 311s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", NA_character_) 311s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", character()) 311s [[1]] 311s [1] "h" "e" "l" "l" 311s [5] "o" "\033[31m \033[0m" "\033[31mw\033[0m" "\033[31mo\033[0m" 311s [9] "\033[31mr\033[0m" "\033[31ml\033[0m" "\033[31md\033[0m" 311s 311s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", letters) 311s [[1]] 311s [1] "hello\033[31m world" 311s 311s 8/14 strsplit.R: splits <- c("h", "e", "o", "llo", "x", "hello") 311s 8/14 strsplit.R: str.spl1 <- strsplit_ctl(rep("hello", 6), splits) 311s 8/14 strsplit.R: str.spl2 <- strsplit(rep("hello", 6), splits) 311s 8/14 strsplit.R: identical(str.spl1, str.spl2) 311s [1] TRUE 311s 8/14 strsplit.R: str.spl3 <- strsplit_ctl(rep("\033[31mhello\033[39m", 6), spli 311s 8/14 strsplit.R: str.spl3 311s [[1]] 311s [1] "" "\033[31mello\033[0m" 311s 311s [[2]] 311s [1] "\033[31mh\033[0m" "\033[31mllo\033[0m" 311s 311s [[3]] 311s [1] "\033[31mhell\033[0m" 311s 311s [[4]] 311s [1] "\033[31mhe\033[0m" 311s 311s [[5]] 311s [1] "\033[31mhello\033[39m" 311s 311s [[6]] 311s [1] "" 311s 311s 8/14 strsplit.R: identical(lapply(str.spl3, strip_ctl), str.spl2) 311s [1] TRUE 311s 8/14 strsplit.R: strsplit_ctl("", " ") 311s [[1]] 311s character(0) 311s 311s 8/14 strsplit.R: strsplit_ctl("", "") 311s [[1]] 311s character(0) 311s 311s 8/14 strsplit.R: strsplit_ctl(c("\033[31mab\033[0m", ""), "") 311s [[1]] 311s [1] "\033[31ma\033[0m" "\033[31mb\033[0m" 311s 311s [[2]] 311s character(0) 311s 311s 8/14 strsplit.R: strsplit_ctl("hello", NULL) 311s [[1]] 311s [1] "h" "e" "l" "l" "o" 311s 311s 8/14 strsplit.R: str.sp14 <- c("\033[31mhello\nworld", "\ngoodbye\nmoon") 311s 8/14 strsplit.R: strsplit_ctl(str.sp14, "\n") 311s [[1]] 311s [1] "\033[31mhello\nworld" 311s 311s [[2]] 311s [1] "\ngoodbye\nmoon" 311s 311s 8/14 strsplit.R: strsplit_sgr(str.sp14, "\n") 311s [[1]] 311s [1] "\033[31mhello\033[0m" "\033[31mworld\033[0m" 311s 311s [[2]] 311s [1] "" "goodbye" "moon" 311s 311s 8/14 strsplit.R: strsplit_ctl(str.sp14, "\n", ctl = c("all", "nl")) 311s [[1]] 311s [1] "\033[31mhello\033[0m" "\033[31mworld\033[0m" 311s 311s [[2]] 311s [1] "" "goodbye" "moon" 311s 311s 8/14 strsplit.R: unitizer_sect("bad intputs", { 311s 8/14 strsplit.R: str.bytes <- "\336" 311s Error in strsplit_ctl(str.bytes, "") : 311s Argument `x` contains a "bytes" encoded string at index [1], which is disallowed. 311s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 311s 8/14 strsplit.R: Encoding(str.bytes) <- "bytes" 311s 8/14 strsplit.R: strsplit_ctl(str.bytes, "") 311s Error in strsplit_ctl(str.2, NA) : Argument `split` may not contain NAs. 311s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 311s 8/14 strsplit.R: strsplit_ctl(str.2, NA) 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", warn = NULL) 311s Error in strsplit_ctl(str.2, "", warn = NULL) : 311s Argument `warn` must be TRUE or FALSE. 311s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 311s Error in strsplit_ctl(str.2, "", fixed = NA_integer_) : 311s Argument `fixed` must be TRUE or FALSE. 311s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", fixed = NA_integer_) 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", perl = NA_integer_) 311s Error in strsplit_ctl(str.2, "", perl = NA_integer_) : 311s Argument `perl` must be TRUE or FALSE. 311s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", useBytes = NA_integer_) 311s Error in strsplit_ctl(str.2, "", useBytes = NA_integer_) : 311s Argument `useBytes` must be TRUE or FALSE. 311s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 311s Error in strsplit_ctl(str.2, "", term.cap = 1:3) : 311s Argument `term.cap` must be character. 311s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", term.cap = 1:3) 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", term.cap = "bananas") 311s Error in strsplit_ctl(str.2, "", term.cap = "bananas") : 311s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 311s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", ctl = 1:3) 311s Error in strsplit_ctl(str.2, "", ctl = 1:3) : 311s Argument `ctl` must be character. 311s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 311s 8/14 strsplit.R: strsplit_ctl(str.2, "", ctl = "bananas") 311s 8/14 strsplit.R: strsplit_ctl("a b", str.bytes) 311s 8/14 strsplit.R: unitizer_sect("issue 55", { 311s 8/14 strsplit.R: strsplit_ctl("hello\nworld", "\n") 311s [[1]] 311s [1] "hello\nworld" 311s 311s Error in strsplit_ctl(str.2, "", ctl = "bananas") : 311s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 311s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 311s Error in strsplit_ctl("a b", str.bytes) : 311s Argument `split` may not be "bytes" encoded. 311s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 311s 8/14 strsplit.R: strsplit_sgr("hello\033[31mworld", "\033[31m", fixed = TRUE) 311s [[1]] 311s [1] "hello\033[31mworld" 311s 311s 8/14 strsplit.R: strsplit_ctl("a\nb", "\n", ctl = c("all", "nl")) 311s [[1]] 311s [1] "a" "b" 311s 311s 8/14 strsplit.R: strsplit_sgr("hello\nworld", "\n") 311s [[1]] 311s [1] "hello" "world" 311s 311s 311s 9/14 substr.R: 311s 9/14 substr.R: library(fansi) 311s 9/14 substr.R: unitizer_sect("Simple", { 311s 9/14 substr.R: str01 <- sprintf("hello %sworld%s how", red, inv) 311s 9/14 substr.R: substr_ctl(str01, 1, 7) 311s [1] "hello \033[31mw\033[0m" 311s 9/14 substr.R: substr_ctl(str01, 7, 11) 311s [1] "\033[31mworld\033[0m" 311s 9/14 substr.R: substr_ctl(str01, 8, 10) 311s [1] "\033[31morl\033[0m" 311s 9/14 substr.R: substr_ctl(str01, 8, 14) 311s [1] "\033[31morld\033[7m ho\033[0m" 311s 9/14 substr.R: str02 <- sprintf("%shello world %sit's a %scrazy world%s out the 311s 9/14 substr.R: term.cap <- c("bright", "256", "truecolor") 311s 9/14 substr.R: substr_ctl(str02, 1, 7) 311s [1] "\033[42mhello w\033[0m" 311s 9/14 substr.R: substr_ctl(str02, 10, 20) 311s [1] "\033[42mld \033[31mit's a \033[0mc" 311s 9/14 substr.R: substr_ctl(str02, 15, 40, term.cap = term.cap) 311s [1] "\033[31;42m's a \033[0mcrazy world\033[4;38;2;0;120;200m out there\033[0m" 311s 9/14 substr.R: substr_ctl(str02, 35, 60, term.cap = term.cap) 311s [1] "\033[4;38;2;0;120;200m there \033[7misn't it\033[0m\033[48;5;141m right?\033[0m" 311s 9/14 substr.R: str03 <- sprintf("hello %sworld", rgb.und) 311s 9/14 substr.R: substr_ctl(str03, 1, 12, term.cap = term.cap) 311s [1] "hello \033[4;38;2;0;120;200mworld\033[0m" 311s 9/14 substr.R: str04 <- sprintf("hello%s%s world%s%s yowza", red, inv, grn.bg, 311s 9/14 substr.R: substr_ctl(str04, 5, 7, term.cap = term.cap) 311s [1] "o\033[31m\033[7m w\033[0m" 311s 9/14 substr.R: substr_ctl(str04, 5, 13, term.cap = term.cap) 311s [1] "o\033[31m\033[7m world\033[42m\033[4;38;2;0;120;200m y\033[0m" 311s 9/14 substr.R: unitizer_sect("Multi-line", { 311s 9/14 substr.R: str.m.0 <- paste0("\033[44m", c("hello world", rep("goodbye \033 311s 9/14 substr.R: substr_ctl(str.m.0, (1:4) * 2, (3:8) * 2) 311s [1] "\033[44mello \033[0m" "\033[44mdbye \033[0m" 311s [3] "\033[44mye \033[45mmo\033[0m" "\033[44mombas\033[0m" 311s 9/14 substr.R: unitizer_sect("tabs", { 311s 9/14 substr.R: substr2_ctl("yo\tworld", 1, 8, tabs.as.spaces = TRUE) 311s [1] "yo " 311s 9/14 substr.R: unitizer_sect("Corner cases", { 311s 9/14 substr.R: substr_ctl("hello", 0, -1) 311s [1] "" 311s 9/14 substr.R: substr_ctl("hello", 0, 0) 311s [1] "" 311s 9/14 substr.R: substr_ctl(rep("hello", 2), c(1, 0), c(1, 1)) 311s [1] "h" "h" 311s 9/14 substr.R: substr_ctl(character(), 1, 1) 311s character(0) 311s 9/14 substr.R: substr_ctl(list("hello", list("goodbye", "there")), 1, 2) 311s [1] "he" "li" 311s 9/14 substr.R: substr_ctl(structure(list(list("goodbye", "there")), class = "fo 311s [1] "li" 311s 9/14 substr.R: str.0 <- "\033[31mred\033[m" 311s 9/14 substr.R: str.1 <- "\033[31mred\033[42m" 311s 9/14 substr.R: str.2 <- c(str.0, str.1) 311s 9/14 substr.R: substr_ctl(str.2, 0, 0) 311s [1] "" "" 311s 9/14 substr.R: substr_ctl(str.2, 1, 1) 311s [1] "\033[31mr\033[0m" "\033[31mr\033[0m" 311s 9/14 substr.R: substr_ctl(str.2, 3, 3) 311s [1] "\033[31md\033[0m" "\033[31md\033[0m" 311s 9/14 substr.R: substr_ctl(str.2, 4, 4) 311s [1] "" "" 311s 9/14 substr.R: substr_ctl(str.2, 3, 4) 311s [1] "\033[31md\033[0m" "\033[31md\033[0m" 311s 9/14 substr.R: substr_ctl(str.2, 3, 5) 311s [1] "\033[31md\033[0m" "\033[31md\033[0m" 311s 9/14 substr.R: substr_ctl(str.2, 3, 4, terminate = FALSE) 311s [1] "\033[31md\033[m" "\033[31md\033[42m" 311s 9/14 substr.R: substr_ctl(str.2, 3, 5, terminate = FALSE) 311s [1] "\033[31md\033[m" "\033[31md\033[42m" 311s 9/14 substr.R: substr_ctl(str.2, -1, 2) 311s [1] "\033[31mre\033[0m" "\033[31mre\033[0m" 311s 9/14 substr.R: substr_ctl(str.2, -2, -1) 311s [1] "" "" 311s 9/14 substr.R: substr_ctl(str.2, 4, 1) 311s [1] "" "" 311s 9/14 substr.R: substr_ctl(str.2, 4, 1, terminate = FALSE) 311s [1] "" "" 311s 9/14 substr.R: substr_ctl(str.2, 4, 1, carry = "\033[44m") 311s [1] "" "" 311s 9/14 substr.R: substr_ctl(str.2, 4, 1, carry = "\033[44m", terminate = FALSE) 311s [1] "" "" 311s 9/14 substr.R: substr_ctl("hello", 5, 5) 311s [1] "o" 311s 9/14 substr.R: substr_ctl("hello", 6, 6) 311s [1] "" 311s 9/14 substr.R: substr_ctl("hello", 7, 6) 311s [1] "" 311s 9/14 substr.R: substr_ctl("hello", 6, 7) 311s [1] "" 311s 9/14 substr.R: substr_ctl("hello", 7, 5) 311s [1] "" 311s 9/14 substr.R: substr_ctl("hello", 0, 6) 311s [1] "hello" 311s 9/14 substr.R: substr_ctl("hello", 0, 5) 311s [1] "hello" 311s 9/14 substr.R: substr_ctl("hello", 1, 6) 311s [1] "hello" 311s 9/14 substr.R: substr_ctl("hello", "1", 1) 311s [1] "h" 311s 9/14 substr.R: substr_ctl("hello", 1, "1") 311s [1] "h" 311s Warning in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 311s NAs introduced by coercion 311s Warning in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 311s NAs introduced by coercion 311s 9/14 substr.R: substr_ctl("hello", "a", "b") 311s [1] NA 311s 9/14 substr.R: substr_ctl("hello", 1, NA_integer_) 311s [1] NA 311s 9/14 substr.R: substr_ctl("hello", NA_integer_, 1) 311s [1] NA 311s 9/14 substr.R: substr_ctl(rep("\033[31mhello\033[m", 3), c(3, 2, 1), c(3, 4, 311s [1] "\033[31ml\033[0m" "\033[31mell\033[0m" "\033[31mhello\033[0m" 311s 9/14 substr.R: str.3 <- structure("fu\033[42mba\033[0mr", class = "foo", at = " 311s 9/14 substr.R: substr_ctl(str.3, 2, 3) 311s [1] "u\033[42mb\033[0m" 311s attr(,"class") 311s [1] "foo" 311s attr(,"at") 311s [1] "bar" 311s 9/14 substr.R: substr_ctl(str.2, 2, 6, ctl = c("all", "sgr")) 311s [1] "[31mr" "[31mr" 311s 9/14 substr.R: substr_ctl(str.2, 8, 10, ctl = c("all", "sgr")) 311s [1] "d\033[" "d\033[" 311s 9/14 substr.R: substr2_ctl(rep("o\033[31m ", 2), 1:2, 1:2) 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s [1] "o" "\033[31m \033[0m" 311s 9/14 substr.R: substr_ctl("hello\033[41b", 1, 5) 311s [1] "hello" 311s 9/14 substr.R: substr_ctl("hello\033[41b", 1, 6) 311s [1] "hello\033[41b" 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", 1, 1) 311s [1] "\033[31mA\033[0m" 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", 0, 1) 311s [1] "\033[1p\033[31mA\033[0m" 311s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", -1, 1) 311s [1] "\033[1p\033[31mA\033[0m" 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", 1, 1) 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s [1] "\033[31mA\033[0m" 311s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", 0, 1) 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s [1] "\033[31m\033[1pA\033[0m" 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", -1, 1) 311s [1] "\033[31m\033[1pA\033[0m" 311s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", 1, 1) 311s [1] "\033[1;41mA\033[0m" 311s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", 0, 1) 311s [1] "\033[1;41mA\033[0m" 311s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", -1, 1) 311s [1] "\033[1;41mA\033[0m" 311s 9/14 substr.R: str.4 <- c("A\033[45mB", "A") 311s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 311s 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. 311s 9/14 substr.R: substr_ctl(str.4, 1, 1, carry = TRUE, terminate = FALSE) 311s [1] "A" "\033[45mA" 311s 9/14 substr.R: substr_ctl("a\033[42", 1, 1) 311s [1] "a" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("a\033[42", 1, 2) 312s [1] "a\033[42" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("a\033[42", 1, 2, terminate = FALSE) 312s [1] "a\033[42" 312s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 1) 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s [1] "a" 312s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 2) 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s [1] "a" 312s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 2, terminate = FALSE) 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s [1] "a\033]8;;END" 312s 9/14 substr.R: substr_ctl("a\033];;END", 1, 1) 312s [1] "a" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("a\033];;END", 1, 2) 312s [1] "a\033];;END" 312s 9/14 substr.R: substr_ctl("a\033[38;5mb", 1, 2, term.cap = "all") 312s [1] "a\033[38;5mb" 312s 9/14 substr.R: substr_ctl("a\033[38;2mb", 1, 2, term.cap = "all") 312s [1] "a\033[38;2mb" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("a\033[38;2;255mb", 1, 2, term.cap = "all") 312s [1] "a\033[38;2;255mb" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("a\033[38;2;255;255mb", 1, 2, term.cap = "all") 312s [1] "a\033[38;2;255;255mb" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("\033[45pA", 1, 1, warn = FALSE) 312s [1] "A" 312s 9/14 substr.R: substr_ctl("\033[45pA", 0, 1, warn = FALSE) 312s [1] "\033[45pA" 312s 9/14 substr.R: substr_ctl(c("AB", NA, "CD"), 1, 2) 312s [1] "AB" NA "CD" 312s 9/14 substr.R: substr_ctl(c("AB", NA, "CD"), 1, 2, carry = TRUE) 312s [1] "AB" NA NA 312s 9/14 substr.R: substr_ctl(c("AB", "CD"), c(NA, 1), 2) 312s [1] NA "CD" 312s 9/14 substr.R: substr_ctl(c("AB", "CD"), c(NA, 1), 2, carry = TRUE) 312s [1] NA "CD" 312s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = "bright") 312s [1] "\033[38;5;4mA\033[0m" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("bright", "old")) 312s [1] "\033[4;5mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("all", "256")) 312s [1] "\033[38;5;4mA\033[0m" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("all", "256", 312s [1] "\033[4;5mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("256")) 312s [1] "\033[38;5;4mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("256", "old")) 312s [1] "\033[38;5;4mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = "bright") 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s [1] "\033[38;2;1;1;1mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("bright", Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 312s [1] "\033[1;2mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("all", "truec 312s [1] "\033[38;2;1;1;1mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("all", "truec 312s [1] "\033[1;2mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("truecolor")) 312s [1] "\033[38;2;1;1;1mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("truecolor", 312s [1] "\033[38;2;1;1;1mA\033[0m" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = "256") 312s [1] "\033[107mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("256", "old")) 312s [1] "A" 312s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("all", "bright")) 312s [1] "\033[107mA\033[0m" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s 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. 312s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("all", "bright", 312s [1] "A" 312s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("bright")) 312s [1] "\033[107mA\033[0m" 312s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("bright", "old")) 312s [1] "\033[107mA\033[0m" 312s 9/14 substr.R: str.5 <- c("\033[48;2;100;100;100mAB", "\033[48;2;100;100;100mCD 312s 9/14 substr.R: substr_ctl(str.5, 2, 2, terminate = FALSE, carry = TRUE, term.ca 312s [1] "\033[48;2;100;100;100mB" "D" 312s 9/14 substr.R: str.5a <- c("\033[48;2;100;100;100mAB", "\033[48;2;100;100;101mC 312s 9/14 substr.R: substr_ctl(str.5a, 2, 2, terminate = FALSE, carry = TRUE, term.c 312s [1] "\033[48;2;100;100;100mB" "\033[48;2;100;100;101mD" 312s 9/14 substr.R: unitizer_sect("Obscure escapes", { 312s 9/14 substr.R: tryCatch(substr_ctl("\033[38;6;31mworld\033[m", 2, 3), warning = 312s [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." 312s 9/14 substr.R: suppressWarnings(substr_ctl("\033[38;6;31mworld\033[m", 2, 3)) 312s [1] "\033[6;31mor\033[0m" 312s 9/14 substr.R: tryCatch(substr_ctl("\033[31mhello\033[38;5;256m world\033[m", 312s [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." 312s 9/14 substr.R: suppressWarnings(substr_ctl("\033[31mhello\033[38;5;256m world\0 312s [1] "\033[31mwo\033[0m" 312s 9/14 substr.R: substr_ctl("\033[20mworld\033[m", 2, 3) 312s [1] "\033[20mor\033[0m" 312s 9/14 substr.R: substr_ctl("\033[21mworld\033[m", 2, 3) 312s [1] "\033[21mor\033[0m" 312s 9/14 substr.R: substr_ctl(rep("\033[26mhello \033[50mworld\033[m", 2), c(2, 312s [1] "\033[26mel\033[0m" "orl" 312s 9/14 substr.R: substr_ctl(rep("\033[61mwor\033[65mld\033[m", 2), c(2, 4), c(3, 312s [1] "\033[61mor\033[0m" "ld" 312s 9/14 substr.R: tryCatch(substr_ctl("\033[56mworld\033[m", 2, 3), warning = cond 312s [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." 312s 9/14 substr.R: suppressWarnings(substr_ctl("\033[56mworld\033[m", 2, 3)) 312s [1] "or" 312s 9/14 substr.R: tryCatch(substr_ctl("\033[66mworld\033[m", 2, 3), warning = cond 312s [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." 312s 9/14 substr.R: tryCatch(substr_ctl("\033[200mworld\033[m", 2, 3), warning = con 312s [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." 312s 9/14 substr.R: substr_ctl(rep("\033[91mwor\033[101mld\033[m", 2), c(2, 4), c(3, 312s [1] "\033[91mor\033[0m" "\033[91;101mld\033[0m" 312s 9/14 substr.R: unitizer_sect("bad args", { 312s 9/14 substr.R: hello2.0 <- "\033[42m\thello world\033[m foobar" 312s Error in substr2_ctl(hello2.0, 1, 2, warn = NULL) : 312s Argument `warn` must be TRUE or FALSE. 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, warn = NULL) 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = 1) 312s [1] "\033[42m \033[0m" 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = NA) 312s Error in substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = NA) : 312s Argument `tabs.as.spaces` must be TRUE or FALSE. 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tab.stops = -(1:3)) 312s Error in substr2_ctl(hello2.0, 1, 2, tab.stops = -(1:3)) : 312s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s Error in substr2_ctl(hello2.0, 1, 2, tab.stops = 0) : 312s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tab.stops = 0) 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, round = "bananas") 312s Error in substr2_ctl(hello2.0, 1, 2, round = "bananas") : 312s Argument `round` must partial match one of c("start", "stop", "both", "neither") 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s Error in substr2_ctl(hello2.0, 1, 2, term.cap = 0) : 312s Argument `term.cap` must be character. 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, term.cap = 0) 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, term.cap = "bananas") 312s Error in substr2_ctl(hello2.0, 1, 2, term.cap = "bananas") : 312s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s Error in substr2_ctl(hello2.0, 1, 2, type = "bananas") : 312s Argument `type` must partial match one of c("chars", "width", "graphemes") 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s Error in substr2_ctl(hello2.0, 1, 2, ctl = "bananas") : 312s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s Error in substr2_ctl(hello2.0, 1, 2, ctl = 0) : 312s Argument `ctl` must be character. 312s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, type = "bananas") 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, ctl = "bananas") 312s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, ctl = 0) 312s 9/14 substr.R: unitizer_sect("`ctl` related issues", { 312s 9/14 substr.R: substr_sgr("\033[31;42mhello world", 2, 4) 312s [1] "\033[31;42mell\033[0m" 312s 9/14 substr.R: substr_sgr("\033[31m\033[42mhello world", 2, 4) 312s [1] "\033[31;42mell\033[0m" 312s 9/14 substr.R: tryCatch(substr_sgr("\033[31;42!mhello world", 2, 4), warning = 312s [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." 312s 9/14 substr.R: substr_sgr("\033[55;38l\033[31mhello world", 2, 4, warn = FALSE) 312s [1] "[55" 312s 9/14 substr.R: substr_sgr("\033[31m\033[55;38lhello world", 2, 4, warn = FALSE) 312s [1] "\033[31m[55\033[0m" 312s 9/14 substr.R: substr_sgr("hello \033[31m\033[55;38lworld", 7, 9, warn = FALSE) 312s [1] "\033[31m\033[5\033[0m" 312s 9/14 substr.R: substr_ctl("\033[55;38l\033[31mhello world", 2, 4, warn = FALSE) 312s [1] "\033[31mell\033[0m" 312s 9/14 substr.R: substr_ctl("\033[31m\033[55;38lhello world", 2, 4, warn = FALSE) 312s [1] "\033[31mell\033[0m" 312s 9/14 substr.R: substr_ctl("hello \033[31m\033[55;38lworld", 7, 9, warn = FALSE) 312s [1] "\033[31mwor\033[0m" 312s 9/14 substr.R: substr_ctl("hello\033[55;38l \033[31mworld", 4, 7, warn = FALSE) 312s [1] "lo\033[55;38l \033[31mw\033[0m" 312s 9/14 substr.R: substr_sgr("ab\n\tcd\n", 3, 6, warn = FALSE) 312s [1] "\n\tcd" 312s 9/14 substr.R: substr_sgr("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE) 312s [1] "\n\033[31m\tcd\033[0m" 312s 9/14 substr.R: substr_ctl("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE, ctl = c("al 312s [1] "\n\033[31m\tcd\n\033[0m" 312s 9/14 substr.R: substr_ctl("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE, ctl = c("al 312s [1] "\n\033[31m\tcd\033[0m" 312s 9/14 substr.R: substr_sgr(c("\a", "b", "c"), 1, 1) 312s [1] "\a" "b" "c" 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s Argument `x` contains a C0 control character at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 312s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 312s Argument `x` contains a C0 control character at index [3], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 312s 9/14 substr.R: substr_sgr(c("a", "\b", "c"), 1, 1) 312s [1] "a" "\b" "c" 312s 9/14 substr.R: substr_sgr(c("a", "b", "\ac"), 1, 1) 312s [1] "a" "b" "\a" 312s 9/14 substr.R: unitizer_sect("Rep Funs - Equivalence", { 312s 9/14 substr.R: txt0 <- "ABCD" 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 2, value = "#"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 2, value = "#?"), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = "#?-"), `substr<-`( 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 0, 0, value = "#"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 1, value = "#"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 10, 12, value = "#"), `substr<-`( 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = "#"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 1, 5, value = "#"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 0, 5, value = "#"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: `substr_ctl<-`(txt0, 0, -1, value = "#") 312s [1] "ABCD" 312s 9/14 substr.R: rep1 <- c("_", "_.") 312s 9/14 substr.R: rep2 <- c("_", "_.", "...") 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = rep1), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = rep2), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: txt1 <- c("AB", "CDE") 312s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = "_"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = rep1), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = rep2), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: txt2 <- c("AB", "CDE", "EFGH") 312s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = "_"), `substr<-`(tx 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = rep1), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = rep2), `substr<-`(t 312s [1] TRUE 312s 9/14 substr.R: txt3a <- txt3b <- c("ABC", "ABC") 312s 9/14 substr.R: substr(txt3a[2], 2, 2) <- "_" 312s 9/14 substr.R: substr_ctl(txt3b[2], 2, 2) <- "_" 312s 9/14 substr.R: identical(txt3a, txt3b) 312s [1] TRUE 312s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = NA_character_), 312s [1] TRUE 312s 9/14 substr.R: txt.na <- NA_character_ 312s 9/14 substr.R: identical(`substr_ctl<-`(txt.na, 1, 2, value = "AB"), `substr<-` 312s [1] TRUE 312s 9/14 substr.R: unitizer_sect("Rep Funs - SGR", { 312s 9/14 substr.R: txt1 <- "\033[33mABCD" 312s 9/14 substr.R: txt2 <- "\033[33mA\033[44mBCD" 312s 9/14 substr.R: txt3 <- "\033[33mA\033[44mBC\033[1mD" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 2, value = "#") 312s [1] "\033[33mA\033[0m#\033[33mCD" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#?-") 312s [1] "\033[33mA\033[0m#?\033[33mD" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[32m?-") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33mD" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[32m?-\033[0m") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33mD" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[0m?-") 312s [1] "\033[33mA\033[0m#\033[0m?\033[33mD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[32m?-") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[32m?-\033[0m") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[0m?-") 312s [1] "\033[33mA\033[0m#\033[0m?\033[33;44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[32m?-") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[1;33;44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[32m?-\033[0m") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[1;33;44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[0m?-") 312s [1] "\033[33mA\033[0m#\033[0m?\033[1;33;44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 2, terminate = FALSE, value = "#") 312s [1] "\033[33mA#\033[44mCD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[32m 312s [1] "\033[33mA#\033[32m?\033[44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[32m 312s [1] "\033[33mA#\033[32m?\033[44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[0m? 312s [1] "\033[33mA#\033[0m?\033[44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, terminate = FALSE, value = "#\033[0m? 312s [1] "\033[33mA#\033[0m?D" 312s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, terminate = FALSE, value = "#\033[0m\ 312s [1] "\033[33mA#\033[0m\033[45m?D" 312s 9/14 substr.R: txt4 <- c(txt2, txt0, "\033[39mABCD") 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = "#") 312s [1] "\033[33mA\033[0m#\033[33;44mCD" "A#CD" 312s [3] "\033[39mA#CD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = c("#", "?")) 312s [1] "\033[33mA\033[0m#\033[33;44mCD" "A?CD" 312s [3] "\033[39mA#CD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = c("#", "?", "$")) 312s [1] "\033[33mA\033[0m#\033[33;44mCD" "A?CD" 312s [3] "\033[39mA$CD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 2, carry = TRUE, value = "#") 312s [1] "\033[33mA\033[0m#\033[33;44mCD" "A\033[0m#\033[33;44mCD" 312s [3] "\033[39mA\033[0m#\033[44mCD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[32m?-") 312s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 312s [2] "A\033[0m\033[32m#\033[32m?\033[0m\033[33;44mD" 312s [3] "\033[39mA\033[0m\033[32m#\033[32m?\033[0m\033[44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[42m?-\03 312s [1] "\033[33mA\033[0m#\033[42m?\033[0m\033[33;44mD" 312s [2] "A\033[0m#\033[42m?\033[0m\033[33;44mD" 312s [3] "\033[39mA\033[0m#\033[42m?\033[0m\033[44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[0m?-") 312s [1] "\033[33mA\033[0m#\033[0m?\033[33;44mD" 312s [2] "A\033[0m#\033[0m?\033[33;44mD" 312s [3] "\033[39mA\033[0m#\033[0m?\033[44mD" 312s 9/14 substr.R: rep4 <- c("\033[32m_\033[45m", ".-", "\033[39m__") 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = rep4) 312s [1] "\033[33mA\033[0m\033[32m_\033[0m\033[33;44mCD" 312s [2] "A\033[0m\033[32;45m.-\033[0m\033[33;44mD" 312s [3] "\033[39mA\033[0m\033[45m__\033[0m\033[44mD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 2, terminate = FALSE, carry = TRUE, valu 312s [1] "\033[33mA#\033[44mCD" "A#CD" "\033[39mA#CD" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 312s [1] "\033[33mA#\033[32m?\033[44mD" "A#\033[32m?D" 312s [3] "\033[39mA#\033[32m?D" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 312s [1] "\033[33mA#\033[35m?\033[44mD" "A\033[0m#\033[35m?D" 312s [3] "\033[39mA\033[0m#\033[35m?D" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 312s [1] "\033[33mA#\033[0m?\033[44mD" "A#\033[0m?D" 312s [3] "\033[39mA#\033[0m?D" 312s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 312s [1] "\033[33mA\033[32m_\033[45m\033[44mCD" 312s [2] "A.-D" 312s [3] "\033[39mA\033[0;45m__D" 312s 9/14 substr.R: txt5 <- c("ABD", "DFG") 312s 9/14 substr.R: `substr_ctl<-`(txt5, 2, 2, value = ".\033[45m", carry = TRUE, 312s [1] "A.D" "D\033[45m.G" 312s 9/14 substr.R: txt6 <- "A123456789B" 312s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 9, value = "\t", tabs.as.spaces = TRUE) 312s [1] "A 9B" 312s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 3, value = "\t", tabs.as.spaces = TRUE) 312s [1] "A 3456789B" 312s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 10, value = "\t", tabs.as.spaces = TRUE 312s [1] "A 9B" 312s 9/14 substr.R: txt7a <- "os" 312s 9/14 substr.R: txt7b <- "sos" 312s 9/14 substr.R: txt7c <- "so" 312s 9/14 substr.R: val.scar <- "" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 1, 1, value = val.scar)) 312s [1] "UTF-8" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 1, 1, value = "s")) 312s [1] "unknown" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 2, 2, value = val.scar)) 312s [1] "UTF-8" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 2, 2, value = "s")) 312s [1] "UTF-8" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7b, 2, 2, value = val.scar)) 312s [1] "UTF-8" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7b, 2, 2, value = "s")) 312s [1] "unknown" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7c, 3, 3, value = val.scar)) 312s [1] "UTF-8" 312s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7c, 3, 3, value = "s")) 312s [1] "unknown" 312s 9/14 substr.R: unitizer_sect("Rep Funs - Corner Cases", { 312s 9/14 substr.R: `substr_ctl<-`(txt2, 1, 3, terminate = FALSE, value = "#\033[32m 312s [1] "\033[33m#\033[32m?\033[0m\033[44mCD" 312s 9/14 substr.R: txt8 <- "\033[32mAB\033[45m" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 2, value = "12") 312s [1] "\033[32m\033[0m12\033[32m\033[45m" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 2, value = "12", terminate = FALSE) 312s [1] "\033[32m12\033[45m" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "12") 312s [1] "\033[32m\033[0m12" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "1") 312s [1] "\033[32m\033[0m1\033[32mB\033[45m" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "") 312s [1] "\033[32mAB\033[45m" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "123") 312s [1] "\033[32m\033[0m12" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 0, 2, value = "12") 312s [1] "12\033[32m\033[45m" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 0, 3, value = "12") 312s [1] "12" 312s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "\033[1m", terminate = FALSE) 312s [1] "\033[32m\033[1mAB\033[45m" 312s 9/14 substr.R: tce(`substr_ctl<-`(txt8, 1, 3, value = "A", carry = "\033[41m")) 312s [1] "Argument `carry` must be TRUE or FALSE in replacement mode." 312s 9/14 substr.R: lat <- "fa\347ile" 312s 9/14 substr.R: Encoding(lat) <- "latin1" 312s 9/14 substr.R: tce(`substr_ctl<-`(lat, 1, 3, value = "ABC")) 312s [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]." 312s 9/14 substr.R: txt.na2 <- c("AB", NA, "BC") 312s 9/14 substr.R: `substr_ctl<-`(txt.na2, 1, 1, value = "#") 312s [1] "#B" NA "#C" 312s 9/14 substr.R: txt.nona <- c("AB", "BC", "CD") 312s 9/14 substr.R: `substr_ctl<-`(txt.nona, 1, 1, value = c("#", NA), carry = TRUE) 312s [1] "#B" NA NA 312s 313s 10/14 tabs.R: 313s 10/14 tabs.R: library(unitizer) 313s 10/14 tabs.R: library(fansi) 313s 10/14 tabs.R: unitizer_sect("simple tabs", { 313s 10/14 tabs.R: string <- "1\t12\t123\t1234\t12345678" 313s 10/14 tabs.R: tabs_as_spaces(string) 313s [1] "1 12 123 1234 12345678" 313s 10/14 tabs.R: tabs_as_spaces(string, c(2, 3, 4, 5, 8)) 313s [1] "1 12 123 1234 12345678" 313s 10/14 tabs.R: tabs_as_spaces(string, c(2, 8)) 313s [1] "1 12 123 1234 12345678" 313s 10/14 tabs.R: tabs_as_spaces(1:3) 313s [1] "1" "2" "3" 313s 10/14 tabs.R: unitizer_sect("newlines", { 313s 10/14 tabs.R: string.n <- paste0("1\t12\t123\t1234\t12345678\n", "1\t12\t123\t12 313s 10/14 tabs.R: tabs_as_spaces(string.n) 313s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 313s 10/14 tabs.R: tabs_as_spaces(string.n, c(2, 3, 4, 8)) 313s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 313s 10/14 tabs.R: tabs_as_spaces(string.n, c(2, 8)) 313s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 313s 10/14 tabs.R: unitizer_sect("corner cases", { 313s 10/14 tabs.R: tabs_as_spaces("") 313s [1] "" 313s 10/14 tabs.R: tabs_as_spaces("\t") 313s [1] " " 313s 10/14 tabs.R: tabs_as_spaces("\n") 313s [1] "\n" 313s 10/14 tabs.R: tabs_as_spaces(c(string, string, string)) 313s [1] "1 12 123 1234 12345678" 313s [2] "1 12 123 1234 12345678" 313s [3] "1 12 123 1234 12345678" 313s 10/14 tabs.R: tabs_as_spaces("\t\t") 313s [1] " " 313s 10/14 tabs.R: unitizer_sect("bad inputs", { 313s 10/14 tabs.R: tabs_as_spaces(string, warn = 1:3) 313s Error in tabs_as_spaces(string, warn = 1:3) : 313s Argument `warn` must be TRUE or FALSE. 313s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 313s 10/14 tabs.R: tabs_as_spaces(string, tab.stops = "hello") 313s Error in tabs_as_spaces(string, tab.stops = "hello") : 313s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 313s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 313s 10/14 tabs.R: tabs_as_spaces(string, ctl = "hello") 313s Error in tabs_as_spaces(string, ctl = "hello") : 313s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 313s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 313s 10/14 tabs.R: tabs_as_spaces(string, ctl = 0) 313s Error in tabs_as_spaces(string, ctl = 0) : 313s Argument `ctl` must be character. 313s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 313s 313s 11/14 tohtml.R: 313s 11/14 tohtml.R: library(unitizer) 313s 11/14 tohtml.R: library(fansi) 313s 11/14 tohtml.R: unitizer_sect("colors", { 313s 11/14 tohtml.R: style <- "width: 16px; height: 16px; display: inline-block;" 313s 11/14 tohtml.R: span <- "" 313s 11/14 tohtml.R: colors.8 <- fansi:::esc_color_code_to_html(rbind(c(0:7), 0L, 313s 11/14 tohtml.R: colors.8 313s [1] "#000000" "#BB0000" "#00BB00" "#BBBB00" "#0000BB" "#BB00BB" "#00BBBB" 313s [8] "#BBBBBB" 313s Error in fansi:::esc_color_code_to_html(matrix(c(9L, 0L, 0L, 0L, 0L))) : 313s Internal Error: applying non-color. 313s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 313s 11/14 tohtml.R: fansi:::esc_color_code_to_html(matrix(c(9L, 0L, 0L, 0L, 0L))) 313s 11/14 tohtml.R: colors.255 <- fansi:::esc_color_code_to_html(rbind(8L, 5L, 0:255 313s 11/14 tohtml.R: colors.255 313s [1] "#000000" "#800000" "#008000" "#808000" "#000080" "#800080" "#008080" 313s [8] "#C0C0C0" "#808080" "#FF0000" "#00FF00" "#FFFF00" "#0000FF" "#FF00FF" 313s [15] "#00FFFF" "#FFFFFF" "#000000" "#00005F" "#000087" "#0000AF" "#0000D7" 313s [22] "#0000FF" "#005F00" "#005F5F" "#005F87" "#005FAF" "#005FD7" "#005FFF" 313s [29] "#008700" "#00875F" "#008787" "#0087AF" "#0087D7" "#0087FF" "#00AF00" 313s [36] "#00AF5F" "#00AF87" "#00AFAF" "#00AFD7" "#00AFFF" "#00D700" "#00D75F" 313s [43] "#00D787" "#00D7AF" "#00D7D7" "#00D7FF" "#00FF00" "#00FF5F" "#00FF87" 313s [50] "#00FFAF" "#00FFD7" "#00FFFF" "#5F0000" "#5F005F" "#5F0087" "#5F00AF" 313s [57] "#5F00D7" "#5F00FF" "#5F5F00" "#5F5F5F" "#5F5F87" "#5F5FAF" "#5F5FD7" 313s [64] "#5F5FFF" "#5F8700" "#5F875F" "#5F8787" "#5F87AF" "#5F87D7" "#5F87FF" 313s [71] "#5FAF00" "#5FAF5F" "#5FAF87" "#5FAFAF" "#5FAFD7" "#5FAFFF" "#5FD700" 313s [78] "#5FD75F" "#5FD787" "#5FD7AF" "#5FD7D7" "#5FD7FF" "#5FFF00" "#5FFF5F" 313s [85] "#5FFF87" "#5FFFAF" "#5FFFD7" "#5FFFFF" "#870000" "#87005F" "#870087" 313s [92] "#8700AF" "#8700D7" "#8700FF" "#875F00" "#875F5F" "#875F87" "#875FAF" 313s [99] "#875FD7" "#875FFF" "#878700" "#87875F" "#878787" "#8787AF" "#8787D7" 313s [106] "#8787FF" "#87AF00" "#87AF5F" "#87AF87" "#87AFAF" "#87AFD7" "#87AFFF" 313s [113] "#87D700" "#87D75F" "#87D787" "#87D7AF" "#87D7D7" "#87D7FF" "#87FF00" 313s [120] "#87FF5F" "#87FF87" "#87FFAF" "#87FFD7" "#87FFFF" "#AF0000" "#AF005F" 313s [127] "#AF0087" "#AF00AF" "#AF00D7" "#AF00FF" "#AF5F00" "#AF5F5F" "#AF5F87" 313s [134] "#AF5FAF" "#AF5FD7" "#AF5FFF" "#AF8700" "#AF875F" "#AF8787" "#AF87AF" 313s [141] "#AF87D7" "#AF87FF" "#AFAF00" "#AFAF5F" "#AFAF87" "#AFAFAF" "#AFAFD7" 313s [148] "#AFAFFF" "#AFD700" "#AFD75F" "#AFD787" "#AFD7AF" "#AFD7D7" "#AFD7FF" 313s [155] "#AFFF00" "#AFFF5F" "#AFFF87" "#AFFFAF" "#AFFFD7" "#AFFFFF" "#D70000" 313s [162] "#D7005F" "#D70087" "#D700AF" "#D700D7" "#D700FF" "#D75F00" "#D75F5F" 313s [169] "#D75F87" "#D75FAF" "#D75FD7" "#D75FFF" "#D78700" "#D7875F" "#D78787" 313s [176] "#D787AF" "#D787D7" "#D787FF" "#D7AF00" "#D7AF5F" "#D7AF87" "#D7AFAF" 313s [183] "#D7AFD7" "#D7AFFF" "#D7D700" "#D7D75F" "#D7D787" "#D7D7AF" "#D7D7D7" 313s [190] "#D7D7FF" "#D7FF00" "#D7FF5F" "#D7FF87" "#D7FFAF" "#D7FFD7" "#D7FFFF" 313s [197] "#FF0000" "#FF005F" "#FF0087" "#FF00AF" "#FF00D7" "#FF00FF" "#FF5F00" 313s [204] "#FF5F5F" "#FF5F87" "#FF5FAF" "#FF5FD7" "#FF5FFF" "#FF8700" "#FF875F" 313s [211] "#FF8787" "#FF87AF" "#FF87D7" "#FF87FF" "#FFAF00" "#FFAF5F" "#FFAF87" 313s [218] "#FFAFAF" "#FFAFD7" "#FFAFFF" "#FFD700" "#FFD75F" "#FFD787" "#FFD7AF" 313s [225] "#FFD7D7" "#FFD7FF" "#FFFF00" "#FFFF5F" "#FFFF87" "#FFFFAF" "#FFFFD7" 313s [232] "#FFFFFF" "#080808" "#121212" "#1C1C1C" "#262626" "#303030" "#3A3A3A" 313s [239] "#444444" "#4E4E4E" "#585858" "#626262" "#6C6C6C" "#767676" "#808080" 313s [246] "#8A8A8A" "#949494" "#9E9E9E" "#A8A8A8" "#B2B2B2" "#BCBCBC" "#C6C6C6" 313s [253] "#D0D0D0" "#DADADA" "#E4E4E4" "#EEEEEE" 313s 11/14 tohtml.R: vals <- c(0L, 127L, 255L) 313s 11/14 tohtml.R: colors.tru <- fansi:::esc_color_code_to_html(do.call(rbind, c(li 313s 11/14 tohtml.R: colors.tru 313s [1] "#000000" "#7F0000" "#FF0000" "#007F00" "#7F7F00" "#FF7F00" "#00FF00" 313s [8] "#7FFF00" "#FFFF00" "#00007F" "#7F007F" "#FF007F" "#007F7F" "#7F7F7F" 313s [15] "#FF7F7F" "#00FF7F" "#7FFF7F" "#FFFF7F" "#0000FF" "#7F00FF" "#FF00FF" 313s [22] "#007FFF" "#7F7FFF" "#FF7FFF" "#00FFFF" "#7FFFFF" "#FFFFFF" 313s 11/14 tohtml.R: unitizer_sect("simple html conversion", { 313s 11/14 tohtml.R: as_html_page <- function(x) { 313s 11/14 tohtml.R: sgr_to_html("hello \033[31;42;1mworld\033[0m") 313s [1] "hello world" 313s 11/14 tohtml.R: sgr_to_html("hello \033[31;48;5;23;1mworld\033[m") 313s [1] "hello world" 313s 11/14 tohtml.R: sgr_to_html("\033[1mbold\033[22m \033[2mfaint\033[22m \033[mital 313s [1] "bold faint italic\n" 313s 11/14 tohtml.R: csi_string <- c("\033[1mbold\033[22m \033[2mfaint\033[22m \033[3 313s 11/14 tohtml.R: html_string <- sgr_to_html(csi_string) 313s 11/14 tohtml.R: html_string 313s [1] "bold faint italic" 313s [2] "underline slow-blink" 313s [3] "fast-blink" 313s [4] "red-fg-green-bginverse inverse-off" 313s [5] "conceal reveal crossed-outclear" 313s [6] "bold faint italic" 313s [7] "underline slow-blink" 313s [8] "fast-blink" 313s [9] "red-fg-green-bginverse inverse-off" 313s [10] "conceal reveal crossed-outclear" 313s [11] "italic again not italic?" 313s 11/14 tohtml.R: unitizer_sect("Bright Colors", { 313s 11/14 tohtml.R: sgr_to_html("hello\033[94;101m world\033[39m yow\033[49mza") 313s [1] "hello world yowza" 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, :11/14 tohtml.R: sgr_to_html("hello\033[98;101m world\033[39m yow\033[49mza") 313s [1] "hello world yowza" 313s 313s 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. 313s 11/14 tohtml.R: unitizer_sect("Corner cases", { 313s 11/14 tohtml.R: sgr_to_html("hello\033[0m") 313s [1] "hello" 313s 11/14 tohtml.R: sgr_to_html("hello\033[31m") 313s [1] "hello" 313s 11/14 tohtml.R: sgrs <- paste0(rep("\033[31m", 20), collapse = "") 313s 11/14 tohtml.R: sgr_to_html(sprintf("%shello world\033[m", sgrs)) 313s [1] "hello world" 313s 11/14 tohtml.R: sgr_to_html(1:3) 313s [1] "1" "2" "3" 313s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[m\033[42m world\033[m") 313s [1] "hello world" 313s 11/14 tohtml.R: sgr_to_html("\033[33mhello") 313s [1] "hello" 313s 11/14 tohtml.R: sgr_to_html("he\033[33mllo") 313s [1] "hello" 313s 11/14 tohtml.R: sgr_to_html("hello\033[33m") 313s [1] "hello" 313s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "world")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "\033[44mworld")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "wor\033[44mld")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "world\033[44m")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "world")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "\033[44mworld")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "wor\033[44mld")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "world\033[44m")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "world")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "\033[44mworld")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "wor\033[44mld")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "world\033[44m")) 313s [1] "hello" 313s [2] "world" 313s 11/14 tohtml.R: unitizer_sect("Bad inputs", { 313s Error in fansi:::esc_color_code_to_html(matrix(1:12, 4)) : 313s Argument `x` must be a five row integer matrix. 313s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 313s 11/14 tohtml.R: fansi:::esc_color_code_to_html(matrix(1:12, 4)) 313s 11/14 tohtml.R: sgr_to_html(1:3) 313s [1] "1" "2" "3" 313s 11/14 tohtml.R: sgr_to_html("a", warn = 1:3) 313s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s Argument `warn` must be TRUE or FALSE. 313s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 313s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s Argument `term.cap` must be character. 313s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 313s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 313s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 313s 11/14 tohtml.R: sgr_to_html("a", term.cap = 1:3) 313s 11/14 tohtml.R: sgr_to_html("a", term.cap = "hello") 313s 11/14 tohtml.R: unitizer_sect("issue54", { 313s 11/14 tohtml.R: string <- c("\033[31m", "\033[39m") 313s 11/14 tohtml.R: fansi::sgr_to_html(string) 313s [1] "" "" 313s 11/14 tohtml.R: string1 <- c("\033[31mhello", "world\033[39m moon") 313s 11/14 tohtml.R: fansi::sgr_to_html(string1) 313s [1] "hello" 313s [2] "world moon" 313s 11/14 tohtml.R: string2 <- c("\033[3mhello\033[24m", "world\033[23m moon") 313s 11/14 tohtml.R: fansi::sgr_to_html(string2) 313s [1] "hello" 313s [2] "world moon" 313s 11/14 tohtml.R: unitizer_sect("Colors as classes (#65)", { 313s 11/14 tohtml.R: sgr_to_html("\033[94mhello\033[31;42;1mworld\033[m", classes = T 313s [1] "helloworld" 313s 11/14 tohtml.R: class.8 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:7), 313s 11/14 tohtml.R: class.16 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:15), 313s 11/14 tohtml.R: class.256 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:255), 313s 11/14 tohtml.R: x <- c("\033[94mhe\033[107mllo\033[31;42;1mworld\033[m", "\033[4 313s 11/14 tohtml.R: term.cap <- c("bright", "256", "truecolor") 313s 11/14 tohtml.R: sgr_to_html(x, classes = class.8, term.cap = term.cap) 313s [1] "helloworld" 313s [2] "goodbye super moon" 313s 11/14 tohtml.R: sgr_to_html(x, classes = class.16, term.cap = term.cap) 313s [1] "helloworld" 313s [2] "goodbye super moon" 313s 11/14 tohtml.R: sgr_to_html(x, classes = class.256, term.cap = term.cap) 313s [1] "helloworld" 313s [2] "goodbye super moon" 313s 11/14 tohtml.R: make_styles(class.8) 313s [1] ".fg-0 {color: #000000;}" ".bg-0 {background-color: #000000;}" 313s [3] ".fg-1 {color: #800000;}" ".bg-1 {background-color: #800000;}" 313s [5] ".fg-2 {color: #008000;}" ".bg-2 {background-color: #008000;}" 313s [7] ".fg-3 {color: #808000;}" ".bg-3 {background-color: #808000;}" 313s [9] ".fg-4 {color: #000080;}" ".bg-4 {background-color: #000080;}" 313s [11] ".fg-5 {color: #800080;}" ".bg-5 {background-color: #800080;}" 313s [13] ".fg-6 {color: #008080;}" ".bg-6 {background-color: #008080;}" 313s [15] ".fg-7 {color: #C0C0C0;}" ".bg-7 {background-color: #C0C0C0;}" 313s 11/14 tohtml.R: make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, 0), 3)) 313s [1] ".fg-0 {color: #000000;}" ".bg-0 {background-color: #000000;}" 313s [3] ".fg-1 {color: #000080;}" ".bg-1 {background-color: #000080;}" 313s [5] ".fg-2 {color: #800000;}" ".bg-2 {background-color: #800000;}" 313s [7] ".fg-3 {color: #800080;}" ".bg-3 {background-color: #800080;}" 313s [9] ".fg-4 {color: #008000;}" ".bg-4 {background-color: #008000;}" 313s [11] ".fg-5 {color: #008080;}" ".bg-5 {background-color: #008080;}" 313s [13] ".fg-6 {color: #808000;}" ".bg-6 {background-color: #808000;}" 313s [15] ".fg-7 {color: #C0C0C0;}" ".bg-7 {background-color: #C0C0C0;}" 313s 11/14 tohtml.R: sgr_to_html(sgr_256()) 313s [1] "Standard" 313s [2] " 0 1 2 3 4 5 6 7" 313s [3] "" 313s [4] "High-Intensity" 313s [5] " 8 9 10 11 12 13 14 15" 313s [6] "" 313s [7] "216 Colors (Dark)" 313s [8] " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33" 313s [9] " 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69" 313s [10] " 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105" 313s [11] "124125126127128129130131132133134135136137138139140141" 313s [12] "160161162163164165166167168169170171172173174175176177" 313s [13] "196197198199200201202203204205206207208209210211212213" 313s [14] "" 313s [15] "216 Colors (Light)" 313s [16] " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51" 313s [17] " 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87" 313s [18] "106107108109110111112113114115116117118119120121122123" 313s [19] "142143144145146147148149150151152153154155156157158159" 313s [20] "178179180181182183184185186187188189190191192193194195" 313s [21] "214215216217218219220221222223224225226227228229230231" 313s [22] "" 313s [23] "Grayscale" 313s [24] "232 233 234 235 236 237 238 239 240 241 242 243" 313s [25] "244 245 246 247 248 249 250 251 252 253 254 255" 313s 11/14 tohtml.R: sgr_to_html(sgr_256(), classes = class.256) 313s [1] "Standard" 313s [2] " 0 1 2 3 4 5 6 7" 313s [3] "" 313s [4] "High-Intensity" 313s [5] " 8 9 10 11 12 13 14 15" 313s [6] "" 313s [7] "216 Colors (Dark)" 313s [8] " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33" 313s [9] " 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69" 313s [10] " 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105" 313s [11] "124125126127128129130131132133134135136137138139140141" 313s [12] "160161162163164165166167168169170171172173174175176177" 313s [13] "196197198199200201202203204205206207208209210211212213" 313s [14] "" 313s [15] "216 Colors (Light)" 313s [16]Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s Argument `classes` must be TRUE, FALSE, or a character vector. 313s Calls: unitize_dir ... eval -> eval -> withVisible -> sgr_to_html -> to_html_int 313s " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51" 313s [17] " 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87" 313s [18] "106107108109110111112113114115116117118119120121122123" 313s [19] "142143144145146147148149150151152153154155156157158159" 313s [20] "178179180181182183184185186187188189190191192193194195" 313s [21] "214215216217218219220221222223224225226227228229230231" 313s [22] "" 313s [23] "Grayscale" 313s [24] "232 233 234 235 236 237 238 239 240 241 242 243" 313s [25] "244 245 246 247 248 249 250 251 252 253 254 255" 313s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = NULL) 313s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = character(7L)) 313s Error in check_classes(classes) : 313s Argument `classes` must be length 16, 32, or 512 if it is a character vector (is 7). 313s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 313s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = rep(NA_character_ 313s Error in check_classes(classes) : Argument `classes` contains NA values. 313s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 313s Error in check_classes(classes) : 313s Argument `classes` contains charcters other than ASCII letters, numbers, the hyphen, and underscore. 313s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 313s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = rep("bad class", 313s 11/14 tohtml.R: make_styles(class.8, c(1, 1, 0, 0, 0, 1, 1, 0, 0)) 313s Error in make_styles(class.8, c(1, 1, 0, 0, 0, 1, 1, 0, 0)) : 313s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 313s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 313s 11/14 tohtml.R: make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, NA), 3)) 313s Error in make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, NA), 3)) : 313s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 313s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 313s Error in make_styles(class.8, "hello") : 313s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 313s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 313s 11/14 tohtml.R: make_styles(class.8, "hello") 313s 11/14 tohtml.R: make_styles(letters, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, 0), 3)) 313s Error in check_classes(classes) : 313s Argument `classes` must be length 16, 32, or 512 if it is a character vector (is 26). 313s Calls: unitize_dir ... eval -> withVisible -> make_styles -> check_classes 313s 11/14 tohtml.R: make_styles(NULL) 313s Error in make_styles(NULL) : Argument `classes` is not character. 313s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 313s 11/14 tohtml.R: unitizer_sect("chars to escape", { 313s 11/14 tohtml.R: str.esc <- c("A\033[45mB", "A\033[43m&B") 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s `x` contains unescaped HTML special character '<' at index [1] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 313s 11/14 tohtml.R: to_html(str.esc) 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s `x` contains unescaped HTML special character '>' at index [2] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 313s [1] "A" 313s [2] "A>B" 313s [3] "A&B" 313s 11/14 tohtml.R: sgr_to_html(str.esc) 313s [1] "A" 313s [2] "A>B" 313s [3] "A&B" 313s 11/14 tohtml.R: to_html(str.esc, warn = FALSE) 313s [1] "A" 313s [2] "A>B" 313s [3] "A&B" 313s 11/14 tohtml.R: to_html(html_esc(str.esc)) 313s [1] "A<B" 313s [2] "A>B" 313s [3] "A&B" 313s 11/14 tohtml.R: str.esc2 <- c("A\033[45mB", "A\033[201mB") 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s `x` contains unescaped HTML special character '<' at index [1] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s 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. 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s `x` contains unescaped HTML special character '>' at index [2] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 313s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 313s 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. 313s 11/14 tohtml.R: to_html(str.esc2) 313s [1] "A" 313s [2] "A>B" 313s [3] "AB" 313s 11/14 tohtml.R: to_html(str.esc2, warn = FALSE) 313s [1] "A" 313s [2] "A>B" 313s [3] "AB" 313s 11/14 tohtml.R: unitizer_sect("helpers", { 313s 11/14 tohtml.R: html <- sgr_to_html("\033[42mHello") 313s 11/14 tohtml.R: f <- in_html(html, css = "span {background-color: #CCC;}", displ 313s 11/14 tohtml.R: readLines(f) 313s [1] "" 313s [2] "" 313s [3] "" 313s [6] "" 313s [7] "
"                                                
313s  [8] "Hello"
313s  [9] "
" 313s [10] "" 313s [11] "" 313s 11/14 tohtml.R: unlink(f) 313s 11/14 tohtml.R: in_html(html, css = "span {background-color: #CCC;}", display = 314s 11/14 tohtml.R: unitizer_sect("carry", { 314s 11/14 tohtml.R: string.2 <- c("A\033[44m", "B\033[49m", "C", "\033[39mD") 314s 11/14 tohtml.R: to_html(string.2) 314s [1] "A" 314s [2] "B" 314s [3] "C" 314s [4] "D" 314s 11/14 tohtml.R: to_html(string.2, carry = FALSE) 314s [1] "A" "B" "C" "D" 314s 11/14 tohtml.R: to_html(string.2, carry = "\033[33m") 314s [1] "A" 314s [2] "B" 314s [3] "C" 314s [4] "D" 314s 11/14 tohtml.R: to_html(string.2, carry = "\033[33m\033]8;;https://w.z\033\\") 314s [1] "A" 314s [2] "B" 314s [3] "C" 314s [4] "D" 314s 11/14 tohtml.R: string.3 <- c("A\033[44m", "\033[31mC", NA, "\033[39mD") 314s 11/14 tohtml.R: to_html(string.3) 314s [1] "A" 314s [2] "C" 314s [3] NA 314s [4] NA 314s 11/14 tohtml.R: to_html(string.3, carry = FALSE) 314s [1] "A" 314s [2] "C" 314s [3] NA 314s [4] "D" 314s 314s 12/14 trimws.R: 314s 12/14 trimws.R: library(fansi) 314s 12/14 trimws.R: unitizer_sect("Equivalence", { 314s 12/14 trimws.R: txt1 <- c("", "hello", " \t \n\r he\nl\tl\r o \r\t\n", "he\nl\tl 314s 12/14 trimws.R: identical(trimws(txt1), trimws_ctl(txt1)) 314s [1] TRUE 314s 12/14 trimws.R: identical(trimws(txt1, which = "left"), trimws_ctl(txt1, which = 314s [1] TRUE 314s 12/14 trimws.R: identical(trimws(txt1, which = "right"), trimws_ctl(txt1, which 314s [1] TRUE 314s 12/14 trimws.R: unitizer_sect("Controls", { 314s 12/14 trimws.R: txt2 <- c("\033[31m he\033[42;1m llo \033[49m\n\t ", " \033]8;;h 314s Warning in trimws_ctl(txt2, ctl = c("all", "url", "osc")) : 314s 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. 314s Warning in trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) : 314s 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. 314s Warning in trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) : 314s 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. 314s 12/14 trimws.R: trimws_ctl(txt2) 314s [1] "\033[31mhe\033[42;1m llo\033[0;1;31m" 314s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello\033[31m\033]8;;\033\\" 314s 12/14 trimws.R: trimws_ctl(txt2, which = "left") 314s [1] "\033[31mhe\033[42;1m llo \033[49m\n\t " 314s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello \033]8;;\033\\ \033[31m" 314s 12/14 trimws.R: trimws_ctl(txt2, which = "right") 314s [1] "\033[31m he\033[42;1m llo\033[0;1;31m" 314s [2] " \033]8;;https://x.yz\033\\\tLINK\033[45m hello\033[31m\033]8;;\033\\" 314s 12/14 trimws.R: trimws_ctl(txt2, ctl = c("all", "url", "osc")) 314s [1] "\033[31mhe\033[42;1m llo\033[0;1;31m" 314s [2] "8;;https://x.yz\033\\\tLINK\033[45m hello \033]8;;\033\\\033[31m" 314s 12/14 trimws.R: trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) 314s [1] "31m he\033[42;1m llo \033[49m" Warning in trimws_ctl(" \r\a A \a\t ", ctl = c("all", "c0")) : 314s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 314s Error in trimws_ctl("hello", which = "top") : 314s Argument `which` must partial match one of c("both", "left", "right"). 314s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> trimws_ctl 314s 314s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello \033]8;;\033\\ \033[31m" 314s 12/14 trimws.R: trimws_ctl(" \r\a A \a\t ", ctl = c("all", "c0")) 314s [1] "\a A \a" 314s 12/14 trimws.R: unitizer_sect("Errors / Corner caess", { 314s 12/14 trimws.R: trimws_ctl(character()) 314s character(0) 314s 12/14 trimws.R: trimws_ctl("hello", which = "top") 314s 12/14 trimws.R: trimws_ctl("hello", whitespace = " ") 314s Error in trimws_ctl("hello", whitespace = " ") : 314s Argument `whitespace` may only be set to "[ \t\r\n]". 314s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> trimws_ctl 314s 314s 13/14 url.R: 314s 13/14 url.R: library(fansi) 314s 13/14 url.R: unitizer_sect("wrap", { 314s 13/14 url.R: txt <- "This is a link" 314s 13/14 url.R: base.st <- "%s\033]8;%s;%s\033\\%s\033]8;;\033\\%s" 314s 13/14 url.R: base.a <- "%s\033]8;%s;%s\a%s\033]8;;\a%s" 314s 13/14 url.R: url <- "https://x.yz" 314s 13/14 url.R: u0 <- sprintf(base.st, "", "", url, txt, "") 314s 13/14 url.R: u1 <- sprintf(base.a, "", "", url, txt, "") 314s 13/14 url.R: strtrim_ctl(u0, 5) 314s [1] "\033]8;;https://x.yz\033\\This \033]8;;\033\\" 314s 13/14 url.R: strwrap_ctl(u0, 5) 314s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: strwrap_ctl(u0, 8) 314s [1] "\033]8;;https://x.yz\033\\This is\033]8;;\033\\" 314s [2] "\033]8;;https://x.yz\033\\a link\033]8;;\033\\" 314s 13/14 url.R: strwrap_ctl(u1, 5) 314s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: u2 <- sprintf(base.st, "", "id=one", url, txt, "") 314s 13/14 url.R: u2a <- sprintf(base.st, "", "id=", url, txt, "") 314s 13/14 url.R: u2b <- sprintf(base.st, "", "id", url, txt, "") 314s 13/14 url.R: u3 <- sprintf(base.st, "", "title=ab:id=one", url, txt, "") 314s 13/14 url.R: u4 <- sprintf(base.st, "", "id=one:title=ba", url, txt, "") 314s 13/14 url.R: u6 <- sprintf(base.st, "", "id=one~title=ba", url, txt, "") 314s 13/14 url.R: strwrap_ctl(u2, 5) 314s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: strwrap_ctl(u3, 5) 314s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: strwrap_ctl(u4, 5) 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: strwrap_ctl(u6, 5) 314s [1] "\033]8;id=one~title=ba;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;id=one~title=ba;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;id=one~title=ba;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: u7 <- sprintf(base.st, "AB", "id=one", url, txt, "CD") 314s 13/14 url.R: strwrap_ctl(u7, 8) 314s [1] "AB\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\CD" 314s 13/14 url.R: txt2 <- "This\033[34m is a link\033[49m" 314s 13/14 url.R: u8 <- sprintf(base.st, "A\033[43mB", "", url, txt2, "CD") 314s 13/14 url.R: strwrap_ctl(u8, 7) 314s [1] "A\033[43mB\033]8;;https://x.yz\033\\This\033[0m\033]8;;\033\\" 314s [2] "\033[34;43m\033]8;;https://x.yz\033\\is a\033[0m\033]8;;\033\\" 314s [3] "\033[34;43m\033]8;;https://x.yz\033\\link\033[49m\033]8;;\033\\CD\033[0m" 314s 13/14 url.R: url2 <- ";wow;https://x.yz" 314s 13/14 url.R: u9 <- sprintf(base.st, "", "", url2, txt, "") 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: strwrap_ctl(u9, 5) 314s [1] "\033]8;;wow;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;;wow;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;;wow;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: u10 <- sprintf(base.st, "", "\a", url, txt, "") 314s 13/14 url.R: u11 <- sprintf(base.st, "", "\016", url, txt, "") 314s 13/14 url.R: Encoding(u10) <- "UTF-8" 314s 13/14 url.R: Encoding(u11) <- "UTF-8" 314s 13/14 url.R: u11a <- sprintf(base.st, "", "hello", url, txt, "") 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: strwrap_ctl(u10, 5) 314s [1] ";https://x.yz\033\\This" "is a" 314s [3] "link" 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: strwrap_ctl(u11, 5) 314s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: strwrap_ctl(u11a, 5) 314s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 314s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 314s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: nchar_ctl(c(u10, u11, u11a)) 314s [1] 27 14 14 314s 13/14 url.R: u12 <- sprintf(base.st, "", "", "\b", txt, "") 314s 13/14 url.R: u12a <- sprintf(base.st, "", "", "\200", txt, "") 314s 13/14 url.R: Encoding(u12) <- "UTF-8" 314s 13/14 url.R: Encoding(u12a) <- "UTF-8" 314s 13/14 url.R: strwrap_ctl(u12, 5) 314s [1] "This" "is a" "link" 314s 13/14 url.R: strwrap_ctl(u12a, 5) 314s 13/14 url.R: nchar_ctl(c(u12, u12a)) 314s [1] 14 14 314s 13/14 url.R: nchar_ctl(c(u12, u12a), allowNA = TRUE) 314s [1] 14 14 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 314s Calls: unitize_dir ... eval -> eval -> withVisible -> strwrap_ctl -> strwrap2_ctl 314s 13/14 url.R: u13 <- "a\033]8;;THE END" 314s 13/14 url.R: u13a <- "a\033];;THE END" 314s 13/14 url.R: u14 <- "a\033]8;;THE END\033]8;;NO?" 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: u15 <- "a\033]8;;THE END\033]8;;\033[" 314s 13/14 url.R: strwrap_ctl(u13, 5) 314s [1] "a" 314s 13/14 url.R: strwrap_ctl(u13, 5, terminate = FALSE) 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s [1] "a\033]8;;THE END" 314s 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. 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s 13/14 url.R: strwrap_ctl(u13a, 5) 314s [1] "a\033];;THE END" 314s 13/14 url.R: strwrap_ctl(u14, 5) 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s [1] "a" 314s 13/14 url.R: strwrap_ctl(u15, 5) 314s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 314s 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. 314s [1] "a" 314s 13/14 url.R: nchar_ctl(c(u13, u13a, u14, u15)) 314s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 314s 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. 314s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 314s 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. 314s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 314s 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. 314s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 314s 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. 314s [1] 1 1 1 1 314s 13/14 url.R: u16 <- sprintf(base.st, "", "", "", txt, "") 314s 13/14 url.R: u17 <- sprintf(base.st, "", "", "", "", "") 314s 13/14 url.R: strwrap_ctl(u16, 5) 314s [1] "This" "is a" "link" 314s 13/14 url.R: strwrap_ctl(u17, 5) 314s [1] "" 314s 13/14 url.R: strwrap_ctl(u0, 5, terminate = FALSE) 314s [1] "\033]8;;https://x.yz\033\\This" 314s [2] "\033]8;;https://x.yz\033\\is a" 314s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 314s 13/14 url.R: open <- "\033]8;;ab.c\033\\" 315s 13/14 url.R: u21 <- c("he\033[44mllo \033]8;;de.f\033\\world", "night moon") 315s 13/14 url.R: strwrap_ctl(u21, 5, carry = "\033[33m") 315s [1] "\033[33mhe\033[44mllo\033[0m" 315s [2] "\033[33;44m\033]8;;de.f\033\\world\033[0m\033]8;;\033\\" 315s [3] "\033[33;44m\033]8;;de.f\033\\night\033[0m\033]8;;\033\\" 315s [4] "\033[33;44m\033]8;;de.f\033\\moon\033[0m\033]8;;\033\\" 315s 13/14 url.R: strwrap_ctl(u21, 5, carry = paste0(open, "\033[33m")) 315s [1] "\033[33m\033]8;;ab.c\033\\he\033[44mllo\033[0m\033]8;;\033\\" 315s [2] "\033[33;44m\033]8;;de.f\033\\world\033[0m\033]8;;\033\\" 315s [3] "\033[33;44m\033]8;;de.f\033\\night\033[0m\033]8;;\033\\" 315s [4] "\033[33;44m\033]8;;de.f\033\\moon\033[0m\033]8;;\033\\" 315s 13/14 url.R: unitizer_sect("normalize", { 315s 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 315s 13/14 url.R: normalize_state(u18) 315s [1] "A\033]8;id=a;x.yz\033\\BC\033]8;;\033\\D" 315s 13/14 url.R: u18a <- "A\033]8;id=a;x.yz\033\\B\033]8;;\033\\\033]8;id=a;x.yz\033 315s 13/14 url.R: normalize_state(u18a) 315s [1] "A\033]8;id=a;x.yz\033\\BC\033]8;;\033\\D" 315s 13/14 url.R: u18b <- "A\033]8;id=a;x.yz\033\\\033]8;id=b;x.yz\033\\C\033]8;;\033 315s 13/14 url.R: normalize_state(u18b) 315s [1] "A\033]8;id=b;x.yz\033\\C\033]8;;\033\\D" 315s 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 315s 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 315s 13/14 url.R: normalize_state(u19) 315s [1] "A\033]8;id=a;x.yz\033\\B\033]8;id=b;x.yz\033\\C\033]8;;\033\\D" 315s 13/14 url.R: normalize_state(u20) 315s [1] "A\033]8;id=a;x.yz\033\\B\033]8;id=a;w.yz\033\\C\033]8;;\033\\D" 315s 13/14 url.R: unitizer_sect("substr", { 315s 13/14 url.R: substr_ctl(u0, 6, 9) 315s [1] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 315s 13/14 url.R: substr_ctl(u0, 6, 9, terminate = FALSE) 315s [1] "\033]8;;https://x.yz\033\\is a" 315s 13/14 url.R: substr_ctl("hello world", 3, 8, carry = "\033]8;;a.b\033\\") 315s [1] "\033]8;;a.b\033\\llo wo\033]8;;\033\\" 315s 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. 315s 13/14 url.R: Encoding(np.bytes) <- "UTF-8" 315s 13/14 url.R: substr_ctl(np.bytes[1:3], 2, 2) 315s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 315s 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. 315s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 315s 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. 315s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 315s 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. 315s [1] "\033]8;id=c;x.y\033\\B\033]8;;\033\\" 315s [2] "\033]8;;x.y\033\\B\033]8;;\033\\" 315s [3] "B" 315s 13/14 url.R: substr_ctl(np.bytes[4], 2, 2) 315s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 315s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 315s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 315s 13/14 url.R: unitizer_sect("tohtml", { 315s 13/14 url.R: to_html(u0) 315s [1] "This is a link" 315s 13/14 url.R: to_html("A\033[44mB\033]8;;x.y\033\\C\033[33m\033]8;;\033\\D") 315s [1] "ABCD" 315s 13/14 url.R: to_html("A\033[44mB\033]8;;x.y\033\\C\033[33m\033]8;;w.z\033\\D") 315s [1] "ABCD" 315s 13/14 url.R: u23 <- c("A \033[44mB \033]8;;x.y\033\\C \033[33m\033]8;;w.z\033\\D 315s 13/14 url.R: to_html(u23) 315s [1] "A B C D" 315s [2] "E F G" 315s [3] "H I" 315s 13/14 url.R: to_html(strwrap_ctl(u23, 4)) 315s [1] "A B" 315s [2] "C D" 315s [3] "E F" 315s [4] "G" 315s [5] "H I" 315s 13/14 url.R: unitizer_sect("osc", { 315s 13/14 url.R: nchar_ctl("\033]hello \aworld") 315s [1] 5 315s 13/14 url.R: nchar_ctl("\033]hello \033\\world") 315s [1] 5 315s 13/14 url.R: nchar_ctl("\033]hello \033\\world", ctl = c("all", "osc")) 315s [1] 11 315s 13/14 url.R: x <- "\033]hello\200\033\\world" 315s 13/14 url.R: Encoding(x) <- "UTF-8" 315s 13/14 url.R: nchar_ctl(x) 315s [1] 5 315s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 315s 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. 315s 13/14 url.R: nchar_ctl("\033]hello world") 315s [1] 0 315s 315s 14/14 wrap.R: 315s 14/14 wrap.R: library(unitizer) 315s 14/14 wrap.R: library(fansi) 315s 14/14 wrap.R: unitizer_sect("Basic wrap", { 315s 14/14 wrap.R: hello.0 <- "hello world this is a lovely day" 315s 14/14 wrap.R: strwrap_ctl(hello.0, width = 10) 315s [1] "hello" "world" "this is a" "lovely" "day" 315s 14/14 wrap.R: hello.1 <- "hello world this is. a lovely day." 315s 14/14 wrap.R: strwrap_ctl(hello.1, width = 10) 315s [1] "hello" "world" "this is." "a lovely" "day." 315s 14/14 wrap.R: hello.2 <- "hello\rworld\rthis is. a lovely day." 315s 14/14 wrap.R: strwrap_ctl(hello.2, width = 10) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s [1] "hello\rworld\rthis" "is. a" "lovely" 315s [4] "day." 315s 14/14 wrap.R: hello.3 <- "hello\rworld\nthis is. a lovely\n day." 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s 14/14 wrap.R: strwrap_ctl(hello.3, width = 10) 315s [1] "hello\rworld" "this is." "a lovely" "day." 315s 14/14 wrap.R: hello.4 <- " hello world this is a lovely day." 315s 14/14 wrap.R: strwrap_ctl(hello.4, width = 10) 315s [1] "hello" "world" "this is a" "lovely" "day." 315s 14/14 wrap.R: hello.5 <- "hello.\n\n\nworld" 315s 14/14 wrap.R: strwrap_ctl(hello.5, width = 10) 315s [1] "hello." "" "world" 315s 14/14 wrap.R: hello.5a <- "hello.\n \n \nworld" 315s 14/14 wrap.R: strwrap_ctl(hello.5a, width = 10) 315s [1] "hello." "" "world" 315s 14/14 wrap.R: hello.6a <- "hello.\" there" 315s 14/14 wrap.R: strwrap_ctl(hello.6a, width = 40) 315s [1] "hello.\" there" 315s 14/14 wrap.R: hello.6b <- "hello.' there" 315s 14/14 wrap.R: strwrap_ctl(hello.6b, width = 40) 315s [1] "hello.' there" 315s 14/14 wrap.R: hello.6c <- "hello.) there" 315s 14/14 wrap.R: strwrap_ctl(hello.6c, width = 40) 315s [1] "hello.) there" 315s 14/14 wrap.R: unitizer_sect("Basic Ansi", { 315s 14/14 wrap.R: hello2.0 <- paste0("hello ", red, "world ", grn.bg, " this is a l 315s 14/14 wrap.R: strwrap_ctl(hello2.0, 10) 315s [1] "hello" "\033[31mworld\033[0m" 315s [3] "\033[31;42mthis is a\033[0m" "\033[31;42mlovely\033[0mday." 315s 14/14 wrap.R: strwrap_ctl(strip_ctl(hello2.0, "sgr"), 10) 315s [1] "hello" "world" "this is a" "lovelyday." 315s 14/14 wrap.R: hello2.1 <- paste0("hello \033[41mworld\033[m how are you today") 315s 14/14 wrap.R: hello2.2 <- paste0("hello \033[41mworld\033[0m how are you today") 315s 14/14 wrap.R: strwrap_ctl(hello2.1, 15) 315s [1] "hello \033[41mworld\033[0m" "how are you" 315s [3] "today" 315s 14/14 wrap.R: hello.bold.faint <- paste0("hello \033[1mbolded once upon a time\0 315s 14/14 wrap.R: strwrap_ctl(hello.bold.faint, 10) 315s [1] "hello" "\033[1mbolded\033[0m" 315s [3] "\033[1monce upon\033[0m" "\033[1ma time\033[0m" 315s [5] "normal" "\033[2mfainting\033[0m" 315s [7] "\033[2min\033[0m" "\033[2mfaintness\033[0m" 315s [9] "\033[2moh no\033[0m" "normal" 315s 14/14 wrap.R: hello.blinky <- paste0("hello \033[5mbliking slowly oh my\033[25m 315s 14/14 wrap.R: strwrap_ctl(hello.blinky, 10) 315s [1] "hello" "\033[5mbliking\033[0m" 315s [3] "\033[5mslowly oh\033[0m" "\033[5mmy\033[25m normal" 315s [5] "\033[6mblinking\033[0m" "\033[6mquickly\033[0m" 315s [7] "\033[6moh my\033[0m" "normal" 315s 14/14 wrap.R: strwrap_ctl(hello.blinky, 10, terminate = FALSE) 315s [1] "hello" "\033[5mbliking" "slowly oh" 315s [4] "my\033[25m normal" "\033[6mblinking" "quickly" 315s [7] "oh my" "\033[0mnormal" 315s 14/14 wrap.R: hello2.3 <- c(hello2.1, hello2.2) 315s 14/14 wrap.R: strwrap_ctl(hello2.3, 10, simplify = FALSE) 315s [[1]] 315s [1] "hello" "\033[41mworld\033[m how" 315s [3] "are you" "today" 315s 315s [[2]] 315s [1] "hello" "\033[41mworld\033[0m how" 315s [3] "are you" "today" 315s 315s 14/14 wrap.R: strwrap2_ctl(hello2.3, 10, simplify = FALSE) 315s [[1]] 315s [1] "hello" "\033[41mworld\033[m how" 315s [3] "are you" "today" 315s 315s [[2]] 315s [1] "hello" "\033[41mworld\033[0m how" 315s [3] "are you" "today" 315s 315s 14/14 wrap.R: strwrap_ctl("aliquip \033[31mex ea commodo consequat\033[0m\n", 315s [1] "aliquip \033[31mex ea commodo\033[0m" 315s [2] "\033[31mconsequat\033[0m" 315s 14/14 wrap.R: unitizer_sect("Long Wrap", { 315s 14/14 wrap.R: wrap.csi <- strwrap_ctl(lorem.r.thanks, 40) 315s 14/14 wrap.R: nchar(strip_ctl(wrap.csi, "sgr")) 315s [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 315s [26] 5 0 39 36 34 33 36 39 27 0 31 29 37 39 35 34 37 34 31 36 25 37 315s 14/14 wrap.R: nchar(wrap.csi) 315s [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 315s [26] 5 0 75 54 47 49 64 67 45 0 91 78 87 88 74 73 86 54 60 75 25 67 315s 14/14 wrap.R: unitizer_sect("Other Escapes", { 315s 14/14 wrap.R: strwrap_ctl("hello \033kworld yohoo", 12) 315s [1] "hello \033kworld" "yohoo" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_ctl("hello \033\nworld yohoo", 12) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s [1] "hello \033\nworld" "yohoo" 315s 14/14 wrap.R: c0 <- "hello\037\037\037\037\037\037 world yohoo" 315s 14/14 wrap.R: Encoding(c0) <- "UTF-8" 315s 14/14 wrap.R: strwrap_ctl(c0, 12) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s [1] "hello\037\037\037\037\037\037 world" "yohoo" 315s 14/14 wrap.R: strwrap_ctl("hello \033[999mworld", 6) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s [1] "hello" "world" 315s 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. 315s 14/14 wrap.R: strwrap_ctl("hello \033[31#31mworld", 6) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s [1] "hello" "world" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_ctl("hello \033[999nworld", 6) 315s [1] "hello" "\033[999nworld" 315s 14/14 wrap.R: strwrap_ctl("hello \033[999mworld", 6, warn = FALSE) 315s [1] "hello" "world" 315s 14/14 wrap.R: strwrap_ctl("hello \033[31#31mworld", 6, warn = FALSE) 315s [1] "hello" "world" 315s 14/14 wrap.R: strwrap_ctl("hello \033[999nworld", 6, warn = FALSE) 315s [1] "hello" "\033[999nworld" 315s 14/14 wrap.R: unitizer_sect("prefix / initial simple", { 315s 14/14 wrap.R: lorem.sentence <- unlist(strsplit_ctl(lorem, "[.]\\K ", perl = TRU 315s 14/14 wrap.R: lorem.sentence <- gsub(",", ",\n", lorem.sentence, fixed = TRUE) 315s 14/14 wrap.R: lorem.para <- c(paste0(lorem.sentence[1:2], collapse = "\n\n"), 315s 14/14 wrap.R: strwrap_ctl(lorem.para, indent = 2) 315s [1] " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" 315s [2] "eiusmod tempor incididunt ut labore et dolore magna aliqua." 315s [3] "" 315s [4] " Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris" 315s [5] "nisi ut aliquip ex ea commodo consequat." 315s [6] " Duis aute irure dolor in reprehenderit in voluptate velit esse cillum" 315s [7] "dolore eu fugiat nulla pariatur." 315s [8] "" 315s [9] " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 315s [10] "officia deserunt mollit anim id est laborum." 315s 14/14 wrap.R: strwrap_ctl(lorem.para, exdent = 2) 315s [1] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod" 315s [2] " tempor incididunt ut labore et dolore magna aliqua." 315s [3] "" 315s [4] "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi" 315s [5] " ut aliquip ex ea commodo consequat." 315s [6] "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum" 315s [7] " dolore eu fugiat nulla pariatur." 315s [8] "" 315s [9] "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 315s [10] " officia deserunt mollit anim id est laborum." 315s 14/14 wrap.R: strwrap_ctl(lorem.para, indent = 4, exdent = 2) 315s [1] " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" 315s [2] " eiusmod tempor incididunt ut labore et dolore magna aliqua." 315s [3] "" 315s [4] " Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris" 315s [5] " nisi ut aliquip ex ea commodo consequat." 315s [6] " Duis aute irure dolor in reprehenderit in voluptate velit esse" 315s [7] " cillum dolore eu fugiat nulla pariatur." 315s [8] "" 315s [9] " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 315s [10] " officia deserunt mollit anim id est laborum." 315s 14/14 wrap.R: unitizer_sect("prefix / initial with ESC", { 315s 14/14 wrap.R: pre <- "\033[32m+ \033[0m" 315s 14/14 wrap.R: ini <- "\033[33m> \033[0m" 315s 14/14 wrap.R: hello.8a <- "hello world yohoo" 315s 14/14 wrap.R: wrap.csi.2 <- strwrap_ctl(hello.8a, 14, prefix = pre, initial = in 315s 14/14 wrap.R: wrap.csi.2 315s [1] "\033[33m> \033[0mhello world" "\033[32m+ \033[0myohoo" 315s 14/14 wrap.R: hello.8b <- c(hello.8a, "oh my this has 2 elements") 315s 14/14 wrap.R: wrap.csi.3 <- strwrap_ctl(hello.8b, 14, prefix = pre, initial = in 315s 14/14 wrap.R: wrap.csi.3 315s [1] "\033[33m> \033[0mhello world" "\033[32m+ \033[0myohoo" 315s [3] "\033[32m+ \033[0moh my this" "\033[32m+ \033[0mhas 2" 315s [5] "\033[32m+ \033[0melements" 315s 14/14 wrap.R: unitizer_sect("wrap2", { 315s 14/14 wrap.R: hello.9a <- "hello\t\033[41mred\033[49m\tworld" 315s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12) 315s [1] "hello \033[41mred\033[0m" "world" 315s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12, tabs.as.spaces = TRUE) 315s [1] "hello \033[41mred\033[49m" " world" 315s 14/14 wrap.R: strwrap2_ctl(hello.9a, 13, tabs.as.spaces = TRUE) 315s [1] "hello \033[41mred\033[49m " " world" 315s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12, tabs.as.spaces = TRUE, tab.stops = c(6, 315s [1] "hello \033[41mred\033[49m " " " 315s [3] "world" 315s 14/14 wrap.R: r.thanks <- lorem.r.thanks.2 315s 14/14 wrap.R: bg <- ceiling(seq_along(r.thanks)/length(r.thanks) * 215) + 16 315s 14/14 wrap.R: fg <- ifelse((((bg - 16)%/%18)%%2), 30, 37) 315s 14/14 wrap.R: tpl <- "\033[%d;48;5;%dm%s\033[49m" 315s 14/14 wrap.R: nz <- nzchar(r.thanks) 315s 14/14 wrap.R: r.thanks[nz] <- sprintf(tpl, fg[nz], bg[nz], r.thanks[nz]) 315s 14/14 wrap.R: r.col <- paste0(r.thanks, collapse = "\n") 315s 14/14 wrap.R: r.wrap <- strwrap2_ctl(r.col, 35, pad.end = " ", wrap.always = TRU 315s 14/14 wrap.R: (r.wrap) 315s [1] "\033[37;48;5;23mMany more, too numerous to mention\033[0m" 315s [2] "\033[37;48;5;23mhere, have contributed by sending \033[0m" 315s [3] "\033[37;48;5;23mbug\033[49m \033[37;48;5;30mreports and suggesting various\033[0m" 315s [4] "\033[37;48;5;30mimprovements.\033[49m \033[0m" 315s [5] "\033[37m \033[0m" 315s [6] "\033[30;48;5;43mSimon Davies whilst at the \033[0m" 315s [7] "\033[30;48;5;43mUniversity of Auckland wrote the \033[0m" 315s [8] "\033[30;48;5;43moriginal\033[49m \033[30;48;5;50mversion of glm().\033[49m \033[0m" 315s [9] "\033[30m \033[0m" 315s [10] "\033[37;48;5;64mJulian Harris and Wing Kwong \033[0m" 315s [11] "\033[37;48;5;64m(Tiki) Wan whilst at the \033[0m" 315s [12] "\033[37;48;5;64mUniversity of\033[49m \033[30;48;5;70mAuckland assisted \033[0m" 315s [13] "\033[30;48;5;70mRoss Ihaka with the original \033[0m" 315s [14] "\033[30;48;5;70mMacintosh port.\033[49m \033[0m" 315s [15] "\033[30m \033[0m" 315s [16] "\033[30;48;5;84mR was inspired by the S \033[0m" 315s [17] "\033[30;48;5;84menvironment which has been \033[0m" 315s [18] "\033[30;48;5;84mprincipally\033[49m \033[37;48;5;90mdeveloped by John \033[0m" 315s [19] "\033[37;48;5;90mChambers, with substantial input \033[0m" 315s [20] "\033[37;48;5;90mfrom Douglas Bates,\033[49m \033[37;48;5;97mRick Becker, \033[0m" 315s [21] "\033[37;48;5;97mBill Cleveland, Trevor Hastie, \033[0m" 315s [22] "\033[37;48;5;97mDaryl Pregibon and\033[49m \033[37;48;5;104mAllan Wilks.\033[49m \033[0m" 315s [23] "\033[37m \033[0m" 315s [24] "\033[30;48;5;117mA special debt is owed to John \033[0m" 315s [25] "\033[30;48;5;117mChambers who has graciously \033[0m" 315s [26] "\033[30;48;5;117mcontributed\033[49m \033[37;48;5;124madvice and \033[0m" 315s [27] "\033[37;48;5;124mencouragement in the early days of\033[0m" 315s [28] "\033[37;48;5;124mR and later became a\033[49m \033[37;48;5;131mmember of the\033[0m" 315s [29] "\033[37;48;5;131mcore team.\033[49m \033[0m" 315s [30] "\033[37m \033[0m" 315s [31] "\033[30;48;5;158mThe R Foundation may decide to \033[0m" 315s [32] "\033[30;48;5;158mgive out \033[0m" 315s [33] "\033[30;48;5;158m@R-project.org\033[49m \033[0m" 315s [34] "\033[37;48;5;164memail addresses to contributors to\033[0m" 315s [35] "\033[37;48;5;164mthe R Project (even without making\033[0m" 315s [36] "\033[37;48;5;164mthem\033[49m \033[37;48;5;171mmembers of the R Foundation) \033[0m" 315s [37] "\033[37;48;5;171mwhen in the view of the R \033[0m" 315s [38] "\033[37;48;5;171mFoundation this\033[49m \033[30;48;5;178mwould help advance\033[0m" 315s [39] "\033[30;48;5;178mthe R project.\033[49m \033[0m" 315s [40] "\033[30m \033[0m" 315s [41] "\033[30;48;5;191mThe R Core Group, Roger Bivand, \033[0m" 315s [42] "\033[30;48;5;191mJennifer Bryan, Di Cook, Dirk \033[0m" 315s [43] "\033[30;48;5;191mEddelbuettel,\033[49m \033[37;48;5;198mJohn Fox, Bettina \033[0m" 315s [44] "\033[37;48;5;198mGrn, Frank Harrell, Torsten \033[0m" 315s [45] "\033[37;48;5;198mHothorn, Stefano Iacus,\033[49m \033[37;48;5;205mJulie \033[0m" 315s [46] "\033[37;48;5;205mJosse, Balasubramanian Narasimhan,\033[0m" 315s [47] "\033[37;48;5;205mMarc Schwartz, Heather Turner,\033[49m \033[0m" 315s [48] "\033[37;48;5;211mBill Venables, Hadley Wickham and \033[0m" 315s [49] "\033[37;48;5;211mAchim Zeileis are the ordinary \033[0m" 315s [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" 315s [51] "\033[30;48;5;225maddition, David Meyer and Simon \033[0m" 315s [52] "\033[30;48;5;225mWood are also e-addressable by\033[49m \033[0m" 315s [53] "\033[30;48;5;231m.@R-project.o\033[0m" 315s [54] "\033[30;48;5;231mrg.\033[49m \033[0m" 315s 14/14 wrap.R: hello.9b <- "\033[41mhello\n\nworld." 315s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, pad.end = " ") 315s [1] "\033[41mhello \033[0m" "\033[41m \033[0m" "\033[41mworld. \033[0m" 315s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, pad.end = 0) 315s [1] "\033[41mhello00\033[0m" "\033[41m0000000\033[0m" "\033[41mworld.0\033[0m" 315s 14/14 wrap.R: hello.9b <- " \033[41mhello world." 315s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, strip.spaces = FALSE) 315s [1] " \033[41mhello\033[0m" "\033[41m world.\033[0m" 315s 14/14 wrap.R: hello.9c <- "\033[41m hello world." 315s 14/14 wrap.R: ws.0 <- "hello worldza" 315s 14/14 wrap.R: ws.1 <- "hello \t worldza" 315s 14/14 wrap.R: ws.2 <- "hello \n worldza" 315s 14/14 wrap.R: strwrap2_sgr(ws.0, 7, strip.spaces = FALSE) 315s [1] "hello " " " "worldza" 315s 14/14 wrap.R: strwrap2_sgr(ws.0, 7, strip.spaces = FALSE, wrap.always = TRUE) 315s [1] "hello " " " "worldz" "a" 315s 14/14 wrap.R: strwrap2_sgr(ws.0, 6, strip.spaces = FALSE) 315s [1] "hello" " " "worldza" 315s 14/14 wrap.R: strwrap2_sgr(ws.0, 6, strip.spaces = FALSE, wrap.always = TRUE) 315s [1] "hello" " " "world" "za" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s 14/14 wrap.R: strwrap2_sgr(ws.1, 7, strip.spaces = FALSE) 315s [1] "hello " "\t " "worldza" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s 14/14 wrap.R: strwrap2_sgr(ws.1, 7, strip.spaces = FALSE, wrap.always = TRUE) 315s [1] "hello " "\t " "worldz" "a" 315s 14/14 wrap.R: strwrap2_sgr(ws.1, 6, strip.spaces = FALSE) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s [1] "hello" " \t " "worldza" 315s 14/14 wrap.R: strwrap2_sgr(ws.1, 6, strip.spaces = FALSE, wrap.always = TRUE) 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s [1] "hello" " \t " "world" "za" 315s 14/14 wrap.R: strwrap2_sgr(" hello world ", 7, strip.spaces = FALSE) 315s [1] " hello" " world" " " 315s 14/14 wrap.R: strwrap2_sgr("\thello\tworld\t", 7, strip.spaces = FALSE) 315s [1] "\thello" "\tworld" "\t" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 315s 14/14 wrap.R: strwrap2_sgr("\nhello\nworld\n", 7, strip.spaces = FALSE) 315s [1] "" "hello" "world" "" 315s 14/14 wrap.R: unitizer_sect("_sgr", { 315s 14/14 wrap.R: hello.9e <- c("hello\t\033[91mworld\033[m\t\033[38;2;31;42;4mworld 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, term.cap = "256") 315s [1] "hello \033[91mworld\033[0m" 315s [2] "\033[38;2;31;42;4mworld\033[0m" 315s [3] "\033[38;2;31;42;4mboohaythere\033[0m" 315s [4] "asdfasdfasdfasdf" 315s 14/14 wrap.R: hello.9f <- "hello \033[91mworld boohaythereyowza" 315s 14/14 wrap.R: strwrap2_sgr(hello.9f, 12, prefix = "++", initial = ">>", wrap.alw 315s [1] ">>hello ~~~" "\033[91m++world ~~~\033[0m" 315s [3] "\033[91m++boohaythe\033[0m" "\033[91m++reyowza~~\033[0m" 315s 14/14 wrap.R: strwrap2_sgr(hello.9e, 12, tabs.as.spaces = TRUE, tab.stops = c(6, 315s [[1]] 315s [1] ">> hello ~" 315s [2] "\033[91m++ world\033[m " 315s [3] "++ \033[38;2;31;42;4mworld\033[0m" 315s [4] "\033[38;2;31;42;4m++ ~~~~~~~\033[0m" 315s [5] "\033[38;2;31;42;4m++ boohayth\033[0m" 315s [6] "\033[38;2;31;42;4m++ ere~~~~~\033[0m" 315s 315s [[2]] 315s [1] "++ asdfasd" "++ fasdfasd" "++ f~~~~~~~" 315s 315s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, warn = FALSE, indent = 2, exdent = 1, 315s [[1]] 315s [1] ">> hello" 315s [2] "\033[91m++ world\033[0m" 315s [3] "\033[38;2;31;42;4m++ world\033[0m" 315s [4] "\033[38;2;31;42;4m++ boohaythere\033[0m" 315s 315s [[2]] 315s [1] "++ asdfasdfasdfasdf" 315s 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, indent = 2, exdent = 1, prefix = "++", 315s [[1]] 315s [1] ">> hello" 315s [2] "\033[91m++ world\033[0m" 315s [3] "\033[38;2;31;42;4m++ world\033[0m" 315s [4] "\033[38;2;31;42;4m++ boohaythere\033[0m" 315s 315s [[2]] 315s [1] "++ asdfasdfasdfasdf" 315s 315s 14/14 wrap.R: unitizer_sect("long words", { 315s 14/14 wrap.R: hello.long <- "\033[31mhelloworld\033[mlongword" 315s 14/14 wrap.R: strwrap_ctl(hello.long, 8) 315s [1] "\033[31mhelloworld\033[mlongword" 315s 14/14 wrap.R: strwrap2_ctl(hello.long, 8, wrap.always = TRUE) 315s [1] "\033[31mhellowo\033[0m" "\033[31mrld\033[mlong" "word" 315s 14/14 wrap.R: unitizer_sect("rare escapes", { 315s 14/14 wrap.R: hello.border <- c("hello \033[51mworld woohoo\033[54m woohoo", 315s 14/14 wrap.R: strwrap_ctl(hello.border, 12) 315s [1] "hello \033[51mworld\033[0m" "\033[51mwoohoo\033[0m" 315s [3] "woohoo" "hello \033[52mworld\033[0m" 315s [5] "\033[52mwoohoo\033[0m" "woohoo" 315s [7] "hello \033[53mworld\033[0m" "\033[53mwoohoo\033[0m" 315s [9] "woohoo" 315s 14/14 wrap.R: strwrap_ctl(hello.border, 12, terminate = FALSE) 315s [1] "hello \033[51mworld" "woohoo" "\033[0mwoohoo" 315s [4] "hello \033[52mworld" "woohoo" "\033[0mwoohoo" 315s [7] "hello \033[53mworld" "woohoo" "\033[0mwoohoo" 315s 14/14 wrap.R: hello.ideogram <- c("hello \033[60mworld woohoo\033[65m woohoo", 315s 14/14 wrap.R: strwrap_ctl(hello.ideogram, 12, terminate = FALSE) 315s [1] "hello \033[60mworld" "woohoo" "\033[0mwoohoo" 315s [4] "hello \033[61mworld" "woohoo" "\033[0mwoohoo" 315s [7] "hello \033[62mworld" "woohoo" "\033[0mwoohoo" 315s [10] "hello \033[63mworld" "woohoo" "\033[0mwoohoo" 315s [13] "hello \033[64mworld" "woohoo" "\033[0mwoohoo" 315s 14/14 wrap.R: hello.font <- c("hello \033[10mworld woohoo\033[10m woohoo", 315s 14/14 wrap.R: strwrap_ctl(hello.font, 12, terminate = FALSE) 315s [1] "hello \033[10mworld" "woohoo" "woohoo" 315s [4] "hello \033[11mworld" "woohoo" "\033[0mwoohoo" 315s [7] "hello \033[12mworld" "woohoo" "\033[0mwoohoo" 315s [10] "hello \033[13mworld" "woohoo" "\033[0mwoohoo" 315s [13] "hello \033[14mworld" "woohoo" "\033[0mwoohoo" 315s [16] "hello \033[15mworld" "woohoo" "\033[0mwoohoo" 315s [19] "hello \033[16mworld" "woohoo" "\033[0mwoohoo" 315s [22] "hello \033[17mworld" "woohoo" "\033[0mwoohoo" 315s [25] "hello \033[18mworld" "woohoo" "\033[0mwoohoo" 315s [28] "hello \033[19mworld" "woohoo" "\033[0mwoohoo" 315s 14/14 wrap.R: unitizer_sect("term cap and bright", { 315s 14/14 wrap.R: getOption("fansi.term.cap", dflt_term_cap()) 315s [1] "bright" "256" 315s 14/14 wrap.R: hello.bright <- "\033[42mhello \033[103mworld wowza\033[49m" 315s 14/14 wrap.R: strwrap_ctl(hello.bright, 13) 315s [1] "\033[42mhello \033[103mworld\033[0m" "\033[103mwowza\033[0m" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_ctl(hello.bright, 13, term.cap = character()) 315s [1] "\033[42mhello \033[103mworld\033[0m" "\033[103mwowza\033[0m" 315s 14/14 wrap.R: hello.255 <- "\033[42mhello \033[48;5;47mworld wowza\033[49m" 315s 14/14 wrap.R: strwrap_ctl(hello.255, 13) 315s [1] "\033[42mhello \033[48;5;47mworld\033[0m" 315s [2] "\033[48;5;47mwowza\033[0m" 315s 14/14 wrap.R: strwrap_ctl(hello.255, 13, term.cap = character()) 315s [1] "\033[42mhello \033[48;5;47mworld\033[0m" 315s [2] "\033[48;5;47mwowza\033[0m" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: hello.tru <- "\033[42mhello \033[48;2;7;41;4mworld wowza\033[m" 315s 14/14 wrap.R: strwrap_ctl(hello.tru, 13, term.cap = "truecolor") 315s [1] "\033[42mhello \033[48;2;7;41;4mworld\033[0m" 315s [2] "\033[48;2;7;41;4mwowza\033[0m" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_ctl(hello.tru, 13) 315s [1] "\033[42mhello \033[48;2;7;41;4mworld\033[0m" 315s [2] "\033[48;2;7;41;4mwowza\033[0m" 315s 14/14 wrap.R: unitizer_sect("corner cases", { 315s 14/14 wrap.R: strwrap_ctl("a", -1) 315s [1] "a" 315s 14/14 wrap.R: strwrap2_ctl("a", -1) 315s [1] "a" 315s 14/14 wrap.R: strwrap2_ctl("a", Inf) 315s [1] "a" 315s Error in strwrap2_ctl("a", NA_real_) : 315s Argument `width` must be a positive scalar numeric representable as integer. 315s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 315s 14/14 wrap.R: strwrap2_ctl("a", NA_real_) 315s Error in strwrap2_ctl("a", NA_integer_) : 315s Argument `width` must be a positive scalar numeric representable as integer. 315s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 315s 14/14 wrap.R: strwrap2_ctl("a", NA_integer_) 315s 14/14 wrap.R: strwrap2_ctl("a", -1, wrap.always = TRUE) 315s Error in strwrap2_ctl("a", -1, wrap.always = TRUE) : 315s Width must be at least 2 in `wrap.always` mode. 315s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 315s Error in strwrap2_ctl("a", 0, wrap.always = TRUE) : 315s Width must be at least 2 in `wrap.always` mode. 315s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 315s 14/14 wrap.R: strwrap2_ctl("a", 0, wrap.always = TRUE) 315s 14/14 wrap.R: strwrap2_ctl("a", 1, wrap.always = TRUE) 315s Error in strwrap2_ctl("a", 1, wrap.always = TRUE) : 315s Width must be at least 2 in `wrap.always` mode. 315s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 315s 14/14 wrap.R: tryCatch(strwrap_ctl("hello world", 6, prefix = "\033p"), warning 315s [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." 315s 14/14 wrap.R: suppressWarnings(strwrap_ctl("hello world", 6, prefix = "\033p")) 315s [1] "\033phello" "\033pworld" 315s 14/14 wrap.R: tryCatch(strwrap2_ctl("hello world", 8, pad.end = "\t"), error = c 315s [1] "Argument `pad.end` must be an empty string or a single printable ASCII character." 315s 14/14 wrap.R: tryCatch(strwrap2_ctl("hello world", 8, pad.end = " "), error = c 315s [1] "Argument `pad.end` must be at most one byte long." 315s 14/14 wrap.R: strwrap2_ctl("goodbye moon", 8, indent = 5, prefix = "> hello >") 315s [1] "> hello > goodbye" "> hello >moon" 315s 14/14 wrap.R: strwrap2_ctl("goodbye moon", 16, indent = 5, prefix = "> hello >", 315s [1] "> hello > g" "> hello >oodbye" "> hello >moon" 315s 14/14 wrap.R: tryCatch(strwrap2_ctl("goodbye moon", 15, indent = 5, prefix = "> 315s [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`." 315s 14/14 wrap.R: strwrap_ctl("hello world\033[31m\033A", 12) 315s [1] "hello world\033[31m\033A\033[0m" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_ctl("hello world\033A\033[31m", 12) 315s [1] "hello world\033A" 315s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 315s 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. 315s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 5) 315s [1] "hello" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 6) 315s [1] "hello" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 5, terminate = FALSE) 315s [1] "hello" "\033[44mworld" 315s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 6, terminate = FALSE) 315s [1] "hello" "\033[44mworld" 315s 14/14 wrap.R: strwrap_ctl("hello\n\033[44m\nworld", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \n\033[44m\n world", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \n \033[44m\n world", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44mworld", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44m world", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44m\nworld", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap_ctl("hello \033[44m\n\n world", 5) 315s [1] "hello" "" "\033[44mworld\033[0m" 315s 14/14 wrap.R: strwrap("hello \n\n world", 5) 315s [1] "hello" "" "world" 315s 14/14 wrap.R: strwrap_ctl("\033[33mAB\033[44m CD", 3) 315s [1] "\033[33mAB\033[0m" "\033[33;44mCD\033[0m" 315s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE) 315s [1] "AB" "" "\033[44mCD\033[0m" 315s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE, pad.end = 315s [1] "AB" "\033[44m##\033[0m" "\033[44mCD\033[0m" 315s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE, terminate 315s [1] "AB" "\033[44m" "CD" 315s 14/14 wrap.R: strwrap2_ctl("AB\033[44m CD", 4, pad.end = "#") 315s [1] "AB\033[44m#\033[0m" "\033[44mCD#\033[0m" 316s 14/14 wrap.R: strwrap2_ctl("AB\033[44m CD", 3, pad.end = "#") 316s [1] "AB" "\033[44mCD\033[0m" 316s 14/14 wrap.R: strwrap2_sgr("\033[43mAB \033[34mCD", strip.spaces = FALSE, 4) 316s [1] "\033[43mAB \033[0m" "\033[34;43mCD\033[0m" 316s 14/14 wrap.R: strwrap_ctl("\033[31m\033[43m", 5) 316s [1] "" 316s 14/14 wrap.R: strwrap2_ctl("a\033[31mb", 2, wrap.always = TRUE) 316s [1] "a" "\033[31mb\033[0m" 316s 14/14 wrap.R: strwrap_ctl("A \033[31mB\033[39m", 3) 316s [1] "A" "\033[31mB\033[0m" 316s 14/14 wrap.R: strwrap2_ctl("\033[35phello \033[35p world", 5, strip.spaces = FAL 316s [1] "\033[35phello" " \033[35p " "world" 316s Warning in strwrap2_ctl("\033[35phello \033[35p world", 5, strip.spaces = FALSE) : 316s 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. 316s 14/14 wrap.R: identical(strwrap(c(NA, "a b"), 4, prefix = ">"), strwrap_ctl(c(NA 316s [1] TRUE 316s 14/14 wrap.R: identical(strwrap("a b", 4, prefix = NA), strwrap_ctl("a b", 316s [1] TRUE 316s 14/14 wrap.R: unitizer_sect("bad inputs", { 316s 14/14 wrap.R: strwrap_ctl(1:3) 316s [1] "1" "2" "3" 316s 14/14 wrap.R: strwrap_ctl(hello2.0, width = "35") 316s 14/14 wrap.R: strwrap_ctl(hello2.0, width = NA_integer_) 316s 14/14 wrap.R: strwrap_ctl(hello2.0, indent = NA_integer_) 316s 14/14 wrap.R: strwrap_ctl(hello2.0, indent = -3) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `width` must be numeric. 316s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `width` must be a positive scalar numeric representable as integer. 316s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `indent` must be a positive scalar numeric representable as integer. 316s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `indent` must be a positive scalar numeric representable as integer. 316s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 316s 14/14 wrap.R: strwrap_ctl(hello2.0, exdent = -3) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `exdent` must be a positive scalar numeric representable as integer. 316s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 316s 14/14 wrap.R: strwrap_ctl(hello2.0, exdent = 1:3) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `exdent` must be a positive scalar numeric representable as integer. 316s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 316s 14/14 wrap.R: strwrap_ctl(hello2.0, prefix = 1:3) 316s 14/14 wrap.R: strwrap_ctl(hello2.0, initial = 1:3) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `prefix` must be a scalar character. 316s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `initial` must be a scalar character. 316s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap_ctl(hello2.0, warn = NULL) 316s 14/14 wrap.R: strwrap_ctl(hello2.0, term.cap = 1:3) 316s 14/14 wrap.R: strwrap_ctl(hello2.0, term.cap = "bananas") 316s 14/14 wrap.R: strwrap_ctl(hello2.0, ctl = 1:3) 316s 14/14 wrap.R: strwrap_ctl(hello2.0, ctl = "bananas") 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, wrap.always = 1:3) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `warn` must be TRUE or FALSE. 316s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `term.cap` must be character. 316s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 316s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `ctl` must be character. 316s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 316s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s Error in strwrap2_ctl(hello2.0, wrap.always = 1:3) : 316s Argument `wrap.always` must be TRUE or FALSE. 316s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 316s Error in strwrap2_ctl(hello2.0, wrap.always = NA) : 316s Argument `wrap.always` must be TRUE or FALSE. 316s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, wrap.always = NA) 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = NA) 316s Error in strwrap2_ctl(hello2.0, tabs.as.spaces = NA) : 316s Argument `tabs.as.spaces` must be TRUE or FALSE. 316s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = 1) 316s [1] "hello \033[31mworld \033[42m this is a lovely\033[0mday." 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, tab.stops = -(1:3)) 316s Error in strwrap2_ctl(hello2.0, tab.stops = -(1:3)) : 316s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 316s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, tab.stops = 0) 316s Error in strwrap2_ctl(hello2.0, tab.stops = 0) : 316s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 316s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, strip.spaces = 1:3) 316s Error in strwrap2_ctl(hello2.0, strip.spaces = 1:3) : 316s Argument `strip.spaces` must be TRUE or FALSE. 316s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = TRUE, strip.spaces = TRUE) 316s Error in strwrap2_ctl(hello2.0, tabs.as.spaces = TRUE, strip.spaces = TRUE) : 316s `tabs.as.spaces` and `strip.spaces` should not both be TRUE. 316s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, pad.end = letters) 316s Error in strwrap2_ctl(hello2.0, pad.end = letters) : 316s Argument `pad.end` must be a scalar character. 316s Calls: unitize_dir ... withVisible -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s 14/14 wrap.R: bytes <- "\360\343" 316s 14/14 wrap.R: Encoding(bytes) <- "bytes" 316s 14/14 wrap.R: strwrap_ctl(hello2.0, prefix = bytes) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `prefix` cannot be "bytes" encoded. 316s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap_ctl(hello2.0, initial = bytes) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `initial` cannot be "bytes" encoded. 316s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap2_ctl(hello2.0, pad.end = bytes) 316s Error in strwrap2_ctl(hello2.0, pad.end = bytes) : 316s Argument `pad.end` cannot be "bytes" encoded. 316s Calls: unitize_dir ... withVisible -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 316s 14/14 wrap.R: strwrap_ctl(c(hello2.0, bytes)) 316s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 316s Argument `x` contains a "bytes" encoded string at index [2], which is disallowed. 316s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 316s 316s Prepping Unitizers... 316s Warning in history_capt(history, interactive.mode) : 316s Unable to capture history in non-interactive mode. 317s 317s | Summary of files in common directory '.': 317s | 317s | Pass Fail 317s | 1. has.R 32 - 317s | 2. interactions.R 93 - 317s | 3. misc.R 107 - 317s | 4. nchar.R 48 - 317s | 5. normalize.R 47 - 317s | 6. overflow.R 56 - 317s | 7. strip.R 99 - 317s | 8. strsplit.R 38 - 317s | 9. substr.R 219 - 317s | 10. tabs.R 16 - 317s | 11. tohtml.R 68 - 317s | 12. trimws.R 12 - 317s | 13. url.R 50 - 317s | 14. wrap.R 141 - 317s | .............................. 317s | 1026 - 317s 317s | 1026/1026 tests passed; nothing to review. 317s 317s 317s Preloads... 317s Loading unitizer data... 317s Parsing tests... 317s Parsing special/utf8.R 317s Evaluating tests... 317s 317s library(fansi) 317s unitizer_sect("substr", { 317s term.cap <- c("bright", "256", "truecolor") 317s lorem.cn.pieces <- substr(rep(lorem.cn, 5), c(1, 11, 21, 31), 317s lorem.cn.col.1 <- paste0(red, lorem.cn.pieces[1], inv, lorem.cn.pieces[2], 317s lor.cn.c.1.5 <- rep(lorem.cn.col.1, 5) 317s starts <- seq(1, 17, 4) 317s ends <- starts + 3 317s substr2_ctl(lor.cn.c.1.5, starts, ends, term.cap = term.cap) 317s [1] "\033[31m\033[0m" 317s [2] "\033[31m\033[0m" 317s [3] "\033[31m\033[7m\033[0m" 317s [4] "\033[7;31m\033[42m\033[0m" 317s [5] "\033[7;31;42m\033[4;38;2;0;120;200m\033[0m" 317s lorem.cn.col.2 <- paste0(red, lorem.cn.pieces[1], "hello", inv, 317s lor.cn.c.2.5 <- rep(lorem.cn.col.2, 5) 317s starts <- seq(1, by = 6, length.out = 5) 317s ends <- starts + 5 317s substr2_ctl(lor.cn.c.2.5, starts, ends, term.cap = term.cap) 317s [1] "\033[31m\033[0m" 317s [2] "\033[31mhe\033[0m" 317s [3] "\033[31mllo\033[7m\033[0m" 317s [4] "\033[7;31m the\033[0m" 317s [5] "\033[7;31mre \033[42m\033[4;38;2;0;120;200m\033[0m" 317s substr2_sgr(lor.cn.c.2.5, starts, ends, term.cap = term.cap) 317s [1] "\033[31m\033[0m" 317s [2] "\033[31mhe\033[0m" 317s [3] "\033[31mllo\033[7m\033[0m" 317s [4] "\033[7;31m the\033[0m" 317s [5] "\033[7;31mre \033[42m\033[4;38;2;0;120;200m\033[0m" 317s starts <- seq(1, by = 12, length.out = 5) 317s ends <- starts + 11 317s substr2_ctl(lor.cn.c.2.5, starts, ends, type = "width", term.cap = term.cap) 317s [1] "\033[31m\033[0m" 317s [2] "\033[31mhell\033[0m" 317s [3] "\033[31mo\033[7m \033[0m" 317s [4] "\033[7;31mthere \033[42m\033[4;38;2;0;120;200m\033[0m" 317s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 317s lorem.cn.col.4 <- paste0(red, lorem.cn.pieces[1], "hello", inv, 317s lor.cn.c.4.5 <- rep(lorem.cn.col.4, 5) 317s substr2_ctl(lor.cn.c.4.5, starts, ends, type = "width") 317s [1] "\033[31m\033[0m" 317s [2] "\033[31mhell\033[0m" 317s [3] "\033[31mo\033[7m \033[0m" 317s [4] "\033[7;31mthere \033[42m\033[4;38;5;141m\033[0m" 317s [5] "\033[4;7;38;5;141;42m\033[0m" 317s lorem.cn.col.3 <- paste0(red, lorem.cn.pieces[1], "helloo", inv, 317s lor.cn.c.3.5 <- rep(lorem.cn.col.3, 5) 317s starts <- seq(1, by = 12, length.out = 5) 317s ends <- starts + 10 317s ends[2] <- 24 317s substr2_ctl(lor.cn.c.3.5, starts, ends, type = "width", term.cap = term.cap) 317s [1] "\033[31m\033[0m" 317s [2] "\033[31mhell\033[0m" 317s [3] "\033[31moo\033[7m\033[0m" 317s [4] "\033[7;31m world! \033[42m\033[0m" 317s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 317s substr2_ctl(lor.cn.c.3.5, starts, ends, type = "width", round = "both", 317s [1] "\033[31m\033[0m" 317s [2] "\033[31mhell\033[0m" 317s [3] "\033[31moo\033[7m\033[0m" 317s [4] "\033[7;31m world! \033[42m\033[0m" 317s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 317s starts <- seq(1, by = 7, length.out = 5) 317s ends <- starts + 8 317s substr2_ctl(lor.cn.c.1.5, starts, ends, type = "width", term.cap = term.cap) 317s [1] "\033[31m\033[0m" 317s [2] "\033[31m\033[0m" 317s [3] "\033[31m\033[7m\033[0m" 317s [4] "\033[7;31m\033[0m" 317s [5] "\033[7;31m\033[42m\033[4;38;2;0;120;200m\033[0m" 317s substr2_ctl(lor.cn.c.1.5, starts, ends, type = "width", round = "stop", 317s [1] "\033[31m\033[0m" 317s [2] "\033[31m\033[0m" 317s [3] "\033[31m\033[7m\033[0m" 317s [4] "\033[7;31m\033[0m" 317s [5] "\033[7;31m\033[42m\033[4;38;2;0;120;200m\033[0m" 317s bytes <- "\300\261\360\261\300\261\300\261" 317s Encoding(bytes) <- "bytes" 317s tce(substr_ctl(bytes, 2, 3)) 317s [1] "Argument `x` contains a \"bytes\" encoded string at index [1], which is disallowed." 317s latin <- "H\351llo W\326rld!" 317s Encoding(latin) <- "latin1" 317s latin.utf8 <- substr_ctl(latin, 1, 9) 317s latin.utf8 317s [1] "Hllo Wr" 317s Encoding(latin.utf8) 317s [1] "UTF-8" 317s rnd.1 <- "\357\274\255n\357\274\267" 317s Encoding(rnd.1) <- "UTF-8" 317s substr2_ctl(rnd.1, 2, 4, type = "width", round = "start") 317s [1] "n" 317s substr2_ctl(rnd.1, 2, 4, type = "width", round = "stop") 317s [1] "n" 317s substr2_ctl(rnd.1, 2, 4, type = "width", round = "neither") 317s [1] "n" 317s substr2_ctl(rnd.1, 2, 4, type = "width", round = "both") 317s [1] "n" 317s rnd.2 <- "\357\274\255\357\274\267" 317s Encoding(rnd.2) <- "UTF-8" 317s substr2_ctl(rnd.2, 2, 3, type = "width", round = "start") 317s [1] "" 317s substr2_ctl(rnd.2, 2, 3, type = "width", round = "stop") 317s [1] "" 317s substr2_ctl(rnd.2, 1, 2, type = "width", round = "start") 317s [1] "" 317s substr2_ctl(rnd.2, 1, 2, type = "width", round = "stop") 317s [1] "" 317s substr2_ctl(rnd.2, 3, 4, type = "width", round = "start") 317s [1] "" 317s substr2_ctl(rnd.2, 3, 4, type = "width", round = "stop") 317s [1] "" 317s unitizer_sect("rounding", { 317s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "stop") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "stop") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "stop") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "stop") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "stop") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "both") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "both") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "both") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "both") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "both") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "neither") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "neither") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "neither") 317s [1] "" 317s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "neither") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "neither") 317s [1] "\033[31m\033[0m" 317s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "neither", 317s [1] "\033[31m" 317s unitizer_sect("multi-elem", { 317s lor.cn.2.2 <- rep(lorem.cn.col.2, 2) 317s substr2_ctl(lor.cn.2.2, c(1, 3), c(2, 4), type = "width") 317s [1] "\033[31m\033[0m" "\033[31m\033[0m" 317s substr2_ctl(lor.cn.2.2, c(2, 4), c(2, 4), type = "width") 317s [1] "\033[31m\033[0m" "\033[31m\033[0m" 317s unitizer_sect("zero width combining", { 317s combo <- "hello world" 317s Encoding(combo) <- "UTF-8" 317s substr2_ctl(combo, 1, 5, type = "width") 318s [1] "hello" 318s substr2_ctl(combo, 5, 8, type = "width") 318s [1] "o wo" 318s substr2_ctl(rep(combo, 2), c(1, 5), c(5, 8), type = "width") 318s [1] "hello" "o wo" 318s nchar_ctl(combo, type = "width") 318s [1] 11 318s nchar_ctl(combo, type = "graphemes") 318s [1] 11 318s combo3 <- paste0(substr(lorem.cn.pieces[1], 1, 2), "") 318s Encoding(combo3) <- "UTF-8" 318s substr2_ctl(combo3, 3, 4, type = "width") 318s [1] "" 318s substr2_ctl(combo3, 2, 4, type = "width") 318s [1] "" 318s substr2_ctl(combo3, 4, 4, type = "width") 318s [1] "" 318s substr2_ctl(combo3, 4, 5, type = "width") 318s [1] "" 318s combo4 <- paste0("hello") 318s substr2_ctl(combo4, 1, 1, type = "width") 318s [1] "h" 318s substr2_ctl(combo4, 1, 1) 318s [1] "" 318s substr2_ctl(combo4, 0, 1, type = "width") 318s [1] "h" 318s substr2_ctl(combo4, 0, 0, type = "width") 318s [1] "" 318s unitizer_sect("Corner cases", { 318s utf8.bad <- "hello \360 world, goodnight moon" 318s Encoding(utf8.bad) <- "UTF-8" 318s substr_ctl(utf8.bad, 1, 7) 318s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 318s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 318s substr_ctl(utf8.bad, 5, 10) 318s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 318s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 318s tce(substr2_ctl(utf8.bad, 1, 7, type = "width")) 318s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 318s tce(substr2_ctl(utf8.bad, 5, 10, type = "width")) 318s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 318s chrs.2 <- "hello\356" 318s Encoding(chrs.2) <- "UTF-8" 318s tce(substr2_ctl(chrs.2, 1, 10, type = "width")) 318s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 318s bad.u <- c("A\033[31;\200mB", "A\033[31;\200pB") 318s Encoding(bad.u) <- "UTF-8" 318s substr_ctl(bad.u[1], 0, 3) 318s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 318s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 318s substr_ctl(bad.u[2], 0, 3) 318s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 318s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 318s b.test <- c("", ("a"), ("a"), 318s identical(substr_ctl(b.test, 0, 3), substr(b.test, 0, 3)) 318s [1] TRUE 318s identical(substr_ctl(b.test, 0, 2), substr(b.test, 0, 2)) 318s [1] TRUE 318s identical(substr_ctl(b.test, 1, 2), substr(b.test, 1, 2)) 318s [1] TRUE 318s identical(substr_ctl(b.test, 0, 4), substr(b.test, 0, 4)) 318s [1] TRUE 318s identical(substr_ctl(b.test, 4, 4), substr(b.test, 4, 4)) 318s [1] TRUE 318s b.t.c <- sprintf("\033[43m%s\033[49m", b.test) 318s substr_ctl(b.t.c, 0, 0) 318s [1] "" "" "" "" 318s substr_ctl(b.t.c, 0, 2) 318s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 318s [3] "\033[43m\033[0m" "\033[43ma\033[0m" 318s substr_ctl(b.t.c, 1, 2) 318s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 318s [3] "\033[43m\033[0m" "\033[43ma\033[0m" 318s substr_ctl(b.t.c, 0, 4) 318s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 318s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 318s substr_ctl(b.t.c, 4, 4) 318s [1] "" "" "" "" 318s substr2_ctl(b.t.c, 0, 0, type = "width") 318s [1] "" "" "" "" 318s substr2_ctl(b.t.c, 0, 2, type = "width") 318s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 318s [3] "\033[43m\033[0m" "\033[43m\033[0m" 318s substr2_ctl(b.t.c, 1, 4, type = "width") 318s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 318s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 318s substr2_ctl(b.t.c, 0, 5, type = "width") 318s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 318s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 318s substr2_ctl(b.t.c, 5, 5, type = "width") 318s [1] "" "" "" "" 318s substr_ctl(b.t.c, 0, 4, terminate = FALSE) 318s [1] "\033[43m\033[49m" "\033[43ma\033[49m" 318s [3] "\033[43ma\033[49m" "\033[43ma\033[49m" 318s substr2_ctl(b.t.c, 1, 4, terminate = FALSE, type = "width") 318s [1] "\033[43m" "\033[43ma\033[49m" 318s [3] "\033[43ma\033[49m" "\033[43ma\033[49m" 318s unitizer_sect("nchar", { 318s chr.dia <- "A" 318s nchar_ctl(chr.dia) 318s [1] 2 318s nchar(chr.dia) 318s [1] 2 318s nchar_ctl(chr.dia, type = "width") 318s [1] 1 318s w1 <- "" 318s w2 <- "" 318s nchar_ctl(w1) 318s [1] 3 318s nchar_ctl(w2, type = "width") 318s [1] 6 318s nchar_ctl(w2, type = "graphemes") 318s [1] 3 318s nchar_ctl(w2, type = "bytes") 318s [1] 9 318s hello.illegal <- c("hello", "\360", "\360aaaa") 318s Encoding(hello.illegal) <- "UTF-8" 318s nchar_ctl(hello.illegal) 318s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 318s Argument `x` contains a malformed UTF-8 sequence at index [2], see `?unhandled_ctl`. 318s Calls: unitize ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 318s nchar_ctl(hello.illegal, allowNA = TRUE) 318s [1] 5 NA NA 318s nzchar_ctl(hello.illegal) 318s [1] TRUE TRUE TRUE 318s esc.1 <- sprintf("hello \033[31mworld\033[m%s\033[48;5;123m blahs \033[m%s", 318s Encoding(esc.1) <- "UTF-8" 318s nchar_ctl(esc.1) 318s [1] 23 318s nchar_ctl(esc.1, type = "width") 318s [1] 28 318s nchar_ctl(esc.1, type = "bytes") 318s [1] 33 318s nzchar_ctl(esc.1) 318s [1] TRUE 318s esc.2 <- "\n\r\033P\033[31m\a" 318s nchar_ctl(c(esc.1, esc.2, "hello"), warn = FALSE) 318s [1] 23 0 5 318s esc.4 <- c(sprintf("\033[31m%shello", w1), NA, hello.illegal) 318s nchar_sgr(esc.4, type = "width", keepNA = FALSE, warn = FALSE, 318s [1] 11 2 5 NA NA 318s nzchar_sgr(esc.4, keepNA = FALSE, warn = FALSE) 318s [1] TRUE TRUE TRUE TRUE TRUE 318s nchar_sgr("\033[31m\thello", type = "width") >= nchar_ctl("\033[31m\thello", 318s [1] TRUE 318s ncb <- c("123\033[31\200m123", "123\033\200123") 318s Encoding(ncb) <- "UTF-8" 318s nchar_ctl(ncb) 318s [1] 6 6 318s unitizer_sect("unhandled", { 318s utf8.bad.0 <- "hello\033\033\033[45p \360how wor\ald" 318s Encoding(utf8.bad.0) <- "UTF-8" 318s unhandled_ctl(utf8.bad.0) 318s index start stop error translated esc 318s 1 1 6 7 malformed-ESC FALSE \033\033 318s 2 1 8 12 non-SGR/hyperlink FALSE \033[45p 318s 3 1 14 14 malformed-UTF8 FALSE 318s 4 1 22 22 C0 FALSE \a 318s utf8.bad.1 <- "hello \360ho" 318s Encoding(utf8.bad.1) <- "UTF-8" 318s unhandled_ctl(utf8.bad.1) 318s index start stop error translated esc 318s 1 1 7 7 malformed-UTF8 FALSE 318s unitizer_sect("utf8clen", { 318s chrs <- c("\302\200", "\337\277", "\340\240\200", "\340\277\277", 318s Encoding(chrs) <- "UTF-8" 318s nchar(chrs, allowNA = TRUE) 318s [1] 1 1 1 1 1 1 1 1 1 1 1 1 NA NA NA NA 318s nchar_ctl(chrs, allowNA = TRUE) 318s [1] 1 1 1 1 1 1 1 1 1 1 1 1 NA NA NA NA 318s utf8.bad.2 <- "\277aaaaaa" 318s Encoding(utf8.bad.2) <- "UTF-8" 318s nchar(utf8.bad.2, allowNA = TRUE) 318s [1] NA 318s nchar_ctl(utf8.bad.2, allowNA = TRUE) 318s [1] NA 318s substr_ctl(utf8.bad.2, 1, 1) 318s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 318s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 318s unitizer_sect("wrap corner cases", { 318s pre.2 <- "\033[32m\320\237 \033[0m" 318s ini.2 <- "\033[33m\321\200 \033[0m" 318s hello.8c <- "hello \320\237\321\200\320\270\320\262\320\265\321\202 world" 318s Encoding(pre.2) <- "UTF-8" 318s Encoding(ini.2) <- "UTF-8" 318s Encoding(hello.8c) <- "UTF-8" 318s pre.3 <- "\320\237 " 318s ini.3 <- "\321\200 " 318s Encoding(pre.3) <- "UTF-8" 318s Encoding(ini.3) <- "UTF-8" 318s wrap.csi.4 <- strwrap_ctl(hello.8c, 15, prefix = pre.2, initial = ini.2) 318s wrap.csi.4 318s [1] "\033[33m \033[0mhello " 318s [2] "\033[32m \033[0mworld" 318s utf8.chr <- "" 318s strwrap2_ctl(utf8.chr, 1, wrap.always = TRUE) 318s Error in strwrap2_ctl(utf8.chr, 1, wrap.always = TRUE) : 318s Width must be at least 2 in `wrap.always` mode. 318s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 318s strwrap2_ctl(utf8.chr, 2, wrap.always = TRUE) 318s Error in strwrap2_ctl(utf8.chr, 2, wrap.always = TRUE) : 318s Wrap error: trying to wrap to width narrower than character width; set `wrap.always=FALSE` to resolve. 318s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 318s strwrap2_ctl(utf8.chr, 3, wrap.always = TRUE) 318s [1] "" 318s strwrap_ctl("lovelyday.", 10) 318s [1] "lovelyday." 318s strwrap2_ctl("lovelyday.", 10, wrap.always = TRUE) 318s [1] "lovelyday" "." 318s utf8.bad <- "hello \360 world, goodnight moon" 318s Encoding(utf8.bad) <- "UTF-8" 318s strwrap_ctl(utf8.bad, 10) 318s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 318s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... eval -> eval -> withVisible -> strwrap_ctl -> strwrap2_ctl 318s utf8.bad.2 <- "\360" 318s Encoding(utf8.bad.2) <- "UTF-8" 318s tcw(strwrap_ctl("hello world", 6, prefix = utf8.bad.2)) 318s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 318s Argument `prefix` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... tryCatchOne -> doTryCatch -> strwrap_ctl -> strwrap2_ctl 318s suppressWarnings(strwrap_ctl("hello world", 6, prefix = utf8.bad.2)) 318s bytes <- "\300\261\360\261\300\261\300\261" 318s Encoding(bytes) <- "bytes" 318s tce(strwrap_ctl(bytes)) 318s [1] "Argument `x` contains a \"bytes\" encoded string at index [1], which is disallowed." 318s encstrings <- c("hell world", "hello wrld") 318s Encoding(strwrap_ctl(encstrings, 5)) 318s [1] "UTF-8" "unknown" "unknown" "UTF-8" 318s str.inf <- " " 318s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 318s Argument `prefix` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 318s Calls: unitize ... doWithOneRestart -> withCallingHandlers -> eval -> eval -> withVisible 318s strwrap2_ctl(str.inf, 2) 318s [1] "" "" 318s unitizer_sect("wrap with wide UTF8 and ESC", { 318s wrap.mix <- strwrap_ctl(lorem.mix, 25) 318s wrap.mix 318s [1] "lorem ipsum dolor" 318s [2] "\033[32m \033[0m" 318s [3] "\033[1;7;32msit amet consectetur\033[0m" 318s [4] "\033[1;7;32madipiscing elit sed do\033[0m" 318s [5] "" 318s [6] "\033[1;7;38;5;105meiusmod tempor\033[0m" 318s [7] "\033[1;7;38;5;105mincididunt ut labore et\033[0m" 318s [8] "\033[1;7;38;5;105mdolore magna aliqua ut\033[0m" 318s [9] "" 318s [10] " " 318s [11] "\033[34;43menim ad minim veniam\033[0m" 318s [12] "\033[34;43mquis\033[49mnostrud exercitation\033[0m" 318s [13] "\033[34mullamco laboris nisi\033[0m" 318s [14] "\033[4m \033[0m" 318s [15] "" 318s [16] "\033[4m \033[0m" 318s [17] "\033[4mut aliquip ex ea commodo\033[0m" 318s [18] "\033[4mconsequat\033[0m" 318s string <- "\033[37;48;5;32m\345\234\213\345\256\230\346\226\271\350\252\215\345\ 318s Encoding(string) <- "UTF-8" 318s strwrap2_ctl(string, 24, wrap.always = TRUE, pad.end = " ") 318s [1] "\033[37;48;5;32m56 \033[0m" 318s [2] "\033[37;48;5;32m\033[39;49m " 318s unitizer_sect("issue 54 ctd", { 318s string3 <- c("\033[38;5;246m# \342\200\246 with 5 more variables: total_time \03 318s Encoding(string3) <- "UTF-8" 318s fansi::sgr_to_html(html_esc(string3)) 318s [1] "# with 5 more variables: total_time <bch:tm>, result <list>, memory <list>," 318s [2] "# time <list>, gc <list>" 318s string4 <- c("wow \033[31m then", "hello\033[\200;wow", "yo \033[m there", 318s Encoding(string4) <- "UTF-8" 318s sgr_to_html(string4) 318s unitizer_sect("html_esc", { 318s x <- "" 318s html_esc(c("h&e'l\"lo", "wors", NA, ""), x) 318s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 318s Argument `x` contains an illegal non-ASCII byte at index [2], see `?unhandled_ctl`. 318s Calls: unitize ... eval -> eval -> withVisible -> sgr_to_html -> to_html_int 318s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), x) : 318s Argument `what` may only contain ASCII characters "&", "<", ">", "'", or "\"". 318s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 318s 318s Prepping Unitizers... 318s Warning in history_capt(history, interactive.mode) : 318s Unable to capture history in non-interactive mode. 318s 318s | 125/125 tests passed; nothing to review. 318s 318s 318s Preloads... 318s Loading unitizer data... 318s Parsing tests... 318s Parsing special/emo-graph.R 318s Evaluating tests... 318s 318s library(fansi) 318s unitizer_sect("Emoji combining", { 318s flags <- " \033[0m" 318s [2] "\033[44m \033[0m" 318s [3] "\033[44m \033[0m" 318s strwrap2_ctl(flags, 7, wrap.always = TRUE, pad.end = " ", carry = "\033[44m") 318s [1] "\033[44m\033[0m" 318s [2] "\033[44m\033[0m" 318s flags.1 <- paste0("a", flags) 318s strwrap2_ctl(flags.1, 7, wrap.always = TRUE, pad.end = " ", carry = "\033[44m") 318s [1] "\033[44ma \033[0m" 318s [2] "\033[44m\033[0m" 318s [3] "\033[44m \033[0m" 318s substr2_ctl(flags, 1, 1, type = "width") 318s [1] "" 318s substr2_ctl(flags, 1, 1, type = "width", round = "stop") 319s [1] "" 319s substr2_ctl(flags, 1, 2, type = "width", round = "neither") 319s [1] "" 319s substr2_ctl(flags, 2, 3, type = "width", round = "stop") 319s [1] "" 319s substr2_ctl(flags, 2, 3, type = "width", round = "start") 319s [1] "" 319s substr2_ctl(flags, 2, 3, type = "width", round = "both") 319s [1] "" 319s substr2_ctl(flags, 2, 3, type = "width", round = "neither") 319s [1] "" 319s emo.0 <- "_B" 319s emo.2 <- "" 319s emo.2a <- paste0("_", emo.2, "^", emo.2) 319s nchar_ctl(c(emo.0, emo.1, emo.2), type = "width") 319s [1] 6 6 2 319s nchar_ctl(c(emo.0, emo.1, emo.2), type = "graphemes") 319s [1] 3 5 1 319s substr2_ctl(emo.0, 1, 1, type = "width") 319s [1] "" 319s substr2_ctl(emo.0, 1, 1, type = "width", round = "stop") 319s [1] "" 319s substr2_ctl(emo.0, 1, 2, type = "width", round = "stop") 319s [1] "" 319s substr2_ctl(emo.0, 2, 3, type = "width", round = "stop") 319s [1] "" 319s substr2_ctl(emo.0, 2, 3, type = "width", round = "start") 319s [1] "" 319s substr2_ctl(emo.0, 2, 3, type = "width", round = "both") 319s [1] "" 319s substr2_ctl(emo.0, 2, 3, type = "width", round = "neither") 319s [1] "" 319s substr2_ctl(emo.1, 1, 3, type = "width") 319s [1] "A_" 319s substr2_ctl(emo.1, 1, 3, type = "width", round = "stop") 319s [1] "A_" 319s substr2_ctl(emo.1, 3, 5, type = "width") 319s [1] "_" 319s substr2_ctl(emo.1, 4, 5, type = "width") 319s [1] "_" 319s emo.3 <- "" 319s emo.4 <- " \033[0m" 319s [4] "\033[44m \033[0m" 319s [5] "\033[44mthere was\033[0m" 319s [6] "\033[44ma humpty \033[0m" 319s [7] "\033[44m \033[0m" 319s [8] "\033[44m \033[0m" 319s [9] "\033[44mdumpty \033[0m" 319s [10] "\033[44mA__B on\033[0m" 319s [11] "\033[44mthe wall \033[0m" 319s [12] "\033[44mand he \033[0m" 319s [13] "\033[44mhad a \033[0m" 319s [14] "\033[44m big \033[0m" 319s [15] "\033[44mfall \033[0m" 319s [16] "\033[44moh no \033[0m" 319s [17] "\033[44monce upon\033[0m" 319s [18] "\033[44ma time \033[0m" 319s [19] "\033[44m \033[0m" 319s [20] "\033[44m \033[0m" 319s [21] "\033[44mthere was\033[0m" 319s [22] "\033[44ma humpty \033[0m" 319s [23] "\033[44m \033[0m" 319s [24] "\033[44m \033[0m" 319s [25] "\033[44mdumpty \033[0m" 319s [26] "\033[44mA__B on\033[0m" 319s [27] "\033[44mthe wall \033[0m" 319s [28] "\033[44mand he \033[0m" 319s [29] "\033[44mhad a \033[0m" 319s [30] "\033[44m big \033[0m" 319s [31] "\033[44mfall \033[0m" 319s [32] "\033[44moh no \033[0m" 319s emo.6 <- c(emo.0, emo.2a, emo.4) 319s substr2_ctl(emo.6, 1, 2, type = "graphemes") 319s [1] "" 319s [2] "_" 319s [3] "" 319s substr2_ctl(emo.6, 1, 3, type = "graphemes") 319s [1] "" 319s [2] "_^" 319s [3] "" 319s substr2_ctl(emo.6, 2, 3, type = "graphemes") 319s [1] "" 319s [2] "^" 319s [3] "" 319s substr2_ctl(emo.6, 3, 3, type = "graphemes") 319s [1] "" "^" "" 319s emo.5 <- "\360\237\221\266\033[43m\360\237\217\275###\033[m" 319s Encoding(emo.5) <- "UTF-8" 319s substr2_ctl(emo.5, 1, 2, type = "width") 319s [1] "\033[43m\033[0m" 319s substr2_ctl(emo.5, 2, 3, type = "width") 319s [1] "\033[43m#\033[0m" 319s nchar_ctl(emo.5, type = "width") 319s [1] 5 319s nchar_ctl(emo.5, type = "grapheme") 319s [1] 4 319s emo.0.1 <- paste0("\033[33m", substr2_ctl(emo.0, 1, 1, type = "graphemes"), 319s substr2_ctl(emo.0.1, 2, 2, type = "width") 319s [1] "\033[33m\033[0m" 319s substr2_ctl(emo.0.1, 2, 2, type = "width", terminate = FALSE) 319s [1] "\033[33m" 319s substr2_ctl(emo.0.1, 1, 1, type = "width", round = "stop") 319s [1] "\033[33m\033[0m" 319s substr2_ctl(emo.0.1, 1, 3, type = "width") 319s [1] "\033[33m\033[0m" 319s substr2_ctl(emo.0.1, 1, 3, type = "width", terminate = FALSE) 319s [1] "\033[33m\033[45m" 319s substr2_ctl(emo.0.1, 1, 3, type = "width", round = "stop") 319s [1] "\033[33m\033[0m" 319s emo.0.2 <- paste0(emo.0.1, "\a") 319s substr2_ctl(emo.0.2, 1, 3, type = "width", round = "start") 319s [1] "\033[33m\033[45m\a\033[0m" 319s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 319s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 319s emo.0.3 <- paste0(emo.0.1, "\a\033]8;;x.yz\033\\") 319s substr2_ctl(emo.0.3, 1, 3, type = "width", round = "start") 319s [1] "\033[33m\033[45m\a\033[0m" 319s emo.0.4 <- paste0("\033]8;;x.yz\033\\", substr2_ctl(emo.0, 1, 319s substr2_ctl(emo.0.4, 1, 3, type = "width") 319s [1] "\033]8;;x.yz\033\\\033]8;;w.ww\033\\\a\033]8;;\033\\" 319s substr2_ctl(emo.0.4, 1, 3, type = "width", terminate = FALSE) 319s [1] "\033]8;;x.yz\033\\\033]8;;w.ww\033\\\a\033[42m" 319s substr2_ctl(emo.0.4, 1, 2, type = "width", terminate = FALSE) 319s [1] "\033]8;;x.yz\033\\" 319s substr2_ctl(emo.0.4, 1, 2, type = "width") 319s [1] "\033]8;;x.yz\033\\\033]8;;\033\\" 319s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 319s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 319s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 319s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 319s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 319s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 319s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 319s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 319s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 319s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 319s unitizer_sect("replacement and width", { 319s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0) 319s [1] "A__B" 319s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0, type = "width") 319s [1] "A__B" 319s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width") 319s [1] "A__B" 319s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "stop") 319s [1] "A__B" 319s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "neither") 319s [1] "A__B" 319s `substr2_ctl<-`(emo.1, 4, 4, value = "#", type = "width") 319s [1] "A_#_B" 319s `substr2_ctl<-`(emo.1, 4, 5, value = emo.0, type = "width") 319s [1] "A__B" 319s x <- "ABCDEF" 319s `substr2_ctl<-`(x, 2, 4, value = emo.0, type = "width") 319s [1] "ADEF" 319s `substr2_ctl<-`(x, 2, 4, value = emo.0, type = "width", round = "stop") 319s [1] "ADEF" 319s `substr2_ctl<-`(x, 2, 5, value = emo.0, type = "width") 319s [1] "AF" 319s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0, type = "width", round = "both") 319s [1] "A__B" 319s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "both") 319s [1] "A__B" 319s a <- c(rep(emo.1, 4), rep(x, 2)) 319s b <- c(emo.0, "#", rep(emo.0, 4)) 319s starts <- c(3, 4, 4, 4, 2, 2) 319s stops <- c(4, 4, 4, 5, 4, 5) 319s x <- a 319s substr2_ctl(x, starts, stops, type = "width") <- b 319s x 319s [1] "A__B" 319s [2] "A_#_B" 319s [3] "A__B" 319s [4] "A__B" 319s [5] "ADEF" 319s [6] "AF" 319s starts <- c(3, 4, 2, 3, 4, 2) 319s ends <- c(8, 9, 7, 7, 8, 6) 319s emo.3 <- rep(paste0("", 319s emo.4 <- "" 319s [2] "" 319s [3] "" 319s [4] "" 319s [5] "" 319s [6] "" 319s substr2_ctl(x1, starts, ends, type = "width", round = "stop") <- emo.4 319s x1 319s [1] "" 319s [2] "" 319s [3] "" 319s [4] "" 319s [5] "" 319s [6] "" 319s emo.7 <- "_" 319s emo.7a <- "" 319s `substr2_ctl<-`(emo.7, 3, 3, type = "width", round = "stop", 319s [1] "_" 319s `substr2_ctl<-`(emo.7, 3, 3, type = "width", round = "stop", 319s [1] "#" 319s `substr2_ctl<-`(emo.7a, 2, 1, type = "width", round = "both", 319s [1] "" 319s 319s Prepping Unitizers... 319s Warning in history_capt(history, interactive.mode) : 319s Unable to capture history in non-interactive mode. 319s 319s > 319s | 68/68 tests passed; nothing to review. 319s 319s autopkgtest [18:05:21]: test run-unit-test: -----------------------] 320s autopkgtest [18:05:22]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 320s run-unit-test PASS 320s autopkgtest [18:05:22]: test pkg-r-autopkgtest: preparing testbed 321s Reading package lists... 321s Building dependency tree... 321s Reading state information... 321s Starting pkgProblemResolver with broken count: 0 321s Starting 2 pkgProblemResolver with broken count: 0 321s Done 321s The following NEW packages will be installed: 321s build-essential cpp cpp-14 cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu 321s dctrl-tools g++ g++-14 g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-14 321s gcc-14-s390x-linux-gnu gcc-s390x-linux-gnu gfortran gfortran-14 321s gfortran-14-s390x-linux-gnu gfortran-s390x-linux-gnu icu-devtools libasan8 321s libblas-dev libbz2-dev libcc1-0 libdeflate-dev libgcc-14-dev 321s libgfortran-14-dev libicu-dev libisl23 libitm1 libjpeg-dev 321s libjpeg-turbo8-dev libjpeg8-dev liblapack-dev liblzma-dev libmpc3 321s libncurses-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 321s libpkgconf3 libpng-dev libreadline-dev libstdc++-14-dev libtirpc-dev 321s libubsan1 pkg-r-autopkgtest pkgconf pkgconf-bin r-base-dev zlib1g-dev 321s 0 upgraded, 51 newly installed, 0 to remove and 0 not upgraded. 321s Need to get 82.3 MB of archives. 321s After this operation, 279 MB of additional disk space will be used. 321s Get:1 http://ftpmaster.internal/ubuntu plucky/main s390x libisl23 s390x 0.27-1 [704 kB] 322s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x libmpc3 s390x 1.3.1-1build2 [57.8 kB] 322s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [9572 kB] 332s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14 s390x 14.2.0-17ubuntu3 [1028 B] 332s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [5556 B] 332s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x cpp s390x 4:14.2.0-1ubuntu1 [22.4 kB] 332s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libcc1-0 s390x 15-20250222-0ubuntu1 [49.2 kB] 332s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libitm1 s390x 15-20250222-0ubuntu1 [31.2 kB] 332s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x libasan8 s390x 15-20250222-0ubuntu1 [2970 kB] 336s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x libubsan1 s390x 15-20250222-0ubuntu1 [1212 kB] 337s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x libgcc-14-dev s390x 14.2.0-17ubuntu3 [1037 kB] 338s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [18.7 MB] 354s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14 s390x 14.2.0-17ubuntu3 [526 kB] 355s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [1204 B] 355s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x gcc s390x 4:14.2.0-1ubuntu1 [5004 B] 355s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x libstdc++-14-dev s390x 14.2.0-17ubuntu3 [2611 kB] 357s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [11.0 MB] 367s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14 s390x 14.2.0-17ubuntu3 [21.8 kB] 367s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x g++-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [956 B] 367s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x g++ s390x 4:14.2.0-1ubuntu1 [1080 B] 367s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x build-essential s390x 12.10ubuntu1 [4930 B] 367s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x dctrl-tools s390x 2.24-3build3 [106 kB] 367s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x libgfortran-14-dev s390x 14.2.0-17ubuntu3 [654 kB] 368s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran-14-s390x-linux-gnu s390x 14.2.0-17ubuntu3 [10.3 MB] 375s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran-14 s390x 14.2.0-17ubuntu3 [13.6 kB] 375s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran-s390x-linux-gnu s390x 4:14.2.0-1ubuntu1 [1012 B] 376s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x gfortran s390x 4:14.2.0-1ubuntu1 [1160 B] 376s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x icu-devtools s390x 76.1-1ubuntu2 [225 kB] 376s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x libblas-dev s390x 3.12.1-2 [254 kB] 376s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x libbz2-dev s390x 1.0.8-6 [39.1 kB] 377s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x libdeflate-dev s390x 1.23-1 [52.2 kB] 377s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x libicu-dev s390x 76.1-1ubuntu2 [12.2 MB] 389s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-turbo8-dev s390x 2.1.5-3ubuntu2 [281 kB] 389s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg8-dev s390x 8c-2ubuntu11 [1484 B] 390s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x libjpeg-dev s390x 8c-2ubuntu11 [1484 B] 390s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x liblapack-dev s390x 3.12.1-2 [5967 kB] 396s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x libncurses-dev s390x 6.5+20250216-2 [407 kB] 397s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-16-0 s390x 10.45-1 [259 kB] 397s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-32-0 s390x 10.45-1 [245 kB] 397s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-posix3 s390x 10.45-1 [7080 B] 397s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x libpcre2-dev s390x 10.45-1 [899 kB] 399s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x libpkgconf3 s390x 1.8.1-4 [31.2 kB] 399s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x zlib1g-dev s390x 1:1.3.dfsg+really1.3.1-1ubuntu1 [898 kB] 400s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x libpng-dev s390x 1.6.47-1 [278 kB] 400s Get:45 http://ftpmaster.internal/ubuntu plucky/main s390x libreadline-dev s390x 8.2-6 [187 kB] 401s Get:46 http://ftpmaster.internal/ubuntu plucky/main s390x liblzma-dev s390x 5.6.4-1 [183 kB] 401s Get:47 http://ftpmaster.internal/ubuntu plucky/main s390x pkgconf-bin s390x 1.8.1-4 [21.5 kB] 401s Get:48 http://ftpmaster.internal/ubuntu plucky/main s390x pkgconf s390x 1.8.1-4 [16.7 kB] 401s Get:49 http://ftpmaster.internal/ubuntu plucky/main s390x libtirpc-dev s390x 1.3.4+ds-1.3 [196 kB] 402s Get:50 http://ftpmaster.internal/ubuntu plucky/universe s390x r-base-dev all 4.4.3-1 [4176 B] 402s Get:51 http://ftpmaster.internal/ubuntu plucky/universe s390x pkg-r-autopkgtest all 20231212ubuntu1 [6448 B] 402s Fetched 82.3 MB in 1min 20s (1024 kB/s) 402s Selecting previously unselected package libisl23:s390x. 402s (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 ... 70151 files and directories currently installed.) 402s Preparing to unpack .../00-libisl23_0.27-1_s390x.deb ... 402s Unpacking libisl23:s390x (0.27-1) ... 402s Selecting previously unselected package libmpc3:s390x. 402s Preparing to unpack .../01-libmpc3_1.3.1-1build2_s390x.deb ... 402s Unpacking libmpc3:s390x (1.3.1-1build2) ... 402s Selecting previously unselected package cpp-14-s390x-linux-gnu. 402s Preparing to unpack .../02-cpp-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ... 402s Unpacking cpp-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 402s Selecting previously unselected package cpp-14. 402s Preparing to unpack .../03-cpp-14_14.2.0-17ubuntu3_s390x.deb ... 402s Unpacking cpp-14 (14.2.0-17ubuntu3) ... 402s Selecting previously unselected package cpp-s390x-linux-gnu. 402s Preparing to unpack .../04-cpp-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ... 402s Unpacking cpp-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 402s Selecting previously unselected package cpp. 402s Preparing to unpack .../05-cpp_4%3a14.2.0-1ubuntu1_s390x.deb ... 402s Unpacking cpp (4:14.2.0-1ubuntu1) ... 402s Selecting previously unselected package libcc1-0:s390x. 402s Preparing to unpack .../06-libcc1-0_15-20250222-0ubuntu1_s390x.deb ... 402s Unpacking libcc1-0:s390x (15-20250222-0ubuntu1) ... 402s Selecting previously unselected package libitm1:s390x. 402s Preparing to unpack .../07-libitm1_15-20250222-0ubuntu1_s390x.deb ... 402s Unpacking libitm1:s390x (15-20250222-0ubuntu1) ... 402s Selecting previously unselected package libasan8:s390x. 402s Preparing to unpack .../08-libasan8_15-20250222-0ubuntu1_s390x.deb ... 402s Unpacking libasan8:s390x (15-20250222-0ubuntu1) ... 402s Selecting previously unselected package libubsan1:s390x. 402s Preparing to unpack .../09-libubsan1_15-20250222-0ubuntu1_s390x.deb ... 402s Unpacking libubsan1:s390x (15-20250222-0ubuntu1) ... 402s Selecting previously unselected package libgcc-14-dev:s390x. 402s Preparing to unpack .../10-libgcc-14-dev_14.2.0-17ubuntu3_s390x.deb ... 402s Unpacking libgcc-14-dev:s390x (14.2.0-17ubuntu3) ... 402s Selecting previously unselected package gcc-14-s390x-linux-gnu. 402s Preparing to unpack .../11-gcc-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ... 402s Unpacking gcc-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package gcc-14. 403s Preparing to unpack .../12-gcc-14_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking gcc-14 (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package gcc-s390x-linux-gnu. 403s Preparing to unpack .../13-gcc-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ... 403s Unpacking gcc-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 403s Selecting previously unselected package gcc. 403s Preparing to unpack .../14-gcc_4%3a14.2.0-1ubuntu1_s390x.deb ... 403s Unpacking gcc (4:14.2.0-1ubuntu1) ... 403s Selecting previously unselected package libstdc++-14-dev:s390x. 403s Preparing to unpack .../15-libstdc++-14-dev_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking libstdc++-14-dev:s390x (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package g++-14-s390x-linux-gnu. 403s Preparing to unpack .../16-g++-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking g++-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package g++-14. 403s Preparing to unpack .../17-g++-14_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking g++-14 (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package g++-s390x-linux-gnu. 403s Preparing to unpack .../18-g++-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ... 403s Unpacking g++-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 403s Selecting previously unselected package g++. 403s Preparing to unpack .../19-g++_4%3a14.2.0-1ubuntu1_s390x.deb ... 403s Unpacking g++ (4:14.2.0-1ubuntu1) ... 403s Selecting previously unselected package build-essential. 403s Preparing to unpack .../20-build-essential_12.10ubuntu1_s390x.deb ... 403s Unpacking build-essential (12.10ubuntu1) ... 403s Selecting previously unselected package dctrl-tools. 403s Preparing to unpack .../21-dctrl-tools_2.24-3build3_s390x.deb ... 403s Unpacking dctrl-tools (2.24-3build3) ... 403s Selecting previously unselected package libgfortran-14-dev:s390x. 403s Preparing to unpack .../22-libgfortran-14-dev_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking libgfortran-14-dev:s390x (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package gfortran-14-s390x-linux-gnu. 403s Preparing to unpack .../23-gfortran-14-s390x-linux-gnu_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking gfortran-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package gfortran-14. 403s Preparing to unpack .../24-gfortran-14_14.2.0-17ubuntu3_s390x.deb ... 403s Unpacking gfortran-14 (14.2.0-17ubuntu3) ... 403s Selecting previously unselected package gfortran-s390x-linux-gnu. 403s Preparing to unpack .../25-gfortran-s390x-linux-gnu_4%3a14.2.0-1ubuntu1_s390x.deb ... 403s Unpacking gfortran-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 403s Selecting previously unselected package gfortran. 403s Preparing to unpack .../26-gfortran_4%3a14.2.0-1ubuntu1_s390x.deb ... 403s Unpacking gfortran (4:14.2.0-1ubuntu1) ... 403s Selecting previously unselected package icu-devtools. 403s Preparing to unpack .../27-icu-devtools_76.1-1ubuntu2_s390x.deb ... 403s Unpacking icu-devtools (76.1-1ubuntu2) ... 403s Selecting previously unselected package libblas-dev:s390x. 403s Preparing to unpack .../28-libblas-dev_3.12.1-2_s390x.deb ... 403s Unpacking libblas-dev:s390x (3.12.1-2) ... 403s Selecting previously unselected package libbz2-dev:s390x. 403s Preparing to unpack .../29-libbz2-dev_1.0.8-6_s390x.deb ... 403s Unpacking libbz2-dev:s390x (1.0.8-6) ... 403s Selecting previously unselected package libdeflate-dev:s390x. 403s Preparing to unpack .../30-libdeflate-dev_1.23-1_s390x.deb ... 403s Unpacking libdeflate-dev:s390x (1.23-1) ... 403s Selecting previously unselected package libicu-dev:s390x. 403s Preparing to unpack .../31-libicu-dev_76.1-1ubuntu2_s390x.deb ... 403s Unpacking libicu-dev:s390x (76.1-1ubuntu2) ... 403s Selecting previously unselected package libjpeg-turbo8-dev:s390x. 403s Preparing to unpack .../32-libjpeg-turbo8-dev_2.1.5-3ubuntu2_s390x.deb ... 403s Unpacking libjpeg-turbo8-dev:s390x (2.1.5-3ubuntu2) ... 403s Selecting previously unselected package libjpeg8-dev:s390x. 403s Preparing to unpack .../33-libjpeg8-dev_8c-2ubuntu11_s390x.deb ... 403s Unpacking libjpeg8-dev:s390x (8c-2ubuntu11) ... 403s Selecting previously unselected package libjpeg-dev:s390x. 403s Preparing to unpack .../34-libjpeg-dev_8c-2ubuntu11_s390x.deb ... 403s Unpacking libjpeg-dev:s390x (8c-2ubuntu11) ... 403s Selecting previously unselected package liblapack-dev:s390x. 403s Preparing to unpack .../35-liblapack-dev_3.12.1-2_s390x.deb ... 403s Unpacking liblapack-dev:s390x (3.12.1-2) ... 404s Selecting previously unselected package libncurses-dev:s390x. 404s Preparing to unpack .../36-libncurses-dev_6.5+20250216-2_s390x.deb ... 404s Unpacking libncurses-dev:s390x (6.5+20250216-2) ... 404s Selecting previously unselected package libpcre2-16-0:s390x. 404s Preparing to unpack .../37-libpcre2-16-0_10.45-1_s390x.deb ... 404s Unpacking libpcre2-16-0:s390x (10.45-1) ... 404s Selecting previously unselected package libpcre2-32-0:s390x. 404s Preparing to unpack .../38-libpcre2-32-0_10.45-1_s390x.deb ... 404s Unpacking libpcre2-32-0:s390x (10.45-1) ... 404s Selecting previously unselected package libpcre2-posix3:s390x. 404s Preparing to unpack .../39-libpcre2-posix3_10.45-1_s390x.deb ... 404s Unpacking libpcre2-posix3:s390x (10.45-1) ... 404s Selecting previously unselected package libpcre2-dev:s390x. 404s Preparing to unpack .../40-libpcre2-dev_10.45-1_s390x.deb ... 404s Unpacking libpcre2-dev:s390x (10.45-1) ... 404s Selecting previously unselected package libpkgconf3:s390x. 404s Preparing to unpack .../41-libpkgconf3_1.8.1-4_s390x.deb ... 404s Unpacking libpkgconf3:s390x (1.8.1-4) ... 404s Selecting previously unselected package zlib1g-dev:s390x. 404s Preparing to unpack .../42-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_s390x.deb ... 404s Unpacking zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 404s Selecting previously unselected package libpng-dev:s390x. 404s Preparing to unpack .../43-libpng-dev_1.6.47-1_s390x.deb ... 404s Unpacking libpng-dev:s390x (1.6.47-1) ... 404s Selecting previously unselected package libreadline-dev:s390x. 404s Preparing to unpack .../44-libreadline-dev_8.2-6_s390x.deb ... 404s Unpacking libreadline-dev:s390x (8.2-6) ... 404s Selecting previously unselected package liblzma-dev:s390x. 404s Preparing to unpack .../45-liblzma-dev_5.6.4-1_s390x.deb ... 404s Unpacking liblzma-dev:s390x (5.6.4-1) ... 404s Selecting previously unselected package pkgconf-bin. 404s Preparing to unpack .../46-pkgconf-bin_1.8.1-4_s390x.deb ... 404s Unpacking pkgconf-bin (1.8.1-4) ... 404s Selecting previously unselected package pkgconf:s390x. 404s Preparing to unpack .../47-pkgconf_1.8.1-4_s390x.deb ... 404s Unpacking pkgconf:s390x (1.8.1-4) ... 404s Selecting previously unselected package libtirpc-dev:s390x. 404s Preparing to unpack .../48-libtirpc-dev_1.3.4+ds-1.3_s390x.deb ... 404s Unpacking libtirpc-dev:s390x (1.3.4+ds-1.3) ... 404s Selecting previously unselected package r-base-dev. 404s Preparing to unpack .../49-r-base-dev_4.4.3-1_all.deb ... 404s Unpacking r-base-dev (4.4.3-1) ... 404s Selecting previously unselected package pkg-r-autopkgtest. 404s Preparing to unpack .../50-pkg-r-autopkgtest_20231212ubuntu1_all.deb ... 404s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ... 404s Setting up libjpeg-turbo8-dev:s390x (2.1.5-3ubuntu2) ... 404s Setting up libncurses-dev:s390x (6.5+20250216-2) ... 404s Setting up libreadline-dev:s390x (8.2-6) ... 404s Setting up libpcre2-16-0:s390x (10.45-1) ... 404s Setting up libpcre2-32-0:s390x (10.45-1) ... 404s Setting up libtirpc-dev:s390x (1.3.4+ds-1.3) ... 404s Setting up libpkgconf3:s390x (1.8.1-4) ... 404s Setting up libmpc3:s390x (1.3.1-1build2) ... 404s Setting up icu-devtools (76.1-1ubuntu2) ... 404s Setting up pkgconf-bin (1.8.1-4) ... 404s Setting up liblzma-dev:s390x (5.6.4-1) ... 404s Setting up libubsan1:s390x (15-20250222-0ubuntu1) ... 404s Setting up zlib1g-dev:s390x (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 404s Setting up libpcre2-posix3:s390x (10.45-1) ... 404s Setting up libasan8:s390x (15-20250222-0ubuntu1) ... 404s Setting up libjpeg8-dev:s390x (8c-2ubuntu11) ... 404s Setting up libisl23:s390x (0.27-1) ... 404s Setting up libdeflate-dev:s390x (1.23-1) ... 404s Setting up libicu-dev:s390x (76.1-1ubuntu2) ... 404s Setting up libcc1-0:s390x (15-20250222-0ubuntu1) ... 404s Setting up libblas-dev:s390x (3.12.1-2) ... 404s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so to provide /usr/lib/s390x-linux-gnu/libblas.so (libblas.so-s390x-linux-gnu) in auto mode 404s Setting up dctrl-tools (2.24-3build3) ... 404s Setting up libitm1:s390x (15-20250222-0ubuntu1) ... 404s Setting up libbz2-dev:s390x (1.0.8-6) ... 404s Setting up libpcre2-dev:s390x (10.45-1) ... 404s Setting up libpng-dev:s390x (1.6.47-1) ... 404s Setting up libjpeg-dev:s390x (8c-2ubuntu11) ... 404s Setting up pkgconf:s390x (1.8.1-4) ... 404s Setting up liblapack-dev:s390x (3.12.1-2) ... 404s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so to provide /usr/lib/s390x-linux-gnu/liblapack.so (liblapack.so-s390x-linux-gnu) in auto mode 404s Setting up cpp-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 404s Setting up cpp-14 (14.2.0-17ubuntu3) ... 404s Setting up libgcc-14-dev:s390x (14.2.0-17ubuntu3) ... 404s Setting up libstdc++-14-dev:s390x (14.2.0-17ubuntu3) ... 404s Setting up libgfortran-14-dev:s390x (14.2.0-17ubuntu3) ... 404s Setting up cpp-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 404s Setting up gcc-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 404s Setting up gcc-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 404s Setting up g++-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 404s Setting up cpp (4:14.2.0-1ubuntu1) ... 404s Setting up gfortran-14-s390x-linux-gnu (14.2.0-17ubuntu3) ... 404s Setting up g++-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 404s Setting up gcc-14 (14.2.0-17ubuntu3) ... 404s Setting up g++-14 (14.2.0-17ubuntu3) ... 404s Setting up gfortran-14 (14.2.0-17ubuntu3) ... 404s Setting up gfortran-s390x-linux-gnu (4:14.2.0-1ubuntu1) ... 404s Setting up gcc (4:14.2.0-1ubuntu1) ... 404s Setting up g++ (4:14.2.0-1ubuntu1) ... 404s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 404s Setting up build-essential (12.10ubuntu1) ... 404s Setting up gfortran (4:14.2.0-1ubuntu1) ... 404s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode 404s 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 404s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode 404s 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 404s Setting up r-base-dev (4.4.3-1) ... 404s Setting up pkg-r-autopkgtest (20231212ubuntu1) ... 404s Processing triggers for libc-bin (2.41-1ubuntu2) ... 404s Processing triggers for man-db (2.13.0-1) ... 405s Processing triggers for install-info (7.1.1-1) ... 406s autopkgtest [18:06:48]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest 406s autopkgtest [18:06:48]: test pkg-r-autopkgtest: [----------------------- 406s Test: Try to load the R library fansi 406s 406s R version 4.4.3 (2025-02-28) -- "Trophy Case" 406s Copyright (C) 2025 The R Foundation for Statistical Computing 406s Platform: s390x-ibm-linux-gnu 406s 406s R is free software and comes with ABSOLUTELY NO WARRANTY. 406s You are welcome to redistribute it under certain conditions. 406s Type 'license()' or 'licence()' for distribution details. 406s 406s R is a collaborative project with many contributors. 406s Type 'contributors()' for more information and 406s 'citation()' on how to cite R or R packages in publications. 406s 406s Type 'demo()' for some demos, 'help()' for on-line help, or 406s 'help.start()' for an HTML browser interface to help. 406s Type 'q()' to quit R. 406s 406s > library('fansi') 406s > 406s > 406s Other tests are currently unsupported! 406s They will be progressively added. 407s autopkgtest [18:06:49]: test pkg-r-autopkgtest: -----------------------] 407s autopkgtest [18:06:49]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 407s pkg-r-autopkgtest PASS 407s autopkgtest [18:06:49]: @@@@@@@@@@@@@@@@@@@@ summary 407s run-unit-test PASS 407s pkg-r-autopkgtest PASS 425s nova [W] Using flock in prodstack6-s390x 425s Creating nova instance adt-plucky-s390x-r-cran-fansi-20250315-180002-juju-7f2275-prod-proposed-migration-environment-2-b9d8ba2d-4c50-4332-a576-38a22fc9b9d7 from image adt/ubuntu-plucky-s390x-server-20250315.img (UUID 3d3557fa-fd0f-4bba-9b89-8d5964e09f61)... 425s nova [W] Timed out waiting for 9b05f881-7b46-499c-a5c2-d08c30f9efa8 to get deleted.