0s autopkgtest [16:06:23]: starting date and time: 2025-03-15 16:06:23+0000 0s autopkgtest [16:06:23]: git checkout: 325255d2 Merge branch 'pin-any-arch' into 'ubuntu/production' 0s autopkgtest [16:06:23]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.m1685zi4/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_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\n" >> /etc/environment' --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 -- lxd -r lxd-armhf-10.145.243.141 lxd-armhf-10.145.243.141:autopkgtest/ubuntu/plucky/armhf 20s autopkgtest [16:06:43]: testbed dpkg architecture: armhf 22s autopkgtest [16:06:45]: testbed apt version: 2.9.33 26s autopkgtest [16:06:49]: @@@@@@@@@@@@@@@@@@@@ test bed setup 27s autopkgtest [16:06:50]: testbed release detected to be: None 35s autopkgtest [16:06:58]: updating testbed package index (apt update) 37s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [126 kB] 37s Get:2 http://ftpmaster.internal/ubuntu plucky InRelease [257 kB] 38s Get:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease [126 kB] 38s Get:4 http://ftpmaster.internal/ubuntu plucky-security InRelease [126 kB] 38s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.8 kB] 38s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [379 kB] 39s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [99.7 kB] 39s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf Packages [114 kB] 39s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf c-n-f Metadata [1832 B] 39s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/restricted armhf c-n-f Metadata [116 B] 39s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/universe armhf Packages [312 kB] 40s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/universe armhf c-n-f Metadata [11.1 kB] 40s Get:13 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse armhf Packages [3472 B] 40s Get:14 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse armhf c-n-f Metadata [240 B] 40s Get:15 http://ftpmaster.internal/ubuntu plucky/main Sources [1394 kB] 41s Get:16 http://ftpmaster.internal/ubuntu plucky/universe Sources [21.0 MB] 66s Get:17 http://ftpmaster.internal/ubuntu plucky/multiverse Sources [299 kB] 67s Get:18 http://ftpmaster.internal/ubuntu plucky/main armhf Packages [1378 kB] 68s Get:19 http://ftpmaster.internal/ubuntu plucky/main armhf c-n-f Metadata [29.4 kB] 69s Get:20 http://ftpmaster.internal/ubuntu plucky/restricted armhf c-n-f Metadata [108 B] 69s Get:21 http://ftpmaster.internal/ubuntu plucky/universe armhf Packages [15.1 MB] 86s Get:22 http://ftpmaster.internal/ubuntu plucky/multiverse armhf Packages [172 kB] 88s Fetched 41.0 MB in 51s (808 kB/s) 89s Reading package lists... 102s autopkgtest [16:08:05]: upgrading testbed (apt dist-upgrade and autopurge) 104s Reading package lists... 104s Building dependency tree... 104s Reading state information... 105s Calculating upgrade...Starting pkgProblemResolver with broken count: 0 105s Starting 2 pkgProblemResolver with broken count: 0 105s Done 106s Entering ResolveByKeep 106s 106s Calculating upgrade... 107s The following packages will be upgraded: 107s libc-bin libc6 locales pinentry-curses python3-jinja2 sos strace 107s 7 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 107s Need to get 8683 kB of archives. 107s After this operation, 23.6 kB of additional disk space will be used. 107s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf libc6 armhf 2.41-1ubuntu2 [2932 kB] 111s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf libc-bin armhf 2.41-1ubuntu2 [545 kB] 111s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf locales all 2.41-1ubuntu2 [4246 kB] 116s Get:4 http://ftpmaster.internal/ubuntu plucky/main armhf strace armhf 6.13+ds-1ubuntu1 [445 kB] 117s Get:5 http://ftpmaster.internal/ubuntu plucky/main armhf pinentry-curses armhf 1.3.1-2ubuntu3 [40.6 kB] 117s Get:6 http://ftpmaster.internal/ubuntu plucky/main armhf python3-jinja2 all 3.1.5-2ubuntu1 [109 kB] 117s Get:7 http://ftpmaster.internal/ubuntu plucky/main armhf sos all 4.9.0-5 [365 kB] 118s Preconfiguring packages ... 118s Fetched 8683 kB in 11s (801 kB/s) 118s (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 ... 64655 files and directories currently installed.) 118s Preparing to unpack .../libc6_2.41-1ubuntu2_armhf.deb ... 119s Unpacking libc6:armhf (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 119s Setting up libc6:armhf (2.41-1ubuntu2) ... 119s (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 ... 64655 files and directories currently installed.) 119s Preparing to unpack .../libc-bin_2.41-1ubuntu2_armhf.deb ... 119s Unpacking libc-bin (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 119s Setting up libc-bin (2.41-1ubuntu2) ... 119s (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 ... 64655 files and directories currently installed.) 119s Preparing to unpack .../locales_2.41-1ubuntu2_all.deb ... 119s Unpacking locales (2.41-1ubuntu2) over (2.41-1ubuntu1) ... 120s Preparing to unpack .../strace_6.13+ds-1ubuntu1_armhf.deb ... 120s Unpacking strace (6.13+ds-1ubuntu1) over (6.11-0ubuntu1) ... 120s Preparing to unpack .../pinentry-curses_1.3.1-2ubuntu3_armhf.deb ... 120s Unpacking pinentry-curses (1.3.1-2ubuntu3) over (1.3.1-2ubuntu2) ... 120s Preparing to unpack .../python3-jinja2_3.1.5-2ubuntu1_all.deb ... 120s Unpacking python3-jinja2 (3.1.5-2ubuntu1) over (3.1.5-2) ... 120s Preparing to unpack .../archives/sos_4.9.0-5_all.deb ... 120s Unpacking sos (4.9.0-5) over (4.9.0-4) ... 120s Setting up sos (4.9.0-5) ... 121s Setting up pinentry-curses (1.3.1-2ubuntu3) ... 121s Setting up locales (2.41-1ubuntu2) ... 122s Generating locales (this might take a while)... 124s en_US.UTF-8... done 124s Generation complete. 124s Setting up python3-jinja2 (3.1.5-2ubuntu1) ... 124s Setting up strace (6.13+ds-1ubuntu1) ... 124s Processing triggers for man-db (2.13.0-1) ... 126s Processing triggers for systemd (257.3-1ubuntu3) ... 128s Reading package lists... 128s Building dependency tree... 128s Reading state information... 129s Starting pkgProblemResolver with broken count: 0 129s Starting 2 pkgProblemResolver with broken count: 0 129s Done 129s Solving dependencies... 130s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 132s autopkgtest [16:08:35]: rebooting testbed after setup commands that affected boot 171s autopkgtest [16:09:14]: testbed running kernel: Linux 6.8.0-52-generic #53~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jan 15 18:10:51 UTC 2 195s autopkgtest [16:09:38]: @@@@@@@@@@@@@@@@@@@@ apt-source r-cran-fansi 205s Get:1 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (dsc) [2110 B] 205s Get:2 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (tar) [482 kB] 205s Get:3 http://ftpmaster.internal/ubuntu plucky/universe r-cran-fansi 1.0.5-1 (diff) [3068 B] 205s gpgv: Signature made Tue Nov 21 07:15:23 2023 UTC 205s gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1 205s gpgv: issuer "tille@debian.org" 205s gpgv: Can't check signature: No public key 205s dpkg-source: warning: cannot verify inline signature for ./r-cran-fansi_1.0.5-1.dsc: no acceptable signature found 206s autopkgtest [16:09:49]: testing package r-cran-fansi version 1.0.5-1 208s autopkgtest [16:09:51]: build not needed 211s autopkgtest [16:09:54]: test run-unit-test: preparing testbed 213s Reading package lists... 213s Building dependency tree... 213s Reading state information... 213s Starting pkgProblemResolver with broken count: 0 214s Starting 2 pkgProblemResolver with broken count: 0 214s Done 215s The following NEW packages will be installed: 215s fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono 215s fonts-font-awesome fonts-glyphicons-halflings fonts-mathjax 215s javascript-common libblas3 libcairo2 libdatrie1 libdeflate0 libfontconfig1 215s libfreetype6 libgfortran5 libgomp1 libgraphite2-3 libharfbuzz0b libice6 215s libjbig0 libjpeg-turbo8 libjpeg8 libjs-bootstrap libjs-bootstrap4 libjs-d3 215s libjs-es5-shim libjs-highlight.js libjs-jquery libjs-jquery-datatables 215s libjs-jquery-selectize.js libjs-jquery-ui libjs-json libjs-mathjax 215s libjs-microplugin.js libjs-modernizr libjs-popper.js libjs-prettify 215s libjs-sifter.js libjs-twitter-bootstrap-datepicker liblapack3 liblerc4 215s liblua5.4-0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 215s libpaper-utils libpaper2 libpixman-1-0 libsharpyuv0 libsm6 libtcl8.6 215s libthai-data libthai0 libtiff6 libtk8.6 libwebp7 libxcb-render0 libxcb-shm0 215s libxft2 libxrender1 libxss1 libxt6t64 littler node-bootstrap-sass 215s node-html5shiv node-normalize.css pandoc pandoc-data r-base-core 215s r-cran-base64enc r-cran-bslib r-cran-cachem r-cran-cli r-cran-commonmark 215s r-cran-crayon r-cran-diffobj r-cran-digest r-cran-evaluate r-cran-fansi 215s r-cran-fastmap r-cran-fontawesome r-cran-fs r-cran-glue r-cran-highr 215s r-cran-htmltools r-cran-httpuv r-cran-jquerylib r-cran-jsonlite r-cran-knitr 215s r-cran-later r-cran-lifecycle r-cran-littler r-cran-magrittr r-cran-memoise 215s r-cran-mime r-cran-pkgkitten r-cran-promises r-cran-r6 r-cran-rappdirs 215s r-cran-rcpp r-cran-rlang r-cran-rmarkdown r-cran-sass r-cran-shiny 215s r-cran-sourcetools r-cran-tinytex r-cran-unitizer r-cran-withr r-cran-xfun 215s r-cran-xtable r-cran-yaml unzip x11-common xdg-utils zip 215s 0 upgraded, 115 newly installed, 0 to remove and 0 not upgraded. 215s Need to get 111 MB of archives. 215s After this operation, 438 MB of additional disk space will be used. 215s Get:1 http://ftpmaster.internal/ubuntu plucky/main armhf libfreetype6 armhf 2.13.3+dfsg-1 [330 kB] 215s Get:2 http://ftpmaster.internal/ubuntu plucky/main armhf fonts-dejavu-mono all 2.37-8 [502 kB] 216s Get:3 http://ftpmaster.internal/ubuntu plucky/main armhf fonts-dejavu-core all 2.37-8 [835 kB] 217s Get:4 http://ftpmaster.internal/ubuntu plucky/main armhf fontconfig-config armhf 2.15.0-2ubuntu1 [37.5 kB] 217s Get:5 http://ftpmaster.internal/ubuntu plucky/main armhf libfontconfig1 armhf 2.15.0-2ubuntu1 [114 kB] 217s Get:6 http://ftpmaster.internal/ubuntu plucky/main armhf fontconfig armhf 2.15.0-2ubuntu1 [190 kB] 218s Get:7 http://ftpmaster.internal/ubuntu plucky/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [516 kB] 218s Get:8 http://ftpmaster.internal/ubuntu plucky/universe armhf fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-3 [118 kB] 219s Get:9 http://ftpmaster.internal/ubuntu plucky/main armhf fonts-mathjax all 2.7.9+dfsg-1 [2208 kB] 222s Get:10 http://ftpmaster.internal/ubuntu plucky/main armhf javascript-common all 12 [5216 B] 222s Get:11 http://ftpmaster.internal/ubuntu plucky/main armhf libblas3 armhf 3.12.1-2 [132 kB] 222s Get:12 http://ftpmaster.internal/ubuntu plucky/main armhf libpixman-1-0 armhf 0.44.0-3 [183 kB] 222s Get:13 http://ftpmaster.internal/ubuntu plucky/main armhf libxcb-render0 armhf 1.17.0-2 [15.3 kB] 222s Get:14 http://ftpmaster.internal/ubuntu plucky/main armhf libxcb-shm0 armhf 1.17.0-2 [5774 B] 222s Get:15 http://ftpmaster.internal/ubuntu plucky/main armhf libxrender1 armhf 1:0.9.10-1.1build1 [16.0 kB] 222s Get:16 http://ftpmaster.internal/ubuntu plucky/main armhf libcairo2 armhf 1.18.2-2 [484 kB] 223s Get:17 http://ftpmaster.internal/ubuntu plucky/main armhf libdatrie1 armhf 0.2.13-3build1 [15.7 kB] 223s Get:18 http://ftpmaster.internal/ubuntu plucky/main armhf libdeflate0 armhf 1.23-1 [38.5 kB] 223s Get:19 http://ftpmaster.internal/ubuntu plucky/main armhf libgfortran5 armhf 15-20250222-0ubuntu1 [330 kB] 223s Get:20 http://ftpmaster.internal/ubuntu plucky/main armhf libgomp1 armhf 15-20250222-0ubuntu1 [128 kB] 223s Get:21 http://ftpmaster.internal/ubuntu plucky/main armhf libgraphite2-3 armhf 1.3.14-2ubuntu1 [64.8 kB] 223s Get:22 http://ftpmaster.internal/ubuntu plucky/main armhf libharfbuzz0b armhf 10.2.0-1 [464 kB] 224s Get:23 http://ftpmaster.internal/ubuntu plucky/main armhf x11-common all 1:7.7+23ubuntu3 [21.7 kB] 224s Get:24 http://ftpmaster.internal/ubuntu plucky/main armhf libice6 armhf 2:1.1.1-1 [36.5 kB] 224s Get:25 http://ftpmaster.internal/ubuntu plucky/main armhf libjpeg-turbo8 armhf 2.1.5-3ubuntu2 [127 kB] 224s Get:26 http://ftpmaster.internal/ubuntu plucky/main armhf libjpeg8 armhf 8c-2ubuntu11 [2148 B] 224s Get:27 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-bootstrap all 3.4.1+dfsg-3 [129 kB] 224s Get:28 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 224s Get:29 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-bootstrap4 all 4.6.1+dfsg1-4 [537 kB] 225s Get:30 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-d3 all 3.5.17-4 [132 kB] 225s Get:31 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-es5-shim all 4.6.7-2 [39.8 kB] 225s Get:32 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 226s Get:33 http://ftpmaster.internal/ubuntu plucky/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 226s Get:34 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-jquery-datatables all 1.11.5+dfsg-2 [146 kB] 226s Get:35 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-sifter.js all 0.6.0+dfsg-3 [12.6 kB] 226s Get:36 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-microplugin.js all 0.0.3+dfsg-1.1 [3712 B] 226s Get:37 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-jquery-selectize.js all 0.12.6+dfsg-1.1 [51.0 kB] 226s Get:38 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-jquery-ui all 1.13.2+dfsg-1 [252 kB] 227s Get:39 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-json all 0~20221030+~1.0.8-1 [20.6 kB] 227s Get:40 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-prettify all 2015.12.04+dfsg-1.1 [39.3 kB] 227s Get:41 http://ftpmaster.internal/ubuntu plucky/main armhf liblapack3 armhf 3.12.1-2 [2091 kB] 229s Get:42 http://ftpmaster.internal/ubuntu plucky/main armhf liblerc4 armhf 4.0.0+ds-5ubuntu1 [160 kB] 230s Get:43 http://ftpmaster.internal/ubuntu plucky/main armhf liblua5.4-0 armhf 5.4.7-1 [134 kB] 230s Get:44 http://ftpmaster.internal/ubuntu plucky/main armhf libthai-data all 0.1.29-2build1 [158 kB] 230s Get:45 http://ftpmaster.internal/ubuntu plucky/main armhf libthai0 armhf 0.1.29-2build1 [15.2 kB] 230s Get:46 http://ftpmaster.internal/ubuntu plucky/main armhf libpango-1.0-0 armhf 1.56.2-1 [216 kB] 230s Get:47 http://ftpmaster.internal/ubuntu plucky/main armhf libpangoft2-1.0-0 armhf 1.56.2-1 [43.6 kB] 230s Get:48 http://ftpmaster.internal/ubuntu plucky/main armhf libpangocairo-1.0-0 armhf 1.56.2-1 [25.1 kB] 230s Get:49 http://ftpmaster.internal/ubuntu plucky/main armhf libpaper2 armhf 2.2.5-0.3 [16.3 kB] 230s Get:50 http://ftpmaster.internal/ubuntu plucky/main armhf libpaper-utils armhf 2.2.5-0.3 [14.2 kB] 230s Get:51 http://ftpmaster.internal/ubuntu plucky/main armhf libsharpyuv0 armhf 1.5.0-0.1 [16.4 kB] 230s Get:52 http://ftpmaster.internal/ubuntu plucky/main armhf libsm6 armhf 2:1.2.4-1 [15.1 kB] 230s Get:53 http://ftpmaster.internal/ubuntu plucky/main armhf libtcl8.6 armhf 8.6.16+dfsg-1 [909 kB] 232s Get:54 http://ftpmaster.internal/ubuntu plucky/main armhf libjbig0 armhf 2.1-6.1ubuntu2 [24.9 kB] 232s Get:55 http://ftpmaster.internal/ubuntu plucky/main armhf libwebp7 armhf 1.5.0-0.1 [188 kB] 232s Get:56 http://ftpmaster.internal/ubuntu plucky/main armhf libtiff6 armhf 4.5.1+git230720-4ubuntu4 [179 kB] 232s Get:57 http://ftpmaster.internal/ubuntu plucky/main armhf libxft2 armhf 2.3.6-1build1 [37.4 kB] 232s Get:58 http://ftpmaster.internal/ubuntu plucky/main armhf libxss1 armhf 1:1.2.3-1build3 [6500 B] 232s Get:59 http://ftpmaster.internal/ubuntu plucky/main armhf libtk8.6 armhf 8.6.16-1 [686 kB] 233s Get:60 http://ftpmaster.internal/ubuntu plucky/main armhf libxt6t64 armhf 1:1.2.1-1.2build1 [145 kB] 233s Get:61 http://ftpmaster.internal/ubuntu plucky/main armhf zip armhf 3.0-14ubuntu2 [164 kB] 234s Get:62 http://ftpmaster.internal/ubuntu plucky/main armhf unzip armhf 6.0-28ubuntu6 [167 kB] 234s Get:63 http://ftpmaster.internal/ubuntu plucky/main armhf xdg-utils all 1.2.1-2ubuntu1 [66.0 kB] 234s Get:64 http://ftpmaster.internal/ubuntu plucky/universe armhf r-base-core armhf 4.4.3-1 [28.2 MB] 269s Get:65 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-littler armhf 0.3.20-2 [90.9 kB] 269s Get:66 http://ftpmaster.internal/ubuntu plucky/universe armhf littler all 0.3.20-2 [2554 B] 269s Get:67 http://ftpmaster.internal/ubuntu plucky/universe armhf node-bootstrap-sass all 3.4.3-2 [187 kB] 269s Get:68 http://ftpmaster.internal/ubuntu plucky/universe armhf node-html5shiv all 3.7.3+dfsg-5 [13.5 kB] 269s Get:69 http://ftpmaster.internal/ubuntu plucky/universe armhf node-normalize.css all 8.0.1-5 [10.8 kB] 269s Get:70 http://ftpmaster.internal/ubuntu plucky/universe armhf pandoc-data all 3.1.11.1-3build1 [78.8 kB] 269s Get:71 http://ftpmaster.internal/ubuntu plucky/universe armhf pandoc armhf 3.1.11.1+ds-2 [36.7 MB] 315s Get:72 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-base64enc armhf 0.1-3-3 [27.3 kB] 315s Get:73 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-rlang armhf 1.1.5-1 [1701 kB] 317s Get:74 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-fastmap armhf 1.2.0-1 [69.8 kB] 317s Get:75 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-cachem armhf 1.1.0-1 [73.8 kB] 317s Get:76 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-digest armhf 0.6.37-1 [207 kB] 317s Get:77 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-htmltools armhf 0.5.8.1-1 [372 kB] 318s Get:78 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-jquerylib all 0.1.4+dfsg-4 [13.5 kB] 318s Get:79 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-jsonlite armhf 1.9.1+dfsg-1 [440 kB] 318s Get:80 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-cli armhf 3.6.4-1 [1377 kB] 320s Get:81 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-glue armhf 1.8.0-1 [162 kB] 320s Get:82 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-lifecycle all 1.0.4+dfsg-1 [110 kB] 321s Get:83 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-memoise all 2.0.1-1 [53.9 kB] 321s Get:84 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-mime armhf 0.12-2 [35.5 kB] 321s Get:85 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-fs armhf 1.6.5+dfsg-1 [242 kB] 321s Get:86 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-r6 all 2.6.1-1 [101 kB] 321s Get:87 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-rappdirs armhf 0.3.3-1 [47.4 kB] 321s Get:88 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-sass armhf 0.4.9+dfsg-1 [926 kB] 322s Get:89 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-bslib all 0.8.0+dfsg-1 [4294 kB] 327s Get:90 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-commonmark armhf 1.9.2-2 [112 kB] 327s Get:91 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-crayon all 1.5.3-1 [165 kB] 327s Get:92 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-diffobj armhf 0.3.5-1 [1115 kB] 329s Get:93 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-evaluate all 1.0.3-1 [114 kB] 329s Get:94 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-fansi armhf 1.0.5-1 [611 kB] 330s Get:95 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-fontawesome all 0.5.3-1 [1331 kB] 331s Get:96 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-xfun armhf 0.51+dfsg-1 [573 kB] 332s Get:97 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-highr all 0.11+dfsg-1 [38.5 kB] 332s Get:98 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-pkgkitten all 0.2.4-1 [27.2 kB] 332s Get:99 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-rcpp armhf 1.0.14-1 [1976 kB] 335s Get:100 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-later armhf 1.4.1+dfsg-1 [141 kB] 335s Get:101 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-magrittr armhf 2.0.3-1 [154 kB] 335s Get:102 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-promises armhf 1.3.2+dfsg-1 [288 kB] 335s Get:103 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-httpuv armhf 1.6.15+dfsg-1 [480 kB] 336s Get:104 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-yaml armhf 2.3.10-1 [101 kB] 336s Get:105 http://ftpmaster.internal/ubuntu plucky/main armhf libjs-mathjax all 2.7.9+dfsg-1 [5665 kB] 343s Get:106 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-knitr all 1.49+dfsg-1 [859 kB] 344s Get:107 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-tinytex all 0.56-1 [148 kB] 344s Get:108 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-modernizr all 3.13.0-0.1 [101 kB] 345s Get:109 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-xtable all 1:1.8-4-2 [689 kB] 345s Get:110 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-sourcetools armhf 0.1.7-1-1 [45.7 kB] 345s Get:111 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-withr all 3.0.2+dfsg-1 [214 kB] 346s Get:112 http://ftpmaster.internal/ubuntu plucky/universe armhf libjs-twitter-bootstrap-datepicker all 1.3.1+dfsg1-4.1 [28.5 kB] 346s Get:113 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-shiny all 1.10.0+dfsg-2 [3124 kB] 350s Get:114 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-rmarkdown all 2.29+dfsg-1 [1501 kB] 352s Get:115 http://ftpmaster.internal/ubuntu plucky/universe armhf r-cran-unitizer all 1.4.21-1 [1428 kB] 354s Preconfiguring packages ... 354s Fetched 111 MB in 2min 19s (801 kB/s) 354s Selecting previously unselected package libfreetype6:armhf. 354s (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 ... 64655 files and directories currently installed.) 354s Preparing to unpack .../000-libfreetype6_2.13.3+dfsg-1_armhf.deb ... 354s Unpacking libfreetype6:armhf (2.13.3+dfsg-1) ... 354s Selecting previously unselected package fonts-dejavu-mono. 354s Preparing to unpack .../001-fonts-dejavu-mono_2.37-8_all.deb ... 354s Unpacking fonts-dejavu-mono (2.37-8) ... 354s Selecting previously unselected package fonts-dejavu-core. 354s Preparing to unpack .../002-fonts-dejavu-core_2.37-8_all.deb ... 354s Unpacking fonts-dejavu-core (2.37-8) ... 354s Selecting previously unselected package fontconfig-config. 354s Preparing to unpack .../003-fontconfig-config_2.15.0-2ubuntu1_armhf.deb ... 354s Unpacking fontconfig-config (2.15.0-2ubuntu1) ... 354s Selecting previously unselected package libfontconfig1:armhf. 354s Preparing to unpack .../004-libfontconfig1_2.15.0-2ubuntu1_armhf.deb ... 354s Unpacking libfontconfig1:armhf (2.15.0-2ubuntu1) ... 354s Selecting previously unselected package fontconfig. 354s Preparing to unpack .../005-fontconfig_2.15.0-2ubuntu1_armhf.deb ... 354s Unpacking fontconfig (2.15.0-2ubuntu1) ... 354s Selecting previously unselected package fonts-font-awesome. 354s Preparing to unpack .../006-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... 354s Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 355s Selecting previously unselected package fonts-glyphicons-halflings. 355s Preparing to unpack .../007-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-3_all.deb ... 355s Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 355s Selecting previously unselected package fonts-mathjax. 355s Preparing to unpack .../008-fonts-mathjax_2.7.9+dfsg-1_all.deb ... 355s Unpacking fonts-mathjax (2.7.9+dfsg-1) ... 355s Selecting previously unselected package javascript-common. 355s Preparing to unpack .../009-javascript-common_12_all.deb ... 355s Unpacking javascript-common (12) ... 355s Selecting previously unselected package libblas3:armhf. 355s Preparing to unpack .../010-libblas3_3.12.1-2_armhf.deb ... 355s Unpacking libblas3:armhf (3.12.1-2) ... 355s Selecting previously unselected package libpixman-1-0:armhf. 355s Preparing to unpack .../011-libpixman-1-0_0.44.0-3_armhf.deb ... 355s Unpacking libpixman-1-0:armhf (0.44.0-3) ... 355s Selecting previously unselected package libxcb-render0:armhf. 355s Preparing to unpack .../012-libxcb-render0_1.17.0-2_armhf.deb ... 355s Unpacking libxcb-render0:armhf (1.17.0-2) ... 355s Selecting previously unselected package libxcb-shm0:armhf. 355s Preparing to unpack .../013-libxcb-shm0_1.17.0-2_armhf.deb ... 355s Unpacking libxcb-shm0:armhf (1.17.0-2) ... 355s Selecting previously unselected package libxrender1:armhf. 355s Preparing to unpack .../014-libxrender1_1%3a0.9.10-1.1build1_armhf.deb ... 355s Unpacking libxrender1:armhf (1:0.9.10-1.1build1) ... 355s Selecting previously unselected package libcairo2:armhf. 355s Preparing to unpack .../015-libcairo2_1.18.2-2_armhf.deb ... 355s Unpacking libcairo2:armhf (1.18.2-2) ... 355s Selecting previously unselected package libdatrie1:armhf. 355s Preparing to unpack .../016-libdatrie1_0.2.13-3build1_armhf.deb ... 355s Unpacking libdatrie1:armhf (0.2.13-3build1) ... 355s Selecting previously unselected package libdeflate0:armhf. 355s Preparing to unpack .../017-libdeflate0_1.23-1_armhf.deb ... 355s Unpacking libdeflate0:armhf (1.23-1) ... 355s Selecting previously unselected package libgfortran5:armhf. 355s Preparing to unpack .../018-libgfortran5_15-20250222-0ubuntu1_armhf.deb ... 355s Unpacking libgfortran5:armhf (15-20250222-0ubuntu1) ... 355s Selecting previously unselected package libgomp1:armhf. 355s Preparing to unpack .../019-libgomp1_15-20250222-0ubuntu1_armhf.deb ... 355s Unpacking libgomp1:armhf (15-20250222-0ubuntu1) ... 355s Selecting previously unselected package libgraphite2-3:armhf. 355s Preparing to unpack .../020-libgraphite2-3_1.3.14-2ubuntu1_armhf.deb ... 355s Unpacking libgraphite2-3:armhf (1.3.14-2ubuntu1) ... 355s Selecting previously unselected package libharfbuzz0b:armhf. 355s Preparing to unpack .../021-libharfbuzz0b_10.2.0-1_armhf.deb ... 355s Unpacking libharfbuzz0b:armhf (10.2.0-1) ... 355s Selecting previously unselected package x11-common. 355s Preparing to unpack .../022-x11-common_1%3a7.7+23ubuntu3_all.deb ... 355s Unpacking x11-common (1:7.7+23ubuntu3) ... 355s Selecting previously unselected package libice6:armhf. 355s Preparing to unpack .../023-libice6_2%3a1.1.1-1_armhf.deb ... 355s Unpacking libice6:armhf (2:1.1.1-1) ... 355s Selecting previously unselected package libjpeg-turbo8:armhf. 355s Preparing to unpack .../024-libjpeg-turbo8_2.1.5-3ubuntu2_armhf.deb ... 355s Unpacking libjpeg-turbo8:armhf (2.1.5-3ubuntu2) ... 355s Selecting previously unselected package libjpeg8:armhf. 355s Preparing to unpack .../025-libjpeg8_8c-2ubuntu11_armhf.deb ... 355s Unpacking libjpeg8:armhf (8c-2ubuntu11) ... 355s Selecting previously unselected package libjs-bootstrap. 355s Preparing to unpack .../026-libjs-bootstrap_3.4.1+dfsg-3_all.deb ... 355s Unpacking libjs-bootstrap (3.4.1+dfsg-3) ... 355s Selecting previously unselected package libjs-popper.js. 355s Preparing to unpack .../027-libjs-popper.js_1.16.1+ds-6_all.deb ... 355s Unpacking libjs-popper.js (1.16.1+ds-6) ... 355s Selecting previously unselected package libjs-bootstrap4. 355s Preparing to unpack .../028-libjs-bootstrap4_4.6.1+dfsg1-4_all.deb ... 356s Unpacking libjs-bootstrap4 (4.6.1+dfsg1-4) ... 356s Selecting previously unselected package libjs-d3. 356s Preparing to unpack .../029-libjs-d3_3.5.17-4_all.deb ... 356s Unpacking libjs-d3 (3.5.17-4) ... 356s Selecting previously unselected package libjs-es5-shim. 356s Preparing to unpack .../030-libjs-es5-shim_4.6.7-2_all.deb ... 356s Unpacking libjs-es5-shim (4.6.7-2) ... 356s Selecting previously unselected package libjs-highlight.js. 356s Preparing to unpack .../031-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 356s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 356s Selecting previously unselected package libjs-jquery. 356s Preparing to unpack .../032-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 356s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 356s Selecting previously unselected package libjs-jquery-datatables. 356s Preparing to unpack .../033-libjs-jquery-datatables_1.11.5+dfsg-2_all.deb ... 356s Unpacking libjs-jquery-datatables (1.11.5+dfsg-2) ... 356s Selecting previously unselected package libjs-sifter.js. 356s Preparing to unpack .../034-libjs-sifter.js_0.6.0+dfsg-3_all.deb ... 356s Unpacking libjs-sifter.js (0.6.0+dfsg-3) ... 356s Selecting previously unselected package libjs-microplugin.js. 356s Preparing to unpack .../035-libjs-microplugin.js_0.0.3+dfsg-1.1_all.deb ... 356s Unpacking libjs-microplugin.js (0.0.3+dfsg-1.1) ... 356s Selecting previously unselected package libjs-jquery-selectize.js. 356s Preparing to unpack .../036-libjs-jquery-selectize.js_0.12.6+dfsg-1.1_all.deb ... 356s Unpacking libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 356s Selecting previously unselected package libjs-jquery-ui. 356s Preparing to unpack .../037-libjs-jquery-ui_1.13.2+dfsg-1_all.deb ... 356s Unpacking libjs-jquery-ui (1.13.2+dfsg-1) ... 356s Selecting previously unselected package libjs-json. 356s Preparing to unpack .../038-libjs-json_0~20221030+~1.0.8-1_all.deb ... 356s Unpacking libjs-json (0~20221030+~1.0.8-1) ... 356s Selecting previously unselected package libjs-prettify. 356s Preparing to unpack .../039-libjs-prettify_2015.12.04+dfsg-1.1_all.deb ... 356s Unpacking libjs-prettify (2015.12.04+dfsg-1.1) ... 356s Selecting previously unselected package liblapack3:armhf. 356s Preparing to unpack .../040-liblapack3_3.12.1-2_armhf.deb ... 356s Unpacking liblapack3:armhf (3.12.1-2) ... 356s Selecting previously unselected package liblerc4:armhf. 356s Preparing to unpack .../041-liblerc4_4.0.0+ds-5ubuntu1_armhf.deb ... 356s Unpacking liblerc4:armhf (4.0.0+ds-5ubuntu1) ... 356s Selecting previously unselected package liblua5.4-0:armhf. 356s Preparing to unpack .../042-liblua5.4-0_5.4.7-1_armhf.deb ... 356s Unpacking liblua5.4-0:armhf (5.4.7-1) ... 356s Selecting previously unselected package libthai-data. 356s Preparing to unpack .../043-libthai-data_0.1.29-2build1_all.deb ... 356s Unpacking libthai-data (0.1.29-2build1) ... 356s Selecting previously unselected package libthai0:armhf. 356s Preparing to unpack .../044-libthai0_0.1.29-2build1_armhf.deb ... 356s Unpacking libthai0:armhf (0.1.29-2build1) ... 356s Selecting previously unselected package libpango-1.0-0:armhf. 357s Preparing to unpack .../045-libpango-1.0-0_1.56.2-1_armhf.deb ... 357s Unpacking libpango-1.0-0:armhf (1.56.2-1) ... 357s Selecting previously unselected package libpangoft2-1.0-0:armhf. 357s Preparing to unpack .../046-libpangoft2-1.0-0_1.56.2-1_armhf.deb ... 357s Unpacking libpangoft2-1.0-0:armhf (1.56.2-1) ... 357s Selecting previously unselected package libpangocairo-1.0-0:armhf. 357s Preparing to unpack .../047-libpangocairo-1.0-0_1.56.2-1_armhf.deb ... 357s Unpacking libpangocairo-1.0-0:armhf (1.56.2-1) ... 357s Selecting previously unselected package libpaper2:armhf. 357s Preparing to unpack .../048-libpaper2_2.2.5-0.3_armhf.deb ... 357s Unpacking libpaper2:armhf (2.2.5-0.3) ... 357s Selecting previously unselected package libpaper-utils. 357s Preparing to unpack .../049-libpaper-utils_2.2.5-0.3_armhf.deb ... 357s Unpacking libpaper-utils (2.2.5-0.3) ... 357s Selecting previously unselected package libsharpyuv0:armhf. 357s Preparing to unpack .../050-libsharpyuv0_1.5.0-0.1_armhf.deb ... 357s Unpacking libsharpyuv0:armhf (1.5.0-0.1) ... 357s Selecting previously unselected package libsm6:armhf. 357s Preparing to unpack .../051-libsm6_2%3a1.2.4-1_armhf.deb ... 357s Unpacking libsm6:armhf (2:1.2.4-1) ... 357s Selecting previously unselected package libtcl8.6:armhf. 357s Preparing to unpack .../052-libtcl8.6_8.6.16+dfsg-1_armhf.deb ... 357s Unpacking libtcl8.6:armhf (8.6.16+dfsg-1) ... 357s Selecting previously unselected package libjbig0:armhf. 357s Preparing to unpack .../053-libjbig0_2.1-6.1ubuntu2_armhf.deb ... 357s Unpacking libjbig0:armhf (2.1-6.1ubuntu2) ... 357s Selecting previously unselected package libwebp7:armhf. 357s Preparing to unpack .../054-libwebp7_1.5.0-0.1_armhf.deb ... 357s Unpacking libwebp7:armhf (1.5.0-0.1) ... 357s Selecting previously unselected package libtiff6:armhf. 357s Preparing to unpack .../055-libtiff6_4.5.1+git230720-4ubuntu4_armhf.deb ... 357s Unpacking libtiff6:armhf (4.5.1+git230720-4ubuntu4) ... 357s Selecting previously unselected package libxft2:armhf. 357s Preparing to unpack .../056-libxft2_2.3.6-1build1_armhf.deb ... 357s Unpacking libxft2:armhf (2.3.6-1build1) ... 357s Selecting previously unselected package libxss1:armhf. 357s Preparing to unpack .../057-libxss1_1%3a1.2.3-1build3_armhf.deb ... 357s Unpacking libxss1:armhf (1:1.2.3-1build3) ... 357s Selecting previously unselected package libtk8.6:armhf. 357s Preparing to unpack .../058-libtk8.6_8.6.16-1_armhf.deb ... 357s Unpacking libtk8.6:armhf (8.6.16-1) ... 357s Selecting previously unselected package libxt6t64:armhf. 357s Preparing to unpack .../059-libxt6t64_1%3a1.2.1-1.2build1_armhf.deb ... 357s Unpacking libxt6t64:armhf (1:1.2.1-1.2build1) ... 357s Selecting previously unselected package zip. 357s Preparing to unpack .../060-zip_3.0-14ubuntu2_armhf.deb ... 357s Unpacking zip (3.0-14ubuntu2) ... 357s Selecting previously unselected package unzip. 357s Preparing to unpack .../061-unzip_6.0-28ubuntu6_armhf.deb ... 357s Unpacking unzip (6.0-28ubuntu6) ... 357s Selecting previously unselected package xdg-utils. 357s Preparing to unpack .../062-xdg-utils_1.2.1-2ubuntu1_all.deb ... 357s Unpacking xdg-utils (1.2.1-2ubuntu1) ... 357s Selecting previously unselected package r-base-core. 357s Preparing to unpack .../063-r-base-core_4.4.3-1_armhf.deb ... 357s Unpacking r-base-core (4.4.3-1) ... 358s Selecting previously unselected package r-cran-littler. 358s Preparing to unpack .../064-r-cran-littler_0.3.20-2_armhf.deb ... 358s Unpacking r-cran-littler (0.3.20-2) ... 358s Selecting previously unselected package littler. 358s Preparing to unpack .../065-littler_0.3.20-2_all.deb ... 358s Unpacking littler (0.3.20-2) ... 358s Selecting previously unselected package node-bootstrap-sass. 358s Preparing to unpack .../066-node-bootstrap-sass_3.4.3-2_all.deb ... 358s Unpacking node-bootstrap-sass (3.4.3-2) ... 358s Selecting previously unselected package node-html5shiv. 358s Preparing to unpack .../067-node-html5shiv_3.7.3+dfsg-5_all.deb ... 358s Unpacking node-html5shiv (3.7.3+dfsg-5) ... 358s Selecting previously unselected package node-normalize.css. 358s Preparing to unpack .../068-node-normalize.css_8.0.1-5_all.deb ... 358s Unpacking node-normalize.css (8.0.1-5) ... 358s Selecting previously unselected package pandoc-data. 358s Preparing to unpack .../069-pandoc-data_3.1.11.1-3build1_all.deb ... 358s Unpacking pandoc-data (3.1.11.1-3build1) ... 358s Selecting previously unselected package pandoc. 358s Preparing to unpack .../070-pandoc_3.1.11.1+ds-2_armhf.deb ... 358s Unpacking pandoc (3.1.11.1+ds-2) ... 359s Selecting previously unselected package r-cran-base64enc. 359s Preparing to unpack .../071-r-cran-base64enc_0.1-3-3_armhf.deb ... 359s Unpacking r-cran-base64enc (0.1-3-3) ... 360s Selecting previously unselected package r-cran-rlang. 360s Preparing to unpack .../072-r-cran-rlang_1.1.5-1_armhf.deb ... 360s Unpacking r-cran-rlang (1.1.5-1) ... 360s Selecting previously unselected package r-cran-fastmap. 360s Preparing to unpack .../073-r-cran-fastmap_1.2.0-1_armhf.deb ... 360s Unpacking r-cran-fastmap (1.2.0-1) ... 360s Selecting previously unselected package r-cran-cachem. 360s Preparing to unpack .../074-r-cran-cachem_1.1.0-1_armhf.deb ... 360s Unpacking r-cran-cachem (1.1.0-1) ... 360s Selecting previously unselected package r-cran-digest. 360s Preparing to unpack .../075-r-cran-digest_0.6.37-1_armhf.deb ... 360s Unpacking r-cran-digest (0.6.37-1) ... 360s Selecting previously unselected package r-cran-htmltools. 360s Preparing to unpack .../076-r-cran-htmltools_0.5.8.1-1_armhf.deb ... 360s Unpacking r-cran-htmltools (0.5.8.1-1) ... 360s Selecting previously unselected package r-cran-jquerylib. 360s Preparing to unpack .../077-r-cran-jquerylib_0.1.4+dfsg-4_all.deb ... 360s Unpacking r-cran-jquerylib (0.1.4+dfsg-4) ... 360s Selecting previously unselected package r-cran-jsonlite. 360s Preparing to unpack .../078-r-cran-jsonlite_1.9.1+dfsg-1_armhf.deb ... 360s Unpacking r-cran-jsonlite (1.9.1+dfsg-1) ... 360s Selecting previously unselected package r-cran-cli. 360s Preparing to unpack .../079-r-cran-cli_3.6.4-1_armhf.deb ... 360s Unpacking r-cran-cli (3.6.4-1) ... 360s Selecting previously unselected package r-cran-glue. 360s Preparing to unpack .../080-r-cran-glue_1.8.0-1_armhf.deb ... 360s Unpacking r-cran-glue (1.8.0-1) ... 360s Selecting previously unselected package r-cran-lifecycle. 360s Preparing to unpack .../081-r-cran-lifecycle_1.0.4+dfsg-1_all.deb ... 360s Unpacking r-cran-lifecycle (1.0.4+dfsg-1) ... 360s Selecting previously unselected package r-cran-memoise. 360s Preparing to unpack .../082-r-cran-memoise_2.0.1-1_all.deb ... 360s Unpacking r-cran-memoise (2.0.1-1) ... 360s Selecting previously unselected package r-cran-mime. 360s Preparing to unpack .../083-r-cran-mime_0.12-2_armhf.deb ... 360s Unpacking r-cran-mime (0.12-2) ... 360s Selecting previously unselected package r-cran-fs. 360s Preparing to unpack .../084-r-cran-fs_1.6.5+dfsg-1_armhf.deb ... 360s Unpacking r-cran-fs (1.6.5+dfsg-1) ... 360s Selecting previously unselected package r-cran-r6. 360s Preparing to unpack .../085-r-cran-r6_2.6.1-1_all.deb ... 360s Unpacking r-cran-r6 (2.6.1-1) ... 360s Selecting previously unselected package r-cran-rappdirs. 360s Preparing to unpack .../086-r-cran-rappdirs_0.3.3-1_armhf.deb ... 360s Unpacking r-cran-rappdirs (0.3.3-1) ... 360s Selecting previously unselected package r-cran-sass. 360s Preparing to unpack .../087-r-cran-sass_0.4.9+dfsg-1_armhf.deb ... 360s Unpacking r-cran-sass (0.4.9+dfsg-1) ... 360s Selecting previously unselected package r-cran-bslib. 360s Preparing to unpack .../088-r-cran-bslib_0.8.0+dfsg-1_all.deb ... 360s Unpacking r-cran-bslib (0.8.0+dfsg-1) ... 361s Selecting previously unselected package r-cran-commonmark. 361s Preparing to unpack .../089-r-cran-commonmark_1.9.2-2_armhf.deb ... 361s Unpacking r-cran-commonmark (1.9.2-2) ... 361s Selecting previously unselected package r-cran-crayon. 361s Preparing to unpack .../090-r-cran-crayon_1.5.3-1_all.deb ... 361s Unpacking r-cran-crayon (1.5.3-1) ... 361s Selecting previously unselected package r-cran-diffobj. 361s Preparing to unpack .../091-r-cran-diffobj_0.3.5-1_armhf.deb ... 361s Unpacking r-cran-diffobj (0.3.5-1) ... 361s Selecting previously unselected package r-cran-evaluate. 361s Preparing to unpack .../092-r-cran-evaluate_1.0.3-1_all.deb ... 361s Unpacking r-cran-evaluate (1.0.3-1) ... 361s Selecting previously unselected package r-cran-fansi. 361s Preparing to unpack .../093-r-cran-fansi_1.0.5-1_armhf.deb ... 361s Unpacking r-cran-fansi (1.0.5-1) ... 361s Selecting previously unselected package r-cran-fontawesome. 361s Preparing to unpack .../094-r-cran-fontawesome_0.5.3-1_all.deb ... 361s Unpacking r-cran-fontawesome (0.5.3-1) ... 361s Selecting previously unselected package r-cran-xfun. 361s Preparing to unpack .../095-r-cran-xfun_0.51+dfsg-1_armhf.deb ... 361s Unpacking r-cran-xfun (0.51+dfsg-1) ... 361s Selecting previously unselected package r-cran-highr. 361s Preparing to unpack .../096-r-cran-highr_0.11+dfsg-1_all.deb ... 361s Unpacking r-cran-highr (0.11+dfsg-1) ... 361s Selecting previously unselected package r-cran-pkgkitten. 361s Preparing to unpack .../097-r-cran-pkgkitten_0.2.4-1_all.deb ... 361s Unpacking r-cran-pkgkitten (0.2.4-1) ... 361s Selecting previously unselected package r-cran-rcpp. 361s Preparing to unpack .../098-r-cran-rcpp_1.0.14-1_armhf.deb ... 361s Unpacking r-cran-rcpp (1.0.14-1) ... 361s Selecting previously unselected package r-cran-later. 361s Preparing to unpack .../099-r-cran-later_1.4.1+dfsg-1_armhf.deb ... 361s Unpacking r-cran-later (1.4.1+dfsg-1) ... 361s Selecting previously unselected package r-cran-magrittr. 361s Preparing to unpack .../100-r-cran-magrittr_2.0.3-1_armhf.deb ... 361s Unpacking r-cran-magrittr (2.0.3-1) ... 361s Selecting previously unselected package r-cran-promises. 361s Preparing to unpack .../101-r-cran-promises_1.3.2+dfsg-1_armhf.deb ... 361s Unpacking r-cran-promises (1.3.2+dfsg-1) ... 362s Selecting previously unselected package r-cran-httpuv. 362s Preparing to unpack .../102-r-cran-httpuv_1.6.15+dfsg-1_armhf.deb ... 362s Unpacking r-cran-httpuv (1.6.15+dfsg-1) ... 362s Selecting previously unselected package r-cran-yaml. 362s Preparing to unpack .../103-r-cran-yaml_2.3.10-1_armhf.deb ... 362s Unpacking r-cran-yaml (2.3.10-1) ... 362s Selecting previously unselected package libjs-mathjax. 362s Preparing to unpack .../104-libjs-mathjax_2.7.9+dfsg-1_all.deb ... 362s Unpacking libjs-mathjax (2.7.9+dfsg-1) ... 362s Selecting previously unselected package r-cran-knitr. 362s Preparing to unpack .../105-r-cran-knitr_1.49+dfsg-1_all.deb ... 362s Unpacking r-cran-knitr (1.49+dfsg-1) ... 362s Selecting previously unselected package r-cran-tinytex. 362s Preparing to unpack .../106-r-cran-tinytex_0.56-1_all.deb ... 362s Unpacking r-cran-tinytex (0.56-1) ... 362s Selecting previously unselected package libjs-modernizr. 362s Preparing to unpack .../107-libjs-modernizr_3.13.0-0.1_all.deb ... 362s Unpacking libjs-modernizr (3.13.0-0.1) ... 362s Selecting previously unselected package r-cran-xtable. 363s Preparing to unpack .../108-r-cran-xtable_1%3a1.8-4-2_all.deb ... 363s Unpacking r-cran-xtable (1:1.8-4-2) ... 363s Selecting previously unselected package r-cran-sourcetools. 363s Preparing to unpack .../109-r-cran-sourcetools_0.1.7-1-1_armhf.deb ... 363s Unpacking r-cran-sourcetools (0.1.7-1-1) ... 363s Selecting previously unselected package r-cran-withr. 363s Preparing to unpack .../110-r-cran-withr_3.0.2+dfsg-1_all.deb ... 363s Unpacking r-cran-withr (3.0.2+dfsg-1) ... 363s Selecting previously unselected package libjs-twitter-bootstrap-datepicker. 363s Preparing to unpack .../111-libjs-twitter-bootstrap-datepicker_1.3.1+dfsg1-4.1_all.deb ... 363s Unpacking libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 363s Selecting previously unselected package r-cran-shiny. 363s Preparing to unpack .../112-r-cran-shiny_1.10.0+dfsg-2_all.deb ... 363s Unpacking r-cran-shiny (1.10.0+dfsg-2) ... 363s Selecting previously unselected package r-cran-rmarkdown. 363s Preparing to unpack .../113-r-cran-rmarkdown_2.29+dfsg-1_all.deb ... 363s Unpacking r-cran-rmarkdown (2.29+dfsg-1) ... 363s Selecting previously unselected package r-cran-unitizer. 363s Preparing to unpack .../114-r-cran-unitizer_1.4.21-1_all.deb ... 363s Unpacking r-cran-unitizer (1.4.21-1) ... 363s Setting up libjs-json (0~20221030+~1.0.8-1) ... 363s Setting up javascript-common (12) ... 363s Setting up libgraphite2-3:armhf (1.3.14-2ubuntu1) ... 363s Setting up libpixman-1-0:armhf (0.44.0-3) ... 363s Setting up libsharpyuv0:armhf (1.5.0-0.1) ... 363s Setting up fonts-mathjax (2.7.9+dfsg-1) ... 363s Setting up liblerc4:armhf (4.0.0+ds-5ubuntu1) ... 363s Setting up libjs-mathjax (2.7.9+dfsg-1) ... 363s Setting up libxrender1:armhf (1:0.9.10-1.1build1) ... 363s Setting up libdatrie1:armhf (0.2.13-3build1) ... 363s Setting up libjs-popper.js (1.16.1+ds-6) ... 363s Setting up libxcb-render0:armhf (1.17.0-2) ... 363s Setting up libjs-sifter.js (0.6.0+dfsg-3) ... 363s Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... 363s Setting up unzip (6.0-28ubuntu6) ... 363s Setting up x11-common (1:7.7+23ubuntu3) ... 364s Setting up node-html5shiv (3.7.3+dfsg-5) ... 364s Setting up libdeflate0:armhf (1.23-1) ... 364s Setting up libjs-microplugin.js (0.0.3+dfsg-1.1) ... 364s Setting up libxcb-shm0:armhf (1.17.0-2) ... 364s Setting up libgomp1:armhf (15-20250222-0ubuntu1) ... 364s Setting up libjs-modernizr (3.13.0-0.1) ... 364s Setting up libjbig0:armhf (2.1-6.1ubuntu2) ... 364s Setting up libjs-es5-shim (4.6.7-2) ... 364s Setting up zip (3.0-14ubuntu2) ... 364s Setting up libblas3:armhf (3.12.1-2) ... 364s update-alternatives: using /usr/lib/arm-linux-gnueabihf/blas/libblas.so.3 to provide /usr/lib/arm-linux-gnueabihf/libblas.so.3 (libblas.so.3-arm-linux-gnueabihf) in auto mode 364s Setting up libfreetype6:armhf (2.13.3+dfsg-1) ... 364s Setting up libjs-d3 (3.5.17-4) ... 364s Setting up fonts-dejavu-mono (2.37-8) ... 364s Setting up libtcl8.6:armhf (8.6.16+dfsg-1) ... 364s Setting up fonts-dejavu-core (2.37-8) ... 364s Setting up libjpeg-turbo8:armhf (2.1.5-3ubuntu2) ... 364s Setting up libgfortran5:armhf (15-20250222-0ubuntu1) ... 364s Setting up libwebp7:armhf (1.5.0-0.1) ... 364s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 364s Setting up liblua5.4-0:armhf (5.4.7-1) ... 364s Setting up libharfbuzz0b:armhf (10.2.0-1) ... 364s Setting up libthai-data (0.1.29-2build1) ... 364s Setting up node-bootstrap-sass (3.4.3-2) ... 364s Setting up libjs-prettify (2015.12.04+dfsg-1.1) ... 364s Setting up libxss1:armhf (1:1.2.3-1build3) ... 364s Setting up libjs-bootstrap4 (4.6.1+dfsg1-4) ... 364s Setting up libpaper2:armhf (2.2.5-0.3) ... 364s Setting up pandoc-data (3.1.11.1-3build1) ... 364s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 364s Setting up node-normalize.css (8.0.1-5) ... 364s Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... 364s Setting up xdg-utils (1.2.1-2ubuntu1) ... 364s update-alternatives: using /usr/bin/xdg-open to provide /usr/bin/open (open) in auto mode 364s Setting up libjs-bootstrap (3.4.1+dfsg-3) ... 364s Setting up libjs-jquery-selectize.js (0.12.6+dfsg-1.1) ... 364s Setting up libjpeg8:armhf (8c-2ubuntu11) ... 364s Setting up libice6:armhf (2:1.1.1-1) ... 364s Setting up liblapack3:armhf (3.12.1-2) ... 364s update-alternatives: using /usr/lib/arm-linux-gnueabihf/lapack/liblapack.so.3 to provide /usr/lib/arm-linux-gnueabihf/liblapack.so.3 (liblapack.so.3-arm-linux-gnueabihf) in auto mode 364s Setting up fontconfig-config (2.15.0-2ubuntu1) ... 364s Setting up libjs-twitter-bootstrap-datepicker (1.3.1+dfsg1-4.1) ... 364s Setting up libpaper-utils (2.2.5-0.3) ... 364s Setting up libjs-jquery-datatables (1.11.5+dfsg-2) ... 364s Setting up libthai0:armhf (0.1.29-2build1) ... 364s Setting up libjs-jquery-ui (1.13.2+dfsg-1) ... 364s Setting up pandoc (3.1.11.1+ds-2) ... 364s Setting up libtiff6:armhf (4.5.1+git230720-4ubuntu4) ... 364s Setting up libfontconfig1:armhf (2.15.0-2ubuntu1) ... 364s Setting up libsm6:armhf (2:1.2.4-1) ... 364s Setting up fontconfig (2.15.0-2ubuntu1) ... 366s Regenerating fonts cache... done. 366s Setting up libxft2:armhf (2.3.6-1build1) ... 366s Setting up libtk8.6:armhf (8.6.16-1) ... 366s Setting up libpango-1.0-0:armhf (1.56.2-1) ... 366s Setting up libcairo2:armhf (1.18.2-2) ... 366s Setting up libxt6t64:armhf (1:1.2.1-1.2build1) ... 366s Setting up libpangoft2-1.0-0:armhf (1.56.2-1) ... 366s Setting up libpangocairo-1.0-0:armhf (1.56.2-1) ... 366s Setting up r-base-core (4.4.3-1) ... 367s Creating config file /etc/R/Renviron with new version 367s Setting up r-cran-crayon (1.5.3-1) ... 367s Setting up r-cran-sourcetools (0.1.7-1-1) ... 367s Setting up r-cran-commonmark (1.9.2-2) ... 367s Setting up r-cran-r6 (2.6.1-1) ... 367s Setting up r-cran-pkgkitten (0.2.4-1) ... 367s Setting up r-cran-magrittr (2.0.3-1) ... 367s Setting up r-cran-rappdirs (0.3.3-1) ... 367s Setting up r-cran-littler (0.3.20-2) ... 367s Setting up r-cran-fs (1.6.5+dfsg-1) ... 367s Setting up r-cran-rcpp (1.0.14-1) ... 367s Setting up r-cran-diffobj (0.3.5-1) ... 367s Setting up r-cran-rlang (1.1.5-1) ... 367s Setting up littler (0.3.20-2) ... 367s Setting up r-cran-xfun (0.51+dfsg-1) ... 367s Setting up r-cran-withr (3.0.2+dfsg-1) ... 367s Setting up r-cran-mime (0.12-2) ... 367s Setting up r-cran-base64enc (0.1-3-3) ... 367s Setting up r-cran-digest (0.6.37-1) ... 367s Setting up r-cran-yaml (2.3.10-1) ... 367s Setting up r-cran-evaluate (1.0.3-1) ... 367s Setting up r-cran-highr (0.11+dfsg-1) ... 367s Setting up r-cran-fansi (1.0.5-1) ... 367s Setting up r-cran-glue (1.8.0-1) ... 367s Setting up r-cran-xtable (1:1.8-4-2) ... 367s Setting up r-cran-cli (3.6.4-1) ... 367s Setting up r-cran-lifecycle (1.0.4+dfsg-1) ... 367s Setting up r-cran-fastmap (1.2.0-1) ... 367s Setting up r-cran-jsonlite (1.9.1+dfsg-1) ... 367s Setting up r-cran-later (1.4.1+dfsg-1) ... 367s Setting up r-cran-htmltools (0.5.8.1-1) ... 367s Setting up r-cran-tinytex (0.56-1) ... 367s Setting up r-cran-knitr (1.49+dfsg-1) ... 367s Setting up r-cran-cachem (1.1.0-1) ... 367s Setting up r-cran-sass (0.4.9+dfsg-1) ... 367s Setting up r-cran-unitizer (1.4.21-1) ... 367s Setting up r-cran-fontawesome (0.5.3-1) ... 367s Setting up r-cran-jquerylib (0.1.4+dfsg-4) ... 367s Setting up r-cran-memoise (2.0.1-1) ... 367s Setting up r-cran-promises (1.3.2+dfsg-1) ... 367s Setting up r-cran-httpuv (1.6.15+dfsg-1) ... 367s Setting up r-cran-bslib (0.8.0+dfsg-1) ... 367s Setting up r-cran-shiny (1.10.0+dfsg-2) ... 367s Setting up r-cran-rmarkdown (2.29+dfsg-1) ... 367s Processing triggers for libc-bin (2.41-1ubuntu2) ... 367s Processing triggers for man-db (2.13.0-1) ... 367s Processing triggers for install-info (7.1.1-1) ... 375s autopkgtest [16:12:38]: test run-unit-test: [----------------------- 377s BEGIN TEST run.R 377s 377s R version 4.4.3 (2025-02-28) -- "Trophy Case" 377s Copyright (C) 2025 The R Foundation for Statistical Computing 377s Platform: arm-unknown-linux-gnueabihf (32-bit) 377s 377s R is free software and comes with ABSOLUTELY NO WARRANTY. 377s You are welcome to redistribute it under certain conditions. 377s Type 'license()' or 'licence()' for distribution details. 377s 377s R is a collaborative project with many contributors. 377s Type 'contributors()' for more information and 377s 'citation()' on how to cite R or R packages in publications. 377s 377s Type 'demo()' for some demos, 'help()' for on-line help, or 377s 'help.start()' for an HTML browser interface to help. 377s Type 'q()' to quit R. 377s 377s > # to avoid variability on terminals with different capabilities 377s > # plus generally random options being set 377s > 377s > if(getRversion() < "3.2.2") { 377s + warning("Cannot run tests with R version less than 3.2.2.") 377s + } else if(!suppressWarnings(require('fansi'))) { 377s + # this is to avoid accidentally running tests under valgrind without fansi 377s + # installed... (no, we've never done this...) 377s + warning("Cannot run tests without package `fansi`") 377s + } else if(!suppressWarnings(require('unitizer'))) { 377s + warning("Cannot run tests without package `unitizer`") 377s + } else { 377s + old.opt <- options( 377s + fansi.tabs.as.spaces=FALSE, 377s + fansi.tab.stops=8L, 377s + fansi.warn=TRUE, 377s + fansi.term.cap=c('bright', '256') 377s + # warnPartialMatchArgs = TRUE, 377s + # warnPartialMatchAttr = TRUE, 377s + # warnPartialMatchDollar = TRUE 377s + ) 377s + on.exit(old.opt) 377s + pat.all <- "^[^.].*\\.[Rr]$" 377s + pattern <- pat.all 377s + # pattern <- "over" 377s + unitize_dir( 377s + 'unitizer', 377s + pattern=pattern, 377s + state='suggested' 377s + ) 377s + # we skip utf8 tests on solaris due to the problems with deparse (and maybe 377s + # others, don't have a solaris system handy for testing). 377s + if( 377s + !grepl("solaris|sun", Sys.info()[['sysname']], ignore.case=TRUE) && 377s Loading required package: fansi 377s Loading required package: unitizer 378s + identical(pattern, pat.all) 378s + ) { 378s + unitize('special/utf8.R', state='suggested') 378s + } 378s + # UCD 12.1 update in 4.0.4 produces correct widths for emoji 378s + if(getRversion() >= "4.0.4" && identical(pattern, pat.all)) 378s + unitize('special/emo-graph.R', state='suggested') 378s + } 378s 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. 378s 378s Preloads... 378s Loading unitizer data... 378s Parsing tests... 378s Parsing has.R 378s Parsing interactions.R 378s Parsing misc.R 378s Parsing nchar.R 378s Parsing normalize.R 378s Parsing overflow.R 379s Parsing strip.R 379s Parsing strsplit.R 379s Parsing substr.R 379s Parsing tabs.R 379s Parsing tohtml.R 379s Parsing trimws.R 379s Parsing url.R 379s Parsing wrap.R 380s Evaluating tests... 380s 380s 1/14 has.R: 380s 1/14 has.R: library(fansi) 380s 1/14 has.R: unitizer_sect("has", { 380s 1/14 has.R: has_ctl(paste0(red, "hello", end)) 380s [1] TRUE 380s 1/14 has.R: has_ctl(paste0("hello", end)) 380s [1] TRUE 380s 1/14 has.R: has_ctl(paste0("hello")) 380s [1] FALSE 380s 1/14 has.R: in.middle <- c("world", paste0("hello", red), "wow") 380s 1/14 has.R: in.end <- c("world", "wow", paste0("hello", red)) 380s 1/14 has.R: in.start <- c(paste0("hello", red), "wow", "world") 380s 1/14 has.R: has_ctl(in.middle) 380s [1] FALSE TRUE FALSE 380s 1/14 has.R: has_ctl(in.end) 380s [1] FALSE FALSE TRUE 380s 1/14 has.R: has_ctl(in.start) 380s [1] TRUE FALSE FALSE 380s 1/14 has.R: has_ctl(c(in.start, NA)) 380s [1] TRUE FALSE FALSE NA 380s 1/14 has.R: has_ctl("hello\nworld") 380s [1] TRUE 380s 1/14 has.R: has_sgr("hello\nworld") 380s [1] FALSE 380s 1/14 has.R: has_sgr(in.end) 380s [1] FALSE FALSE TRUE 380s 1/14 has.R: has_ctl("hello\033p world") 380s [1] TRUE 380s 1/14 has.R: unitizer_sect("corner cases", { 380s 1/14 has.R: has_ctl("hello\033[31#0mworld") 380s [1] TRUE 380s 1/14 has.R: suppressWarnings(has_ctl("hello\033[31#0mworld")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello world", ctl = c("sgr", "sgr")) 380s [1] FALSE 380s 1/14 has.R: has_ctl("hello\033[31#0") 380s [1] TRUE 380s Warning in has_ctl("hello\033[31#0") : 380s 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. 380s 1/14 has.R: unitizer_sect("select ctl", { 380s 1/14 has.R: has_ctl("hello\033[31mworld", ctl = c("sgr")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello\033[31mworld", ctl = c("csi")) 380s [1] FALSE 380s 1/14 has.R: has_ctl("hello\033[31!mworld", ctl = c("sgr")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello\033[31!mworld", ctl = c("csi")) 380s [1] FALSE 380s 1/14 has.R: has_ctl("hello\033[31lworld", ctl = c("csi")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello\nworld", ctl = c("all", "nl")) 380s [1] FALSE 380s 1/14 has.R: has_ctl("hello\nworld", ctl = c("all", "c0")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello\tworld", ctl = c("all", "c0")) 380s [1] FALSE 380s 1/14 has.R: has_ctl("hello\tworld", ctl = c("c0")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello\033pworld", ctl = c("esc")) 380s [1] TRUE 380s 1/14 has.R: has_ctl("hello\033pworld", ctl = c("all", "esc")) 380s [1] FALSE 380s 1/14 has.R: unitizer_sect("bad inputs", { 380s 1/14 has.R: has_ctl("hello world", warn = NULL) 380s Error in has_ctl("hello world", warn = NULL) : 380s Argument `warn` must be TRUE or FALSE. 380s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 381s Error in has_ctl("hello world", ctl = 1:3) : 381s Argument `ctl` must be character. 381s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 381s 1/14 has.R: has_ctl("hello world", ctl = 1:3) 381s 1/14 has.R: has_ctl("hello world", ctl = "bananas") 381s Error in has_ctl("hello world", ctl = "bananas") : 381s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 381s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 381s 1/14 has.R: has_ctl("hello world", ctl = NA_character_) 381s Error in has_ctl("hello world", ctl = NA_character_) : 381s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 381s Calls: unitize_dir ... eval -> withVisible -> has_ctl -> VAL_IN_ENV -> stop2 381s 1/14 has.R: has_ctl(c("\033[31mhello", "wo\nrld"), ctl = character()) 381s [1] FALSE FALSE 381s 1/14 has.R: unitizer_sect("deprecation", { 381s 1/14 has.R: has_ctl("hello world", which = "sgr") 381s [1] FALSE 381s Parameter `which` has been deprecated; use `ctl` instead. 381s 381s 2/14 interactions.R: 381s 2/14 interactions.R: library(fansi) 381s 2/14 interactions.R: unitizer_sect("substr", { 381s 2/14 interactions.R: str.0 <- c("\033[44mhello", "world") 381s 2/14 interactions.R: substr_ctl(str.0, 2, 4) 381s [1] "\033[44mell\033[0m" "orl" 381s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = TRUE) 381s [1] "\033[44mell\033[0m" "\033[44morl\033[0m" 381s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = "\033[33m") 381s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 381s 2/14 interactions.R: substr2_ctl(str.0, 2, 4, carry = "\033[33m") 381s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 381s 2/14 interactions.R: substr_sgr(str.0, 2, 4, carry = "\033[33m") 381s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 381s 2/14 interactions.R: substr2_sgr(str.0, 2, 4, carry = "\033[33m") 381s [1] "\033[33;44mell\033[0m" "\033[33;44morl\033[0m" 381s 2/14 interactions.R: str.1 <- c("hello", "\033[44mworld", "barrow") 381s 2/14 interactions.R: substr_ctl(str.1, 2, 4) 381s [1] "ell" "\033[44morl\033[0m" "arr" 381s 2/14 interactions.R: substr_ctl(str.1, 2, 4, carry = TRUE) 381s [1] "ell" "\033[44morl\033[0m" "\033[44marr\033[0m" 381s 2/14 interactions.R: substr_ctl(str.1, 2, 4, carry = "\033[33m") 381s [1] "\033[33mell\033[0m" "\033[33;44morl\033[0m" "\033[33;44marr\033[0m" 381s 2/14 interactions.R: str.2 <- c("\033[33mA\033[44mBCD", "ABCD", "\033[39mABCD") 381s 2/14 interactions.R: substr_ctl(str.2, 2, 2) 381s [1] "\033[33;44mB\033[0m" "B" "B" 381s 2/14 interactions.R: substr_ctl(str.2, 2, 2, carry = TRUE) 381s [1] "\033[33;44mB\033[0m" "\033[33;44mB\033[0m" "\033[44mB\033[0m" 381s 2/14 interactions.R: substr_ctl(str.2, 2, 2, carry = TRUE, terminate = FALSE) 381s [1] "\033[33;44mB" "B" "\033[0;44mB" 381s 2/14 interactions.R: str.3 <- c("\033[35mA\033[42mB", "\033[49mCD") 381s 2/14 interactions.R: substr_ctl(str.3, 2, 2, carry = TRUE, terminate = FALSE) 381s [1] "\033[35;42mB" "\033[0;35mD" 381s 2/14 interactions.R: wrp.0 <- c("once upon \033[44ma time in a land far away ov 381s 2/14 interactions.R: unitizer_sect("wrap/trim", { 381s 2/14 interactions.R: strwrap_ctl(wrp.0, 20) 381s [1] "once upon \033[44ma time in\033[0m" "\033[44ma land far away\033[0m" 381s [3] "\033[44mover\033[0m" "the mountains and" 381s [5] "\033[7msea lived a fair\033[0m" "\033[7mcreature\033[0m" 381s [7] "with \033[4mdark itentions\033[0m" "\033[4mand a yappy dog.\033[0m" 381s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = TRUE) 381s [1] "once upon \033[44ma time in\033[0m" 381s [2] "\033[44ma land far away\033[0m" 381s [3] "\033[44mover\033[0m" 381s [4] "\033[44mthe mountains and\033[0m" 381s [5] "\033[7;44msea lived a fair\033[0m" 381s [6] "\033[7;44mcreature\033[0m" 381s [7] "\033[7;44mwith \033[4mdark itentions\033[0m" 381s [8] "\033[4;7;44mand a yappy dog.\033[0m" 381s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = "\033[33m") 381s [1] "\033[33monce upon \033[44ma time in\033[0m" 381s [2] "\033[33;44ma land far away\033[0m" 381s [3] "\033[33;44mover\033[0m" 381s [4] "\033[33;44mthe mountains and\033[0m" 381s [5] "\033[7;33;44msea lived a fair\033[0m" 381s [6] "\033[7;33;44mcreature\033[0m" 381s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 381s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 381s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, carry = "\033[33m") 381s [1] "\033[33monce upon \033[44ma time in\033[0m" 381s [2] "\033[33;44ma land far away\033[0m" 381s [3] "\033[33;44mover\033[0m" 381s [4] "\033[33;44mthe mountains and\033[0m" 381s [5] "\033[7;33;44msea lived a fair\033[0m" 381s [6] "\033[7;33;44mcreature\033[0m" 381s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 381s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 381s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, carry = "\033[33m") 381s [1] "\033[33monce upon \033[44ma time in\033[0m" 381s [2] "\033[33;44ma land far away\033[0m" 381s [3] "\033[33;44mover\033[0m" 381s [4] "\033[33;44mthe mountains and\033[0m" 381s [5] "\033[7;33;44msea lived a fair\033[0m" 381s [6] "\033[7;33;44mcreature\033[0m" 381s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 381s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 381s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, carry = "\033[33m") 381s [1] "\033[33monce upon \033[44ma time in\033[0m" 381s [2] "\033[33;44ma land far away\033[0m" 381s [3] "\033[33;44mover\033[0m" 381s [4] "\033[33;44mthe mountains and\033[0m" 381s [5] "\033[7;33;44msea lived a fair\033[0m" 381s [6] "\033[7;33;44mcreature\033[0m" 381s [7] "\033[7;33;44mwith \033[4mdark itentions\033[0m" 381s [8] "\033[4;7;33;44mand a yappy dog.\033[0m" 381s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, carry = "\033[33m") 381s [1] "\033[33monce upon \033[44ma time in \033[0m" 381s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 381s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 381s 2/14 interactions.R: strtrim_sgr(wrp.0, 20, carry = "\033[33m") 381s [1] "\033[33monce upon \033[44ma time in \033[0m" 381s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 381s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 382s 2/14 interactions.R: strtrim2_ctl(wrp.0, 20, carry = "\033[33m") 382s [1] "\033[33monce upon \033[44ma time in \033[0m" 382s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 382s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 382s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, carry = "\033[33m") 382s [1] "\033[33monce upon \033[44ma time in \033[0m" 382s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 382s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 382s 2/14 interactions.R: wrp.1 <- c("once upon \033[44ma time in a land far away ov 382s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, carry = "\033[33m") 382s [1] "\033[33monce upon \033[44ma time in \033[0m" 382s [2] "\033[33;44mthe mountains and \033[7m s\033[0m" 382s [3] "\033[7;33;44mwith \033[4mdark itentions \033[0m" 382s 2/14 interactions.R: wrp.2 <- c("hello \033[42mworld", "goodnight\033[49m moon" 382s 2/14 interactions.R: strwrap_ctl(wrp.2, 10, carry = "\033[35m", simplify = FALS 382s [[1]] 382s [1] "\033[35mhello\033[0m" "\033[35;42mworld\033[0m" 382s 382s [[2]] 382s [1] "\033[35;42mgoodnight\033[0m" "\033[35mmoon\033[0m" 382s 382s [[3]] 382s [1] "\033[35moh \033[39mboy" 382s 382s 2/14 interactions.R: strwrap_ctl(wrp.2, 10, carry = "\033[35m", simplify = FALS 382s [[1]] 382s [1] "hello" "\033[42mworld" 382s 382s [[2]] 382s [1] "goodnight" "\033[0;35mmoon" 382s 382s [[3]] 382s [1] "oh \033[39mboy" 382s 382s 2/14 interactions.R: unitizer_sect("normalize", { 382s 2/14 interactions.R: str.2 <- c("\033[44mhello", "wo\033[mrld", "barrow") 382s 2/14 interactions.R: normalize_state(str.2) 382s [1] "\033[44mhello" "world" "barrow" 382s 2/14 interactions.R: normalize_state(str.2, carry = TRUE) 382s [1] "\033[44mhello" "wo\033[49mrld" "barrow" 382s 2/14 interactions.R: normalize_state(str.2, carry = "\033[33m") 382s [1] "\033[44mhello" "wo\033[39m\033[49mrld" "barrow" 382s 2/14 interactions.R: unitizer_sect("carry corner cases", { 382s 2/14 interactions.R: substr_ctl("", 2, 3, carry = "\033[33m") 382s [1] "" 382s 2/14 interactions.R: substr_ctl("", 2, 3, carry = "\033[33m", terminate = FALSE 382s [1] "" 382s 2/14 interactions.R: substr_ctl("\033[39m", 2, 3, carry = "\033[33m", terminate 382s [1] "\033[0m" 382s 2/14 interactions.R: substr_ctl("\033[39m", 2, 3, carry = "\033[33m", terminate 382s [1] "\033[39m" 382s 2/14 interactions.R: substr_ctl("", 0, 1, carry = "\033[33m") 382s [1] "" 382s 2/14 interactions.R: substr_ctl("", 0, 1, carry = "\033[33m", terminate = FALSE 382s [1] "" 382s 2/14 interactions.R: substr_ctl("\033[39m", 0, 1, carry = "\033[33m", terminate 382s [1] "\033[0m" 382s 2/14 interactions.R: substr_ctl("\033[39m", 0, 1, carry = "\033[33m", terminate 382s [1] "\033[39m" 382s 2/14 interactions.R: substr_ctl("", 0, 0, carry = "\033[33m") 382s [1] "" 382s 2/14 interactions.R: substr_ctl("", 0, 0, carry = "\033[33m", terminate = FALSE 382s [1] "" 382s 2/14 interactions.R: substr_ctl("\033[39m", 0, 0, carry = "\033[33m", terminate 382s [1] "" 382s 2/14 interactions.R: substr_ctl(character(), 2, 4, carry = "\033[33m") 382s character(0) 382s 2/14 interactions.R: substr_ctl(NA, 2, 4, carry = "\033[33m") 382s [1] NA 382s Error in as.character(args[["x"]]) : 382s cannot coerce type 'environment' to vector of type 'character' 382s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV 382s 2/14 interactions.R: substr_ctl(environment(), 2, 4, carry = "\033[33m") 382s 2/14 interactions.R: substr_ctl("hello", 2, 4, carry = c("\033[33m", "\033[44m" 382s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 382s Argument `carry` must be scalar. 382s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = NA_character_) 382s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 382s Argument `carry` may not be NA. 382s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 382s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 382s Argument `carry` must be scalar. 382s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = character()) 382s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 382s Argument `carry` must be logical or character. 382s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = 1) 382s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 382s Argument `carry` must be logical or character. 382s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: substr_ctl(str.0, 2, 4, carry = Inf) 382s 2/14 interactions.R: sgrs <- c("A\033[31mB", "C\033[1mD", "E\033[4mF", "G\033[1 382s 2/14 interactions.R: substr_ctl(sgrs, 2, 2, carry = TRUE) 382s [1] "\033[31mB\033[0m" "\033[1;31mD\033[0m" 382s [3] "\033[1;4;31mF\033[0m" "\033[1;4;31;13mH\033[0m" 382s [5] "\033[1;4;31;62;13mJ\033[0m" "\033[1;4;62;13mL\033[0m" 382s [7] "\033[1;4;52;62;13mN\033[0m" "\033[1;4;52;13mP\033[0m" 382s [9] "\033[4;52;13mR\033[0m" "\033[52;13mT\033[0m" 382s [11] "\033[13mU\033[0m" "W" 382s 2/14 interactions.R: normalize_state(str.2, carry = NA_character_) 382s Error in normalize_state(str.2, carry = NA_character_) : 382s Argument `carry` may not be NA. 382s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: normalize_state(str.2, carry = character()) 382s Error in normalize_state(str.2, carry = character()) : 382s Argument `carry` must be scalar. 382s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 382s Error in normalize_state(str.2, carry = 1) : 382s Argument `carry` must be logical or character. 382s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: normalize_state(str.2, carry = 1) 382s Error in normalize_state(str.2, carry = Inf) : 382s Argument `carry` must be logical or character. 382s Calls: unitize_dir ... withVisible -> normalize_state -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: normalize_state(str.2, carry = Inf) 382s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 382s Argument `carry` may not be NA. 382s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, carry = NA_character_) 382s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 382s Argument `carry` must be scalar. 382s Calls: unitize_dir ... strwrap_sgr -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, carry = character()) 382s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, carry = 1) 382s Error in strwrap2_ctl(wrp.0, 20, carry = 1) : 382s Argument `carry` must be logical or character. 382s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, carry = Inf) 382s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 382s Argument `carry` must be logical or character. 382s Calls: unitize_dir ... strwrap2_sgr -> strwrap2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: strwrap_ctl(c("\033[33mA \033[4mB", "\033[44mC D"), carry 382s [1] "\033[33mA\033[0m" "\033[4;33mB\033[0m" "\033[4;33;44mC\033[0m" 382s [4] "\033[4;33;44mD\033[0m" 382s 2/14 interactions.R: unitizer_sect("terminate", { 382s 2/14 interactions.R: str.0 <- c("hel\033[33m", "wo\033[44mrld") 382s 2/14 interactions.R: substr_ctl(str.0, 2, 5, terminate = FALSE) 382s [1] "el\033[33m" "o\033[44mrld" 382s 2/14 interactions.R: substr_sgr(str.0, 2, 5, terminate = FALSE) 382s [1] "el\033[33m" "o\033[44mrld" 382s 2/14 interactions.R: substr2_ctl(str.0, 2, 5, terminate = FALSE) 382s [1] "el\033[33m" "o\033[44mrld" 382s 2/14 interactions.R: substr2_sgr(str.0, 2, 5, terminate = FALSE) 382s [1] "el\033[33m" "o\033[44mrld" 382s 2/14 interactions.R: strwrap_ctl(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in" "a land far away" 382s [3] "over" "the mountains and" 382s [5] "\033[7msea lived a fair" "creature" 382s [7] "with \033[4mdark itentions" "and a yappy dog." 382s 2/14 interactions.R: strwrap_sgr(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in" "a land far away" 382s [3] "over" "the mountains and" 382s [5] "\033[7msea lived a fair" "creature" 382s [7] "with \033[4mdark itentions" "and a yappy dog." 382s 2/14 interactions.R: strwrap2_ctl(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in" "a land far away" 382s [3] "over" "the mountains and" 382s [5] "\033[7msea lived a fair" "creature" 382s [7] "with \033[4mdark itentions" "and a yappy dog." 382s 2/14 interactions.R: strwrap2_sgr(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in" "a land far away" 382s [3] "over" "the mountains and" 382s [5] "\033[7msea lived a fair" "creature" 382s [7] "with \033[4mdark itentions" "and a yappy dog." 382s 2/14 interactions.R: strtrim_ctl(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 382s [3] "with \033[4mdark itentions " 382s 2/14 interactions.R: strtrim_sgr(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 382s [3] "with \033[4mdark itentions " 382s 2/14 interactions.R: strtrim2_ctl(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 382s [3] "with \033[4mdark itentions " 382s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, terminate = FALSE) 382s [1] "once upon \033[44ma time in " "the mountains and \033[7m s" 382s [3] "with \033[4mdark itentions " 382s 2/14 interactions.R: strtrim2_sgr(wrp.0, 20, terminate = NA) 382s Error in strtrim2_ctl(x = x, width = width, warn = warn, tabs.as.spaces = tabs.as.spaces, : 382s Argument `terminate` must be TRUE or FALSE 382s Calls: unitize_dir ... strtrim2_sgr -> strtrim2_ctl -> VAL_IN_ENV -> stop2 382s 2/14 interactions.R: unitizer_sect("bridge", { 382s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[31m") 382s [1] "\033[0;31m" 382s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[31m", normalize = TRUE) 382s [1] "\033[49m\033[31m" 382s 2/14 interactions.R: fansi:::bridge("", "\033[31m") 382s [1] "\033[31m" 382s 2/14 interactions.R: fansi:::bridge("\033[42m", "") 382s [1] "\033[0m" 382s 2/14 interactions.R: fansi:::bridge("\033[42m", "\033[42m") 382s [1] "" 382s 2/14 interactions.R: end <- c("\033[31", "\033[41m", NA_character_, "\033[44m") 382s 2/14 interactions.R: restart <- c("", NA_character_, "\033[45m", "\033[45m") 382s 2/14 interactions.R: fansi:::bridge(end, restart) 382s [1] "" "" "" "\033[45m" 382s 2/14 interactions.R: base.st <- "%s\033]8;%s;%s\033\\" 382s 2/14 interactions.R: url <- "https://x.yz" 382s 2/14 interactions.R: u0 <- sprintf(base.st, "", "", url) 382s 2/14 interactions.R: fansi:::bridge(paste0("\033[42m", u0), "\033[31m") 382s [1] "\033[0;31m\033]8;;\033\\" 382s 2/14 interactions.R: fansi:::bridge("\033[31m", paste0("\033[42m", u0)) 382s [1] "\033[0;42m\033]8;;https://x.yz\033\\" 382s 2/14 interactions.R: txt <- c("A\033[31mBC", "D\033[39mE\033[42mF") 382s 2/14 interactions.R: `substr_ctl<-`(txt, 2, 2, value = "?", normalize = TRUE, c 382s [1] "A?\033[31mC" "D\033[39m?\033[42mF" 382s 2/14 interactions.R: unitizer_sect("at end / close", { 382s 2/14 interactions.R: x <- c("a\033[31mb", "c", "\033[42md") 382s 2/14 interactions.R: state_at_end(x) 382s [1] "\033[31m" "" "\033[42m" 382s 2/14 interactions.R: state_at_end(x, carry = TRUE) 382s [1] "\033[31m" "\033[31m" "\033[31;42m" 382s 2/14 interactions.R: state_at_end(x, carry = TRUE, normalize = TRUE) 382s [1] "\033[31m" "\033[31m" "\033[31m\033[42m" 382s 2/14 interactions.R: state_at_end("a\033[pb") 382s [1] "" 382s Warning in state_at_end("a\033[pb") : 382s 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. 382s 2/14 interactions.R: state_at_end("a\033[pb", warn = FALSE) 382s [1] "" 382s 2/14 interactions.R: state_at_end(c("\033[42mA", NA_character_, "\033[31mA")) 382s [1] "\033[42m" NA "\033[31m" 382s 2/14 interactions.R: state_at_end(c("\033[42mA", NA_character_, "\033[31mA"), c 382s [1] "\033[42m" NA NA 382s 2/14 interactions.R: close_state(x) 382s [1] "\033[0m" "" "\033[0m" 382s 2/14 interactions.R: close_state(x, normalize = TRUE) 382s [1] "\033[39m" "" "\033[49m" 382s 2/14 interactions.R: close_state("a\033[pb") 382s Warning in close_state("a\033[pb") : 382s 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. 382s [1] "" 382s 2/14 interactions.R: close_state("a\033[pb", warn = FALSE) 382s [1] "" 382s 2/14 interactions.R: state_no_arg <- function(x) { 382s 2/14 interactions.R: x <- "\360" 382s 2/14 interactions.R: Encoding(x) <- "UTF-8" 382s 2/14 interactions.R: state_no_arg(x) 382s [1] "Encountered a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 382s 2/14 interactions.R: y <- "\033[45phello" 382s 2/14 interactions.R: state_no_arg(y) 382s [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." 382s 383s 3/14 misc.R: 383s 3/14 misc.R: library(unitizer) 383s 3/14 misc.R: library(fansi) 383s 3/14 misc.R: unitizer_sect("term_cap_test", { 383s 3/14 misc.R: tct <- term_cap_test() 383s bright  -> \033[91;104mbright \033[0m 383s 256  -> \033[38;5;196;48;5;21m256 \033[0m 383s truecolor -> \033[38;2;255;0;0;48;2;0;0;255mtruecolor\033[0m 383s 3/14 misc.R: tct 383s [1] "\033[91;104mbright \033[0m" 383s [2] "\033[38;5;196;48;5;21m256 \033[0m" 383s [3] "\033[38;2;255;0;0;48;2;0;0;255mtruecolor\033[0m" 383s 3/14 misc.R: fansi_lines(LETTERS, step = 6) 383s [1] "\033[37;48;5;23mA\033[39;49m" "\033[37;48;5;29mB\033[39;49m" 383s [3] "\033[30;48;5;35mC\033[39;49m" "\033[30;48;5;41mD\033[39;49m" 383s [5] "\033[30;48;5;47mE\033[39;49m" "\033[37;48;5;53mF\033[39;49m" 383s [7] "\033[37;48;5;59mG\033[39;49m" "\033[37;48;5;65mH\033[39;49m" 383s [9] "\033[30;48;5;71mI\033[39;49m" "\033[30;48;5;77mJ\033[39;49m" 383s [11] "\033[30;48;5;83mK\033[39;49m" "\033[37;48;5;89mL\033[39;49m" 383s [13] "\033[37;48;5;95mM\033[39;49m" "\033[37;48;5;101mN\033[39;49m" 383s [15] "\033[30;48;5;107mO\033[39;49m" "\033[30;48;5;113mP\033[39;49m" 383s [17] "\033[30;48;5;119mQ\033[39;49m" "\033[37;48;5;125mR\033[39;49m" 383s [19] "\033[37;48;5;131mS\033[39;49m" "\033[37;48;5;137mT\033[39;49m" 383s [21] "\033[30;48;5;143mU\033[39;49m" "\033[30;48;5;149mV\033[39;49m" 383s [23] "\033[30;48;5;155mW\033[39;49m" "\033[37;48;5;161mX\033[39;49m" 383s [25] "\033[37;48;5;167mY\033[39;49m" "\033[37;48;5;173mZ\033[39;49m" 383s 3/14 misc.R: local({ 383s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 383s 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. 383s [1] "" "a" 383s 3/14 misc.R: unitizer_sect("add_int", { 383s 3/14 misc.R: fansi:::add_int(1, 1) 383s [1] 2 383s 3/14 misc.R: fansi:::add_int(2^31 - 1, 1) 383s Error in fansi:::add_int(2^31 - 1, 1) : 383s Integer overflow in file utils.c at line 99; contact maintainer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 383s 3/14 misc.R: fansi:::add_int(2^31 - 1, 0) 383s [1] 2147483647 383s 3/14 misc.R: fansi:::add_int(-2^31 + 1, 0) 383s [1] -2147483647 383s 3/14 misc.R: fansi:::add_int(-2^31 + 1, -1) 383s Error in fansi:::add_int(-2^31 + 1, -1) : 383s Integer overflow in file utils.c at line 99; contact maintainer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 383s 3/14 misc.R: unitizer_sect("unhandled", { 383s 3/14 misc.R: string.0 <- c("\033[41mhello world\033[m", "foo\033[22>m", "\033[9 383s 3/14 misc.R: unhandled_ctl(string.0) 383s index start stop error translated esc 383s 1 2 4 9 invalid-substr FALSE \033[22>m 383s 2 3 1 6 invalid-substr FALSE \033[999m 383s 3 4 5 11 invalid-substr FALSE \033[31#3m 383s 4 5 2 6 non-SGR/hyperlink FALSE \033[31k 383s 5 6 6 7 non-CSI/OSC FALSE \033m 383s 3/14 misc.R: string.1 <- c("foo\033[22>mhello\033[9999m", "a\033[31k", "hello\0 383s 3/14 misc.R: unhandled_ctl(string.1) 383s index start stop error translated esc 383s 1 1 4 9 invalid-substr FALSE \033[22>m 383s 2 1 15 21 invalid-substr FALSE \033[9999m 383s 3 2 2 6 non-SGR/hyperlink FALSE \033[31k 383s 4 3 6 7 non-CSI/OSC FALSE \033m 383s 5 3 9 14 unknown-substr FALSE \033[180m 383s 6 3 21 21 malformed-ESC FALSE \033 383s 3/14 misc.R: unhandled_ctl("hello\033\033\033[45p wor\ald") 383s index start stop error translated esc 383s 1 1 6 7 malformed-ESC FALSE \033\033 383s 2 1 8 12 non-SGR/hyperlink FALSE \033[45p 383s 3 1 17 17 C0 FALSE \a 383s 3/14 misc.R: unhandled_ctl("\033[38;5;220mworld\033[m", "bright") 383s index start stop error translated esc 383s 1 1 1 11 exceed-term-cap FALSE \033[38;5;220m 383s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bright") 383s index start stop error translated esc 383s 1 1 1 16 exceed-term-cap FALSE \033[38;2;10;20;30m 383s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bri") 383s Error in unhandled_ctl("\033[38;2;10;20;30mworld\033[m", "bri") : 383s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 383s Calls: unitize_dir ... withVisible -> unhandled_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: unhandled_ctl("\033[38;2;10;20;30mworld\033[m", NULL) 383s Error in unhandled_ctl("\033[38;2;10;20;30mworld\033[m", NULL) : 383s Argument `term.cap` must be character. 383s Calls: unitize_dir ... withVisible -> unhandled_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: unhandled_ctl("AB\033[34m\033]9\033\\\033[1m\033[2LCD") 383s index start stop error translated esc 383s 1 1 17 20 non-SGR/hyperlink FALSE \033[2L 383s 3/14 misc.R: unhandled_ctl("AB\033[34m\033]9\033[1m\033[2LCD") 383s index start stop error translated esc 383s 1 1 8 20 malformed-CSI/OSC FALSE \033]9\033[1m\033[2LCD 383s 3/14 misc.R: unhandled_ctl("A\033[45#1pB\033[256pC\033[256mD") 383s index start stop error translated esc 383s 1 1 2 8 CSI/OSC-bad-substr FALSE \033[45#1p 383s 2 1 10 15 non-SGR/hyperlink FALSE \033[256p 383s 3 1 17 22 invalid-substr FALSE \033[256m 383s 3/14 misc.R: unhandled_ctl("\033[38m") 383s index start stop error translated esc 383s 1 1 1 5 invalid-substr FALSE \033[38m 383s 3/14 misc.R: unitizer_sect("strtrim", { 383s 3/14 misc.R: strtrim_ctl(" hello world", 7) 383s [1] " hello " 383s 3/14 misc.R: strtrim_ctl("\033[42m hello world\033[m", 7) 383s [1] "\033[42m hello \033[0m" 383s 3/14 misc.R: strtrim_ctl(" hello\nworld", 7) 383s [1] " hello\nw" 383s 3/14 misc.R: strtrim_ctl("\033[42m hello\nworld\033[m", 7) 383s [1] "\033[42m hello\nw\033[0m" 383s 3/14 misc.R: strtrim_ctl("\nhello\nworld", 7) 383s [1] "\nhello\nwo" 383s 3/14 misc.R: strtrim_ctl("\033[42m\nhello\nworld\033[m", 7) 383s [1] "\033[42m\nhello\nwo\033[0m" 383s 3/14 misc.R: strtrim_ctl("\thello\rworld foobar", 12) 383s [1] "\thello\rworld f" 383s Warning in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 383s 3/14 misc.R: strtrim_ctl("\033[42m\thello\rworld\033[m foobar", 12) 383s Warning in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 383s [1] "\033[42m\thello\rworld\033[m f" 383s 3/14 misc.R: strtrim2_ctl("\033[42m\thello world\033[m foobar", 12, tabs.as.spa 383s [1] "\033[42m hell\033[0m" 383s 3/14 misc.R: strtrim_sgr("\033[42m\the\allo world\033[m foobar", 12, warn = FAL 383s [1] "\033[42m\the\allo worl\033[0m" 383s 3/14 misc.R: strtrim2_sgr("\033[42m\the\allo world\033[m foobar", 12, tabs.as.s 383s [1] "\033[42m he\allo wor\033[0m" 383s 3/14 misc.R: identical(strtrim_ctl(c("AB", NA_character_, "CD"), 1), strtrim(c( 383s [1] TRUE 383s 3/14 misc.R: strtrim_ctl(c("AB", NA_character_, "CD"), 1, carry = TRUE) 383s [1] "A" NA NA 383s 3/14 misc.R: hello2.0 <- "\033[42m\thello world\033[m foobar" 383s 3/14 misc.R: strtrim_ctl(1:3, width = 10) 383s [1] "1" "2" "3" 383s 3/14 misc.R: strtrim_ctl(hello2.0, width = "35") 383s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `width` must be a positive scalar numeric representable as an integer. 383s Calls: unitize_dir ... eval -> eval -> withVisible -> strtrim_ctl -> strtrim2_ctl 383s 3/14 misc.R: strtrim_ctl(hello2.0, width = NA_integer_) 383s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `width` must be a positive scalar numeric representable as an integer. 383s Calls: unitize_dir ... eval -> eval -> withVisible -> strtrim_ctl -> strtrim2_ctl 383s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, warn = NULL) 383s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `warn` must be TRUE or FALSE. 383s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, ctl = 0) 383s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `ctl` must be character. 383s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim_ctl(hello2.0, width = 10, ctl = "bananas") 383s Error in strtrim2_ctl(x = x, width = width, warn = warn, ctl = ctl, normalize = normalize, : 383s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 383s Calls: unitize_dir ... withVisible -> strtrim_ctl -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(1:3, width = 10) 383s [1] "1" "2" "3" 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = "35") 383s Error in strtrim2_ctl(hello2.0, width = "35") : 383s Argument `width` must be a positive scalar numeric representable as an integer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strtrim2_ctl 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = NA_integer_) 383s Error in strtrim2_ctl(hello2.0, width = NA_integer_) : 383s Argument `width` must be a positive scalar numeric representable as an integer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strtrim2_ctl 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, warn = NULL) 383s Error in strtrim2_ctl(hello2.0, width = 10, warn = NULL) : 383s Argument `warn` must be TRUE or FALSE. 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = NA) 383s Error in strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = NA) : 383s Argument `tabs.as.spaces` must be TRUE or FALSE. 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = 1:3) 383s Error in strtrim2_ctl(hello2.0, width = 10, tabs.as.spaces = 1:3) : 383s Argument `tabs.as.spaces` must be TRUE or FALSE. 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tab.stops = -(1:3)) 383s Error in strtrim2_ctl(hello2.0, width = 10, tab.stops = -(1:3)) : 383s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, tab.stops = 0) 383s Error in strtrim2_ctl(hello2.0, width = 10, tab.stops = 0) : 383s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, ctl = 0) 383s Error in strtrim2_ctl(hello2.0, width = 10, ctl = 0) : 383s Argument `ctl` must be character. 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: strtrim2_ctl(hello2.0, width = 10, ctl = "bananas") 383s Error in strtrim2_ctl(hello2.0, width = 10, ctl = "bananas") : 383s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 383s Calls: unitize_dir ... eval -> withVisible -> strtrim2_ctl -> VAL_IN_ENV -> stop2 383s 3/14 misc.R: unitizer_sect("enc check", { 383s 3/14 misc.R: x <- y <- "He\237" 383s 3/14 misc.R: Encoding(x) <- "latin1" 383s 3/14 misc.R: fansi:::check_enc(x, 1) 383s Error in fansi:::check_enc(x, 1) : 383s Internal Error: unexpected encoding 2 encountered at index 1. Contact maintainer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 383s 3/14 misc.R: Encoding(y) <- "bytes" 383s 3/14 misc.R: fansi:::check_enc(y, 1) 383s Error in fansi:::check_enc(y, 1) : 383s Byte encoded string encountered at index 1. Byte encoded strings are not supported. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 383s 3/14 misc.R: fansi:::check_enc("hello", 1) 383s [1] TRUE 383s 3/14 misc.R: unitizer_sect("what as int", { 383s 3/14 misc.R: fansi:::ctl_as_int(c(1, 2, 3, 4, 5)) 383s [1] 112 383s 3/14 misc.R: fansi:::ctl_as_int(c(2, 3, 4, 5)) 383s [1] 15 383s 3/14 misc.R: fansi:::ctl_as_int(c(1, 2, 3, 9)) 383s Error in fansi:::ctl_as_int(c(1, 2, 3, 9)) : 383s Internal Error: max ctl value allowed is 6. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 383s 3/14 misc.R: fansi:::ctl_as_int(c(2, 3, 9)) 383s Error in fansi:::ctl_as_int(c(2, 3, 9)) : 383s Internal Error: max ctl value allowed is 6. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 383s 3/14 misc.R: unitizer_sect("HTML helper", { 383s 3/14 misc.R: html_esc(character()) 383s character(0) 383s 3/14 misc.R: html_esc(1:10) 383s Error in html_esc(1:10) : Argument `x` must be character, is integer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 383s 3/14 misc.R: html_esc(NA_character_) 383s [1] NA 383s 3/14 misc.R: html_esc("") 383s [1] "<he&llo>" 383s 3/14 misc.R: html_esc("ow&wo") 383s [1] "ow&wo" 383s 3/14 misc.R: html_esc(c("hello", "wors", NA, "")) 383s [1] "hello" "wor<ld>s" NA "" 383s 3/14 misc.R: html_esc(c("he'l\"lo", "wors", NA, "")) 383s [1] "he'l"lo" "wor<ld>s" NA 383s [4] "" 383s 3/14 misc.R: html_esc("<<<<") 383s [1] "<<<<" 383s 3/14 misc.R: html_esc("<123hello>") 383s [1] "<123hello>" 383s 3/14 misc.R: txt <- c("day > night", "hello world") 383s 3/14 misc.R: html_code_block(character()) 383s [1] "
" 383s 3/14 misc.R: html_code_block(txt) 383s [1] "
day > night\nhello world
" 383s 3/14 misc.R: html_code_block(1:10) 383s Error in html_code_block(1:10) : 383s Argument `x` must be character, is integer. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_code_block 383s 3/14 misc.R: html_code_block(txt, class = c("not-fansi", "plain")) 383s [1] "
day > night\nhello world
" 383s 3/14 misc.R: html_code_block(txt, class = NULL) 383s Error in html_code_block(txt, class = NULL) : 383s Argument `class` must be character, is NULL. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_code_block 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "<>") 383s [1] "h&e'l\"lo" "wor<ld>s" NA "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "><") 383s [1] "h&e'l\"lo" "wor<ld>s" NA "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "<&>") 383s [1] "h&e'l\"lo" "wor<ld>s" NA "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>") 383s [1] "h&e'l\"lo" "wor<ld>s" NA 383s [4] "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>\"") 383s [1] "h&e'l"lo" "wor<ld>s" NA 383s [4] "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'&>\"<") 383s [1] "h&e'l"lo" "wor<ld>s" NA 383s [4] "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "") 383s [1] "h&e'l\"lo" "wors" NA "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&>\"<") 383s [1] "h&e'l"lo" "wor<ld>s" NA 383s [4] "" 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), character()) 383s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), character()) : 383s Argument `what` must be scalar character and not NA. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), NA_character_) 383s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), NA_character_) : 383s Argument `what` must be scalar character and not NA. 383s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 383s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), 1:5) 384s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), 1:5) : 384s Argument `what` must be character, is integer. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 384s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'<&><") 384s [1] "h&e'l\"lo" "wor<ld>s" NA 384s [4] "" 384s 3/14 misc.R: html_esc(c("h&e'l\"lo", "wors", NA, ""), "'x><") 384s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), "'x><") : 384s Argument `what` may only contain ASCII characters "&", "<", ">", "'", or "\"". 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 384s 3/14 misc.R: unitizer_sect("hooks", { 384s 3/14 misc.R: h.1 <- list(set = function(...) cat("Set hooks: ", names(list(...) 384s 3/14 misc.R: h.2 <- list(set = function(...) cat("Set hooks: ", names(list(...) 384s 3/14 misc.R: h.3 <- list(set = function(...) cat("Set hooks: ", names(list(...) 384s 3/14 misc.R: h.4 <- list(set = function(...) stop("error in set"), get = functi 384s 3/14 misc.R: set_knit_hooks(list(1, 2)) 384s Error in set_knit_hooks(list(1, 2)) : 384s Argument `hooks` does not appear to be `knitr::knit_hooks`. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(list(function() NULL, function() NULL)) 384s Error in set_knit_hooks(list(function() NULL, function() NULL)) : 384s Argument `hooks` does not appear to be `knitr::knit_hooks`. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: res1 <- set_knit_hooks(h.1, .test = TRUE) 384s Set hooks: output 384s 384s 3/14 misc.R: res1[["new.hooks"]][["output"]]("hello") 384s [1] "old.hook" 384s 3/14 misc.R: res1[["new.hooks"]][["output"]]("hello\033[31m world") 384s [1] "
hello world
" 384s 3/14 misc.R: res1a <- set_knit_hooks(h.1, split.nl = TRUE, .test = TRUE) 384s Set hooks: output 384s 384s 3/14 misc.R: res1a[["new.hooks"]][["output"]]("hello\033[31m wo\nrld") 384s [1] "
hello wo\nrld
" 384s 3/14 misc.R: p.f.2 <- function(x, y) NULL 384s 3/14 misc.R: p.f.3 <- function(x, class) sprintf("new proc fun, '%s'", class) 384s 3/14 misc.R: p.f.4 <- function(x, class) stop("new proc fun") 384s 3/14 misc.R: set_knit_hooks(h.1, split.nl = "banana") 384s Error in set_knit_hooks(h.1, split.nl = "banana") : 384s Argument `split.n` must be TRUE or FALSE 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(h.1, proc.fun = p.f.2) 384s Error in set_knit_hooks(h.1, proc.fun = p.f.2) : 384s Argument `proc.fun` must be a function with formals named `x` and `class`. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(h.1, which = "hello") 384s Error in set_knit_hooks(h.1, which = "hello") : 384s Argument `which` must be character containing values in c("output", "warning", "error", "message") 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(h.1, which = NULL) 384s Error in set_knit_hooks(h.1, which = NULL) : 384s Argument `which` must be character containing values in c("output", "warning", "error", "message") 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: res2 <- set_knit_hooks(h.1, which = c("output", "message"), class 384s Set hooks: output message 384s 384s 3/14 misc.R: res2[["new.hooks"]][["message"]]("hello") 384s [1] "old.hook" 384s 3/14 misc.R: res2[["new.hooks"]][["message"]]("hello\033[31m world") 384s [1] "new proc fun, 'f-message'" 384s 3/14 misc.R: res2[["new.hooks"]][["output"]]("hello\033[31m world") 384s [1] "new proc fun, 'f-output'" 384s 3/14 misc.R: res3 <- set_knit_hooks(h.1, which = c("message", "warning"), 384s Set hooks: message warning 384s 384s 3/14 misc.R: res3[["new.hooks"]][["warning"]]("hello") 384s [1] "old.hook" 384s 3/14 misc.R: res3[["new.hooks"]][["warning"]]("hello\033[31mworld") 384s Error in proc.fun(x = x, class = class) : new proc fun 384s Error in res3[["new.hooks"]][["warning"]]("hello\033[31mworld") : 384s Argument `proc.fun` for `set_knit_hooks` caused an error when processing output; see prior error. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 384s Warning in set_knit_hooks(h.2) : 384s 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 384s 3/14 misc.R: set_knit_hooks(h.2) 384s Set hooks: output 384s 384s $output 384s NULL 384s 384s Error in hooks$get(hook.name) : error in get 384s Warning in set_knit_hooks(h.3) : 384s 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 384s 3/14 misc.R: set_knit_hooks(h.3) 384s Set hooks: output 384s 384s $output 384s NULL 384s 384s 3/14 misc.R: set_knit_hooks(h.4) 384s Error in (function (...) : error in set 384s 384s $output 384s Warning in set_knit_hooks(h.4) : 384s Failure while trying to set hooks; see prior error; are you sure you passed `knitr::knit_hooks` as the `hooks` argument? 384s function() "old.hook" 384s 384s 384s 3/14 misc.R: set_knit_hooks(h.1, style = NULL) 384s Error in set_knit_hooks(h.1, style = NULL) : 384s Argument `style` must be character. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(h.1, class = 1:10) 384s Error in set_knit_hooks(h.1, class = 1:10) : 384s Argument `class` should be a character vector the same length as `which`. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(h.1, class = letters) 384s Error in set_knit_hooks(h.1, class = letters) : 384s Argument `class` should be a character vector the same length as `which`. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: set_knit_hooks(h.1, which = c("output", "message", "output")) 384s Error in set_knit_hooks(h.1, which = c("output", "message", "output")) : 384s Argument `which` may not contain duplicate values (output). 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> set_knit_hooks 384s 3/14 misc.R: unitizer_sect("output funs", { 384s 3/14 misc.R: fansi_lines(1:3) 384s [1] "\033[37;48;5;18m1\033[39;49m" "\033[37;48;5;19m2\033[39;49m" 384s [3] "\033[37;48;5;20m3\033[39;49m" 384s 3/14 misc.R: fansi_lines(1:3, step = "hello") 384s Error in fansi_lines(1:3, step = "hello") : 384s Argument `step` must be a strictly positive scalar integer. 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> fansi_lines 384s 3/14 misc.R: capture.output(fwl("\033[43mhello")) 384s [1] "\033[43mhello" "\033[0m" 384s 3/14 misc.R: unitizer_sect("validation", { 384s 3/14 misc.R: fansi:::VAL_IN_ENV(booboo = "error") 384s Error in fansi:::VAL_IN_ENV(booboo = "error") : 384s Internal Error: some arguments to validate unknown 384s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 384s 384s 4/14 nchar.R: 384s 4/14 nchar.R: library(fansi) 384s 4/14 nchar.R: unitizer_sect("basic tests", { 384s 4/14 nchar.R: nchar_ctl(c("hello", "world")) 384s [1] 5 5 384s 4/14 nchar.R: nchar_ctl(c("hello", "world"), type = "width") 384s [1] 5 5 384s 4/14 nchar.R: nchar_ctl(c("hello", "world"), type = "wi") 384s [1] 5 5 384s 4/14 nchar.R: na.world <- c("hello", NA, "world", "") 384s 4/14 nchar.R: identical(nchar_ctl(na.world), nchar(na.world)) 384s [1] TRUE 384s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = FALSE), nchar(na.world, 384s [1] TRUE 384s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = NA, type = "width"), nchar 384s [1] TRUE 384s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = TRUE, type = "width"), 384s [1] TRUE 384s 4/14 nchar.R: identical(nzchar_ctl(na.world), nzchar(na.world)) 384s [1] TRUE 384s 4/14 nchar.R: identical(nzchar_ctl(na.world, keepNA = TRUE), nzchar(na.world, 384s [1] TRUE 384s 4/14 nchar.R: identical(nzchar_ctl(na.world, keepNA = NA), nzchar(na.world, 384s [1] TRUE 384s 4/14 nchar.R: identical(nchar_ctl(na.world, type = "bytes"), nchar(na.world, 384s [1] TRUE 384s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = FALSE, type = "bytes"), 384s [1] TRUE 384s 4/14 nchar.R: identical(nchar_ctl(na.world, keepNA = TRUE, type = "bytes"), 384s [1] TRUE 384s 4/14 nchar.R: w.names <- c(a = "hello", b = "world") 384s 4/14 nchar.R: identical(nchar_ctl(w.names), nchar(w.names)) 384s [1] TRUE 384s 4/14 nchar.R: w.dim <- matrix(letters[1:6], 2, 3, dimnames = list(X = LETTERS[2 384s 4/14 nchar.R: identical(nchar_ctl(w.dim), nchar(w.dim)) 384s [1] TRUE 384s 4/14 nchar.R: hw.sgr <- c("hello", "wo\033[42mrld", "\033[31m", "mo\non", "star 384s 4/14 nchar.R: identical(nchar_ctl(hw.sgr), nchar(strip_ctl(hw.sgr))) 384s [1] TRUE 384s 4/14 nchar.R: x <- "\360" 384s 4/14 nchar.R: if (isTRUE(l10n_info()[["UTF-8"]])) { 384s [1] TRUE 384s 4/14 nchar.R: Encoding(x) <- "UTF-8" 384s 4/14 nchar.R: identical(nzchar_ctl(x), nzchar(x)) 384s [1] TRUE 384s 4/14 nchar.R: nchar_ctl(x) 384s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 384s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 384s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 384s 4/14 nchar.R: nchar_ctl(c("", x)) 384s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 384s Argument `x` contains a malformed UTF-8 sequence at index [2], see `?unhandled_ctl`. 384s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 384s 4/14 nchar.R: identical(nchar_ctl(x, allowNA = TRUE), nchar(x, allowNA = TRUE)) 384s [1] TRUE 384s 4/14 nchar.R: unitizer_sect("with escapes", { 384s 4/14 nchar.R: esc.2 <- "\n\r\033P\033[31m\a" 384s 4/14 nchar.R: nchar_ctl(esc.2) 384s [1] 0 384s 4/14 nchar.R: nchar_ctl(esc.2, warn = FALSE) 384s [1] 0 384s 4/14 nchar.R: nzchar_ctl(esc.2) 384s [1] FALSE 384s 4/14 nchar.R: nzchar_ctl(esc.2, warn = FALSE) 384s [1] FALSE 384s 4/14 nchar.R: nchar_ctl("\033[31#mworld", ctl = "sgr") 384s [1] 5 384s 4/14 nchar.R: nchar_ctl("\033[31#mworld", ctl = "csi") 384s [1] 11 384s 4/14 nchar.R: unitizer_sect("ctl", { 384s 4/14 nchar.R: esc.3 <- "\n\t\033[31m\033[41!m\033p" 384s 4/14 nchar.R: nzchar_ctl(esc.3, warn = FALSE) 384s [1] FALSE 384s 4/14 nchar.R: nzchar_ctl(sprintf("%sa", esc.3), warn = FALSE) 384s [1] TRUE 384s 4/14 nchar.R: nzchar_ctl(esc.3, ctl = c("sgr", "csi", "esc"), warn = FALSE) 384s [1] TRUE 384s 4/14 nchar.R: nzchar_ctl(esc.3, ctl = c("c0", "nl"), warn = FALSE) 384s [1] TRUE 384s 4/14 nchar.R: nzchar_ctl("\n\t\n", ctl = c("nl"), warn = FALSE) 384s [1] TRUE 384s 4/14 nchar.R: nzchar_ctl("\t\n", ctl = c("nl"), warn = FALSE) 384s [1] TRUE 384s 4/14 nchar.R: unitizer_sect("corner cases", { 384s 4/14 nchar.R: ncbad <- c("\033\200", "\033[31;\200m", "\033[31;\200p", "\033]8; 385s 4/14 nchar.R: Encoding(ncbad) <- "UTF-8" 385s 4/14 nchar.R: nchar_ctl(ncbad) 385s [1] 0 0 0 0 0 385s 4/14 nchar.R: fansi:::set_rver(numeric_version("3.2.1")) 385s 4/14 nchar.R: nzchar_ctl(c("\033[31mA", "\033[31m")) 385s [1] TRUE FALSE 385s 4/14 nchar.R: nchar_ctl(c("\033[31mA", "\033[31m")) 385s [1] 1 0 385s 4/14 nchar.R: fansi:::set_rver() 385s 4/14 nchar.R: unitizer_sect("bad inputs", { 385s 4/14 nchar.R: nchar_ctl(9:10, warn = 1:3) 385s Error in nchar_ctl(9:10, warn = 1:3) : 385s Argument `warn` must be TRUE or FALSE. 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", allowNA = 1:3) 385s Error in nchar_ctl("hello\033[31m world", allowNA = 1:3) : 385s Argument `allowNA` must be interpretable as a scalar logical. 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", keepNA = 1:3) 385s Error in nchar_ctl("hello\033[31m world", keepNA = 1:3) : 385s Argument `keepNA` must be interpretable as a scalar logical. 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", strip = 1:3) 385s Parameter `strip` has been deprecated; use `ctl` instead. 385s Error in nchar_ctl("hello\033[31m world", strip = 1:3) : 385s Argument `ctl` must be character. 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", ctl = "bananas") 385s Error in nchar_ctl("hello\033[31m world", ctl = "bananas") : 385s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = NA_character_) 385s Error in nchar_ctl("hello\033[31m world", type = NA_character_) : 385s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s Error in nchar_ctl("hello\033[31m world", type = 1) : 385s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = 1) 385s 4/14 nchar.R: nchar_ctl("hello\033[31m world", type = "bananas") 385s Error in nchar_ctl("hello\033[31m world", type = "bananas") : 385s Argument `type` must partial match one of c("chars", "width", "graphemes", "bytes") 385s Calls: unitize_dir ... eval -> withVisible -> nchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nzchar_ctl(9:10, warn = 1:3) 385s Error in nzchar_ctl(9:10, warn = 1:3) : 385s Argument `warn` must be TRUE or FALSE. 385s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", keepNA = 1:3) 385s Error in nzchar_ctl("hello\033[31m world", keepNA = 1:3) : 385s Argument `keepNA` must be interpretable as a scalar logical. 385s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", ctl = 1) 385s Error in nzchar_ctl("hello\033[31m world", ctl = 1) : 385s Argument `ctl` must be character. 385s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 385s 4/14 nchar.R: nzchar_ctl("hello\033[31m world", ctl = "bananas") 385s Error in nzchar_ctl("hello\033[31m world", ctl = "bananas") : 385s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 385s Calls: unitize_dir ... eval -> withVisible -> nzchar_ctl -> VAL_IN_ENV -> stop2 385s 385s 5/14 normalize.R: 385s 5/14 normalize.R: library(fansi) 385s 5/14 normalize.R: unitizer_sect("no expansion", { 385s 5/14 normalize.R: normalize_state("A\033[31mB") 385s [1] "A\033[31mB" 385s 5/14 normalize.R: normalize_state("\033[31mAB") 385s [1] "\033[31mAB" 385s 5/14 normalize.R: normalize_state("AB\033[31m") 385s [1] "AB\033[31m" 385s 5/14 normalize.R: normalize_state(c("A\033[31mB", "AB")) 385s [1] "A\033[31mB" "AB" 385s 5/14 normalize.R: normalize_state(c("\033[31mAB", "AB")) 385s [1] "\033[31mAB" "AB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31m", "AB")) 385s [1] "AB\033[31m" "AB" 385s 5/14 normalize.R: unitizer_sect("simple expansion", { 385s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "AB")) 385s [1] "A\033[31m\033[42mB" "AB" 385s 5/14 normalize.R: normalize_state(c("\033[31;42mAB", "AB")) 385s [1] "\033[31m\033[42mAB" "AB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "AB")) 385s [1] "AB\033[31m\033[42m" "AB" 385s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "A\033[39;4mB")) 385s [1] "A\033[31m\033[42mB" "A\033[4mB" 385s 5/14 normalize.R: normalize_state(c("A\033[31;42mB", "\033[39;4mAB")) 385s [1] "A\033[31m\033[42mB" "\033[4mAB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "A\033[39;4mB")) 385s [1] "AB\033[31m\033[42m" "A\033[4mB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "A\033[0;4mB")) 385s [1] "AB\033[31m\033[42m" "A\033[4mB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "AB\033[0;4m")) 385s [1] "AB\033[31m\033[42m" "AB\033[4m" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", "\033[0;4mAB")) 385s [1] "AB\033[31m\033[42m" "\033[4mAB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", NA, "\033[0;4mAB")) 385s [1] "AB\033[31m\033[42m" NA "\033[4mAB" 385s 5/14 normalize.R: normalize_state(c("AB\033[31;42m", NA, "\033[0;4mAB"), carry 385s [1] "AB\033[31m\033[42m" NA NA 385s 5/14 normalize.R: unitizer_sect("superflous codes", { 385s 5/14 normalize.R: normalize_state(c("A\033[31;44;38;5;226;36mBC\033[mD")) 385s [1] "A\033[36m\033[44mBC\033[39m\033[49mD" 385s 5/14 normalize.R: normalize_state(c("A\033[31;44;38;5;226;36m\033[0mBCD")) 385s [1] "ABCD" 385s 5/14 normalize.R: unitizer_sect("broad code test", { 385s 5/14 normalize.R: normalize_state(c("A\033[33;44mB\033[1;3;4mCD\033[mE")) 385s [1] "A\033[33m\033[44mB\033[1m\033[3m\033[4mCD\033[22m\033[23m\033[24m\033[39m\033[49mE" 385s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 385s [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" 385s 5/14 normalize.R: unhandled_ctl(normalize_state("A\033[33;44mB\033[1;2;3;4;5;6; 385s [1] index start stop error translated esc 385s <0 rows> (or 0-length row.names) 385s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 385s [1] "A\033[33m\033[44mB\033[39m\033[49mC" 385s 5/14 normalize.R: normalize_state("A\033[33;44mB\033[1;2;3;4;5;6;7;8;9;11;21;26 385s [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" 385s 5/14 normalize.R: unitizer_sect("errors and warnings", { 385s 5/14 normalize.R: normalize_state(list(1, 2, 3)) 385s [1] "1" "2" "3" 385s 5/14 normalize.R: x <- c("A\033[38;2;100;150;3;36mBC\033[mD") 385s 5/14 normalize.R: normalize_state(x, term.cap = c("old")) 385s [1] "A\033[2m\033[3m\033[36mBC\033[22m\033[23m\033[39mD" 385s Warning in normalize_state(x, term.cap = c("old")) : 385s 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. 385s 5/14 normalize.R: normalize_state(x, term.cap = c("bright", "old")) 385s [1] "A\033[2m\033[3m\033[36m\033[100mBC\033[22m\033[23m\033[39m\033[49mD" 385s Warning in normalize_state(x, term.cap = c("bright", "old")) : 385s 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. 385s 5/14 normalize.R: normalize_state(x, term.cap = character()) 385s [1] "A\033[36mBC\033[39mD" 385s Warning in normalize_state(x, term.cap = character()) : 385s 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. 385s Warning in normalize_state(x, term.cap = c("bright")) : 385s 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. 385s 5/14 normalize.R: normalize_state(x, term.cap = c("bright")) 385s [1] "A\033[36mBC\033[39mD" 385s 5/14 normalize.R: normalize_state(x, term.cap = c("bright", "256", "truecolor") 385s [1] "A\033[36mBC\033[39mD" 385s 5/14 normalize.R: substr_ctl(x, 1, 2, normalize = "yeah baby") 385s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 385s Argument `normalize` must be TRUE or FALSE. 385s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 385s 5/14 normalize.R: substr_ctl(x, 1, 2, normalize = NA) 385s Error in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 385s Argument `normalize` must be TRUE or FALSE. 385s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> VAL_IN_ENV -> stop2 385s 5/14 normalize.R: unitizer_sect("in functions", { 385s 5/14 normalize.R: string1 <- "hello \033[33;44mblue world" 385s 5/14 normalize.R: string2 <- "\033[4;1mgoodbye\033[7m white \033[mmoon" 385s 5/14 normalize.R: string3 <- c(string1, string2) 385s 5/14 normalize.R: strwrap_ctl(string1, 11, normalize = TRUE) 385s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 385s [2] "\033[33m\033[44mworld\033[39m\033[49m" 385s 5/14 normalize.R: strwrap_ctl(string2, 11, normalize = TRUE) 385s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 385s [2] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 385s 5/14 normalize.R: strwrap_ctl(string3, 11, normalize = TRUE) 385s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 385s [2] "\033[33m\033[44mworld\033[39m\033[49m" 385s [3] "\033[1m\033[4mgoodbye\033[22m\033[24m" 385s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 385s 5/14 normalize.R: strwrap_ctl(string3, 11, normalize = TRUE, simplify = FALSE) 385s [[1]] 385s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 385s [2] "\033[33m\033[44mworld\033[39m\033[49m" 385s 385s [[2]] 385s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 385s [2] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 385s 385s 5/14 normalize.R: strwrap2_ctl(string3, 11, normalize = TRUE, pad.end = " ") 385s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 385s [2] "\033[33m\033[44mworld \033[39m\033[49m" 385s [3] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 385s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 385s 5/14 normalize.R: strwrap_sgr(string3, 11, normalize = TRUE) 385s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 385s [2] "\033[33m\033[44mworld\033[39m\033[49m" 385s [3] "\033[1m\033[4mgoodbye\033[22m\033[24m" 385s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 385s 5/14 normalize.R: strwrap2_sgr(string3, 11, normalize = TRUE, pad.end = " ") 385s [1] "hello \033[33m\033[44mblue\033[39m\033[49m" 385s [2] "\033[33m\033[44mworld \033[39m\033[49m" 385s [3] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 385s [4] "\033[1m\033[4m\033[7mwhite \033[22m\033[24m\033[27mmoon" 385s 5/14 normalize.R: strtrim_sgr(string3, 8, normalize = TRUE) 385s [1] "hello \033[33m\033[44mbl\033[39m\033[49m" 385s [2] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 385s 5/14 normalize.R: strtrim_sgr(string3, 8, normalize = TRUE) 385s [1] "hello \033[33m\033[44mbl\033[39m\033[49m" 385s [2] "\033[1m\033[4mgoodbye\033[7m \033[22m\033[24m\033[27m" 385s 5/14 normalize.R: substr_ctl("\033[33;44mhello\033[m world", 3, 8, normalize = 385s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 385s 5/14 normalize.R: substr2_ctl("\033[33;44mhello\033[m world", 3, 8, normalize = 385s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 385s 5/14 normalize.R: substr_sgr("\033[33;44mhello\033[m world", 3, 8, normalize = 385s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 385s 5/14 normalize.R: substr2_sgr("\033[33;44mhello\033[m world", 3, 8, normalize = 385s [1] "\033[33m\033[44mllo\033[39m\033[49m wo" 385s 5/14 normalize.R: substr_ctl(string3, c(3, 3), c(8, 15), normalize = TRUE) 385s [1] "llo \033[33m\033[44mbl\033[39m\033[49m" 385s [2] "\033[1m\033[4modbye\033[7m white \033[22m\033[24m\033[27mm" 385s 5/14 normalize.R: strsplit_ctl(string3, " ", normalize = TRUE) 385s [[1]] 385s [1] "hello" 385s [2] "\033[33m\033[44mblue\033[39m\033[49m" 385s [3] "\033[33m\033[44mworld\033[39m\033[49m" 385s 385s [[2]] 385s [1] "\033[1m\033[4mgoodbye\033[22m\033[24m" 385s [2] "\033[1m\033[4m\033[7mwhite\033[22m\033[24m\033[27m" 385s [3] "moon" 385s 385s 385s 6/14 overflow.R: 385s 6/14 overflow.R: library(fansi) 385s 6/14 overflow.R: old_max <- fansi:::set_int_max(15) 385s 6/14 overflow.R: unitizer_sect("tabs", { 385s 6/14 overflow.R: tabs_as_spaces("\t1234567") 385s [1] " 1234567" 385s 6/14 overflow.R: tryCatch(tabs_as_spaces("\t12345678"), error = conditionMessag 385s [1] "Converting tabs to spaces will cause string to be longer than allowed INT_MAX." 385s 6/14 overflow.R: invisible(fansi:::set_int_max(12)) 385s 6/14 overflow.R: tabs_as_spaces(c("\t", "\t123")) 385s [1] " " " 123" 385s 6/14 overflow.R: unitizer_sect("wrap", { 385s 6/14 overflow.R: invisible(fansi:::set_int_max(15)) 385s 6/14 overflow.R: string <- "0123456789" 385s 6/14 overflow.R: strwrap_ctl(string, 16) 385s [1] "0123456789" 385s 6/14 overflow.R: strwrap2_ctl(string, 16, pad.end = " ") 385s [1] "0123456789 " 385s 6/14 overflow.R: tce(strwrap2_ctl(string, 17, pad.end = " ")) 385s [1] "Adding padding will create string longer than INT_MAX at index [1]. Try again with smaller strings." 385s 6/14 overflow.R: strwrap_ctl(string, 16, prefix = "-----") 385s [1] "-----0123456789" 385s 6/14 overflow.R: tce(strwrap_ctl(string, 16, prefix = "------")) 385s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 385s 6/14 overflow.R: strwrap_ctl(string, 16, indent = 5) 385s [1] " 0123456789" 385s 6/14 overflow.R: tce(strwrap_ctl(string, 16, indent = 6)) 385s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 385s 6/14 overflow.R: strwrap_ctl(string, 16, indent = 2, prefix = "---") 385s [1] "--- 0123456789" 385s 6/14 overflow.R: tce(strwrap_ctl(string, 16, indent = 3, prefix = "---")) 385s [1] "Adding prefix characters will create string longer than INT_MAX at index [1]. Try again with smaller strings." 385s 6/14 overflow.R: string2 <- "012345678901234" 385s 6/14 overflow.R: string3 <- "0123456789012345" 385s 6/14 overflow.R: strwrap_ctl(string2, 16) 385s [1] "012345678901234" 385s 6/14 overflow.R: tce(strwrap_ctl(string3, 16)) 385s [1] "Strings longer than INT_MAX not supported (length 16 at index 1)." 385s 6/14 overflow.R: string4 <- "\033[31m0123456789" 385s 6/14 overflow.R: tce(strwrap_ctl(string4, 16)) 385s [1] "Generating closing SGR will create string longer than INT_MAX at index [1]. Try again with smaller strings." 385s 6/14 overflow.R: invisible(fansi:::set_int_max(9)) 385s 6/14 overflow.R: tce(strwrap_ctl("A\033[31m a", 5)) 385s [1] "Generating closing SGR will create string longer than INT_MAX at index [1]. Try again with smaller strings." 385s 6/14 overflow.R: unitizer_sect("html", { 385s 6/14 overflow.R: invisible(fansi:::set_int_max(38)) 385s 6/14 overflow.R: sgr_to_html("\033[31ma") 385s [1] "a" 385s 6/14 overflow.R: tce(sgr_to_html("\033[31mab")) 385s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 386s 6/14 overflow.R: tce(sgr_to_html("\033[31m\033[42mhello")) 386s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 386s 6/14 overflow.R: invisible(fansi:::set_int_max(57)) 386s 6/14 overflow.R: tce(sgr_to_html("\033[31m\033[42mhello", classes = TRUE)) 386s [1] "Expanding SGR sequences to HTML will create string longer than INT_MAX at index [1]. Try again with smaller strings." 386s 6/14 overflow.R: invisible(fansi:::set_int_max(58)) 386s 6/14 overflow.R: (x <- sgr_to_html("\033[31m\033[42mhello", classes = TRUE)) 386s [1] "hello" 386s 6/14 overflow.R: nchar(x) 386s [1] 58 386s 6/14 overflow.R: invisible(fansi:::set_int_max(4)) 386s 6/14 overflow.R: tce(sgr_to_html("hello")) 386s [1] "Strings longer than INT_MAX not supported (length 5 at index 1)." 386s 6/14 overflow.R: tce(html_esc("hello")) 386s [1] "Strings longer than INT_MAX not supported (length 5 at index 1)." 386s 6/14 overflow.R: tce(html_esc("<")) 386s [1] "<" 386s 6/14 overflow.R: tce(html_esc(" eval -> eval -> withVisible -> 386s 6/14 overflow.R: invisible(fansi:::set_int_max(130)) 386s 6/14 overflow.R: fansi:::size_buff(c(0L, 127L, 128L, 64L, 200L, 1024L)) 386s Error in fansi:::size_buff(c(0L, 127L, 128L, 64L, 200L, 1024L)) : 386s Internal Error: max allowed buffer size is INT_MAX + 1. (req: 201 vs lim: 131), in FANSI_size_buff_ext. 386s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 386s 6/14 overflow.R: invisible(fansi:::set_int_max(64)) 386s 6/14 overflow.R: fansi:::size_buff(c(0L, 32L, 63L, 64L)) 386s [1] 1 33 65 65 386s 6/14 overflow.R: fansi:::size_buff(c(0L, 32L, 63L, 65L)) 386s Error in fansi:::size_buff(c(0L, 32L, 63L, 65L)) : 386s Internal Error: max allowed buffer size is INT_MAX + 1. (req: 66 vs lim: 65), in FANSI_size_buff_ext. 386s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 386s 6/14 overflow.R: invisible(fansi:::set_int_max(old_max)) 386s 6/14 overflow.R: dat <- fansi:::size_buff_prot_test() 386s Warning in fansi:::size_buff_prot_test() : 386s Unable to release buffer allocated by FANSI_size_buff_prot_test while in native code. Buffer will be released on return to R. 386s Warning in fansi:::size_buff_prot_test() : 386s Unable to release buffer allocated by FANSI_size_buff_prot_test while in native code. Buffer will be released on return to R. 386s 6/14 overflow.R: dat["first", "self"] == dat["smaller 1.0", "self"] 386s [1] TRUE 386s 6/14 overflow.R: dat["new buff", "prev"] == dat["grow 1.0", "self"] 386s [1] TRUE 386s 6/14 overflow.R: dat["new buff", "prev"] != dat["new buff", "self"] 386s [1] TRUE 386s 6/14 overflow.R: dat["smaller 1.1", "self"] == dat["grow 1.0", "self"] 386s [1] TRUE 386s 6/14 overflow.R: dat["smaller 2.0", "self"] == dat["new buff", "self"] 386s [1] TRUE 386s 6/14 overflow.R: dat["smaller 2.0", "prev"] == dat["new buff", "prev"] 386s [1] TRUE 386s 6/14 overflow.R: dat["smaller 2.0", "prev"] == dat["grow 2.0", "prev"] 386s [1] TRUE 386s 6/14 overflow.R: dat["grow 1.1", "prev"] == dat["grow 2.0", "self"] 386s [1] TRUE 386s 6/14 overflow.R: dat["grow 2.1", "prev"] == dat["grow 1.1", "self"] 386s [1] TRUE 386s 6/14 overflow.R: unitizer_sect("misc", { 386s 6/14 overflow.R: invisible(fansi:::set_int_max(5)) 386s 6/14 overflow.R: substr_ctl("\033[43mA B", 5, 5) 386s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 386s Strings longer than INT_MAX not supported (length 8 at index 1). 386s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 386s 6/14 overflow.R: substr_ctl("12345", 1, 5) 386s [1] "12345" 386s 6/14 overflow.R: substr_ctl("123456", 1, 6) 386s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 386s Strings longer than INT_MAX not supported (length 6 at index 1). 386s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 386s 6/14 overflow.R: fansi:::reset_limits() 386s [1] TRUE 386s 6/14 overflow.R: unitizer_sect("R_len_t", { 386s 6/14 overflow.R: old_rlent <- fansi:::set_rlent_max(5) 386s 6/14 overflow.R: tabs_as_spaces("A\tB") 386s Error in tabs_as_spaces("A\tB") : 386s Attempting to create CHARSXP longer than R_LEN_T_MAX at index [1]. 386s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> tabs_as_spaces 386s 6/14 overflow.R: new_rlent <- fansi:::set_rlent_max(old_rlent) 386s 6/14 overflow.R: fansi:::reset_limits() 386s [1] TRUE 386s 6/14 overflow.R: unitizer_sect("internal", { 386s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_reset)) 386s [1] "Internal Error: attempt to size buffer w/o reset in FANSI_buff_test_reset." 386s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_copy_overflow)) 386s [1] "Internal Error: exceeded target buffer size in _copy." 386s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_mcopy_overflow)) 386s [1] "Internal Error: exceeded target buffer size in _mcopy." 386s 6/14 overflow.R: tce(.Call(fansi:::FANSI_buff_test_fill_overflow)) 386s [1] "Internal Error: exceeded allocated buffer in _fill." 386s 386s 7/14 strip.R: 386s 7/14 strip.R: library(fansi) 386s 7/14 strip.R: unitizer_sect("Strip ansi", { 386s 7/14 strip.R: strip_ctl(sprintf("hello %sworld%s", red, end)) 386s [1] "hello world" 386s 7/14 strip.R: strip_ctl(sprintf("he%sllo %sworld", red, end)) 386s [1] "hello world" 386s 7/14 strip.R: strip_ctl(sprintf("%shello %sworld%s", grn.bg, red, end)) 386s [1] "hello world" 386s 7/14 strip.R: strip_ctl(sprintf("%s%shello %sworld%s", grn.bg, inv, red, end)) 386s [1] "hello world" 386s 7/14 strip.R: string <- paste("string", format(1:10)) 386s 7/14 strip.R: string[c(2, 4, 6)] <- paste0(red, string[c(2, 4, 6)], end) 386s 7/14 strip.R: strip_ctl(string) 386s [1] "string 1" "string 2" "string 3" "string 4" "string 5" "string 6" 386s [7] "string 7" "string 8" "string 9" "string 10" 386s 7/14 strip.R: strip_sgr(string) 386s [1] "string 1" "string 2" "string 3" "string 4" "string 5" "string 6" 386s [7] "string 7" "string 8" "string 9" "string 10" 386s 7/14 strip.R: strip_sgr(1:3) 386s [1] "1" "2" "3" 386s 7/14 strip.R: unitizer_sect("Corner cases", { 386s 7/14 strip.R: strip_ctl("hello\033") 386s Warning in strip_ctl("hello\033") : 386s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 386s [1] "hello" 386s 7/14 strip.R: strip_ctl("hello\033", ctl = c("nl", "c0")) 386s [1] "hello\033" 386s 7/14 strip.R: strip_ctl("hello\033[") 386s [1] "hello" 386s Warning in strip_ctl("hello\033[") : 386s 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. 386s 7/14 strip.R: strip_ctl("hello\033[42") 386s [1] "hello" 386s Warning in strip_ctl("hello\033[42") : 386s 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. 386s 7/14 strip.R: strip_ctl("hello\033[42", ctl = c("all", "csi", "sgr")) 386s [1] "hello42" 386s 7/14 strip.R: strip_ctl("hello\033[31##3m illegal") 386s [1] "hello illegal" 386s 7/14 strip.R: strip_ctl("hello\033[31##m legal") 386s [1] "hello legal" 386s 7/14 strip.R: strip_ctl(1:3) 386s [1] "1" "2" "3" 386s 7/14 strip.R: unitizer_sect("Whitespace", { 386s 7/14 strip.R: fansi:::process("hello world") 386s [1] "hello world" 386s 7/14 strip.R: fansi:::process("hello. world") 386s [1] "hello. world" 386s 7/14 strip.R: fansi:::process(c("hello world", "hello. world")) 386s [1] "hello world" "hello. world" 386s 7/14 strip.R: fansi:::process("hello. world? moon! wow.") 386s [1] "hello. world? moon! wow." 386s 7/14 strip.R: fansi:::process(" hello") 386s [1] "hello" 386s 7/14 strip.R: fansi:::process(" hello\n world") 386s [1] "hello world" 386s 7/14 strip.R: fansi:::process(" hello \n world") 386s [1] "hello world" 386s 7/14 strip.R: fansi:::process(" hello world\n ") 386s [1] "hello world" 386s 7/14 strip.R: fansi:::process("hello. ") 386s [1] "hello." 386s 7/14 strip.R: fansi:::process("hello! ") 386s [1] "hello!" 386s 7/14 strip.R: fansi:::process("hello? ") 386s [1] "hello?" 386s 7/14 strip.R: fansi:::process("hello? ") 386s [1] "hello?" 386s 7/14 strip.R: fansi:::process(" \t hello") 386s [1] "hello" 386s 7/14 strip.R: fansi:::process(" \t\a\r hello") 386s [1] "\a\rhello" 386s 7/14 strip.R: fansi:::process(" \t\a\r hello", ctl = c("all", "c0")) 386s [1] "\a\r hello" 386s 7/14 strip.R: fansi:::process("hello. \r world.") 386s [1] "hello. \rworld." 386s 7/14 strip.R: fansi:::process("hello. \033[31m world.\033[0m") 386s [1] "hello. \033[31mworld.\033[0m" 386s 7/14 strip.R: str1 <- c("hello ", " world") 386s 7/14 strip.R: fansi:::process(str1) 386s [1] "hello" "world" 386s 7/14 strip.R: str1 386s [1] "hello " " world" 386s 7/14 strip.R: fansi:::process("hello.\n\nworld") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\n\nworld") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\n\n\nworld") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n \nworld") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\t\nworld") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\t\n\tworld") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n \t \n \t world") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\nworld\n\n") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\nworld\n\n ") 386s [1] "hello.\n\nworld" 386s 7/14 strip.R: fansi:::process("\n\nhello.\n\t\n\tworld\n\t\n woohoo\n ") 386s [1] "\n\nhello.\n\nworld\n\nwoohoo" 386s 7/14 strip.R: fansi:::process("\n \t\nhello.\n\t\n\tworld\n\t\n woohoo\n ") 386s [1] "\n\nhello.\n\nworld\n\nwoohoo" 386s 7/14 strip.R: fansi:::process("hello.\n\033[44m\nworld") 386s [1] "hello.\n\n\033[44mworld" 386s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n \t\nworld") 386s [1] "hello.\n\n\033[44mworld" 386s 7/14 strip.R: fansi:::process("hello.\033[44m\n\n \t\nworld") 386s [1] "hello.\033[44m\n\nworld" 386s 7/14 strip.R: fansi:::process("hello.\n\n \t\n\033[44mworld") 386s [1] "hello.\n\n\033[44mworld" 387s 7/14 strip.R: fansi:::process("hello.\n\n\033[44m \t\nworld") 387s [1] "hello.\n\n\033[44mworld" 387s 7/14 strip.R: fansi:::process("hello \033[44m world") 387s [1] "hello \033[44mworld" 387s 7/14 strip.R: fansi:::process("hello. \033[44m world") 387s [1] "hello. \033[44mworld" 387s 7/14 strip.R: fansi:::process("hello\033[44m\033[31m world") 387s [1] "hello\033[44m\033[31m world" 387s 7/14 strip.R: fansi:::process("hello\033[44m\033[31m\n\nworld") 387s [1] "hello\033[44m\033[31m\n\nworld" 387s 7/14 strip.R: fansi:::process("hello\n\033[44m\033[31m\nworld") 387s [1] "hello\n\n\033[44m\033[31mworld" 387s 7/14 strip.R: fansi:::process("hello\n\n\033[44m\033[31mworld") 387s [1] "hello\n\n\033[44m\033[31mworld" 387s 7/14 strip.R: fansi:::process("hello\033[44m\033[31d world") 387s [1] "hello\033[44m\033[31d world" 387s 7/14 strip.R: fansi:::process("hello \033[44m\033[31d world") 387s [1] "hello \033[44m\033[31dworld" 387s 7/14 strip.R: fansi:::process("hello \033[44m \033[31d world") 387s [1] "hello \033[44m\033[31dworld" 387s 7/14 strip.R: fansi:::process("hello\033[44m\033[31d world", ctl = c("all", 387s [1] "hello\033[44m\033[31d world" 387s 7/14 strip.R: fansi:::process("hello \033[44m\033[31d world", ctl = c("all", 387s [1] "hello \033[44m\033[31d world" 387s 7/14 strip.R: fansi:::process("hello \033[44m \033[31d world", ctl = c("all", 387s [1] "hello \033[44m\033[31d world" 387s 7/14 strip.R: fansi:::process("hello\033[44m\a world", ctl = c("all")) 387s [1] "hello\033[44m\a world" 387s 7/14 strip.R: fansi:::process("hello\033[44m\a world", ctl = c("all", "c0")) 387s [1] "hello\033[44m\a world" 387s 7/14 strip.R: fansi:::process("hello. \033[44m\a world", ctl = c("all")) 387s [1] "hello. \033[44m\aworld" 387s 7/14 strip.R: fansi:::process("hello. \033[44m\a world", ctl = c("all", "c0")) 387s [1] "hello. \033[44m\a world" 387s 7/14 strip.R: fansi:::process("hello. \033[44m \a world", ctl = c("all")) 387s [1] "hello. \033[44m\aworld" 387s 7/14 strip.R: fansi:::process("hello. \033[44m \a world", ctl = c("all", "c0")) 387s [1] "hello. \033[44m\a world" 387s 7/14 strip.R: fansi:::process("hello.\n\033[44m \a world", ctl = c("all")) 387s [1] "hello. \033[44m\aworld" 387s 7/14 strip.R: fansi:::process("hello.\n\033[44m \a world", ctl = c("all", "c0") 387s [1] "hello. \033[44m\a world" 387s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n\a world", ctl = c("all")) 387s [1] "hello.\n\n\033[44m\aworld" 387s 7/14 strip.R: fansi:::process("hello.\n\033[44m\n\a world", ctl = c("all", 387s [1] "hello.\n\n\033[44m\a world" 387s 7/14 strip.R: fansi:::process("hello.\n\033[44m\a\n world", ctl = c("all")) 387s [1] "hello.\n\n\033[44m\aworld" 387s 7/14 strip.R: fansi:::process("hello.\n\033[44m\a\n world", ctl = c("all", 387s [1] "hello. \033[44m\a world" 387s 7/14 strip.R: unitizer_sect("Selective stripping", { 387s 7/14 strip.R: string.0 <- "hello\033k\033[45p world\n\033[31mgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.0) 387s [1] "hello worldgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.0, "sgr") 387s [1] "hello\033k\033[45p world\ngoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.0, c("nl", "c0", "sgr", "csi", "esc")) 387s [1] "hello worldgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.0, "all") 387s [1] "hello worldgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.0, c("c0", "esc")) 387s [1] "hello45p world\n31mgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.0, c("nl")) 387s [1] "hello\033k\033[45p world\033[31mgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.0, character()) 387s [1] "hello\033k\033[45p world\n\033[31mgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.0, c("all", "c0", "esc")) 387s [1] "hello\033k worldgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.0, c("all", "sgr")) 387s [1] "hello world\033[31mgoodbye moon" 387s 7/14 strip.R: string.1 <- "hello\033\033[45p world\n\033[31#3mgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.1, c("nl", "sgr", "esc")) 387s Warning in strip_ctl(string.1, c("nl", "sgr", "esc")) : 387s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 387s [1] "hello[45p worldgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.1, c("csi")) 387s [1] "hello\033 world\n\033[31#3mgoodbye\a moon" 387s 7/14 strip.R: strip_ctl(string.1, "all") 387s Warning in strip_ctl(string.1, "all") : 387s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 387s [1] "hello[45p worldgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.1, c("c0", "nl")) 387s [1] "hello\033\033[45p world\033[31#3mgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.1, c("all", "sgr")) 387s Warning in strip_ctl(string.1, c("all", "sgr")) : 387s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 387s [1] "hello[45p world\033[31#3mgoodbye moon" 387s 7/14 strip.R: strip_sgr(string.1) 387s [1] "hello\033\033[45p world\ngoodbye\a moon" 387s 7/14 strip.R: strip_ctl(c(string.0, string.1, "hello"), warn = FALSE) 387s [1] "hello worldgoodbye moon" "hello[45p worldgoodbye moon" 387s [3] "hello" 387s 7/14 strip.R: string.2 <- "\033k\033[45p\a\n\033[31mgoodbye moon" 387s 7/14 strip.R: strip_ctl(string.2) 387s [1] "goodbye moon" 387s 7/14 strip.R: strip_ctl(string.2, "sgr") 387s [1] "\033k\033[45p\a\ngoodbye moon" 387s 7/14 strip.R: string.3 <- "hello world\033k\033[45p\a\n\033[31m" 387s 7/14 strip.R: strip_ctl(string.3) 387s [1] "hello world" 387s 7/14 strip.R: strip_ctl(string.3, "sgr") 387s [1] "hello world\033k\033[45p\a\n" 387s 7/14 strip.R: unitizer_sect("Bad Inputs", { 387s 7/14 strip.R: strip_ctl("hello\033[41mworld", warn = 1:3) 387s Error in strip_ctl("hello\033[41mworld", warn = 1:3) : 387s Argument `warn` must be TRUE or FALSE. 387s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 387s 7/14 strip.R: strip_ctl("hello\033[41mworld", ctl = 1:3) 387s Error in strip_ctl("hello\033[41mworld", ctl = 1:3) : 387s Argument `ctl` must be character. 387s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 387s 7/14 strip.R: strip_ctl("hello\033[41mworld", ctl = "bananas") 387s Error in strip_ctl("hello\033[41mworld", ctl = "bananas") : 387s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 387s Calls: unitize_dir ... eval -> withVisible -> strip_ctl -> VAL_IN_ENV -> stop2 387s 7/14 strip.R: strip_ctl("hello\033[41mworld", strip = "sgr") 387s Parameter `strip` has been deprecated; use `ctl` instead. 387s [1] "helloworld" 387s 7/14 strip.R: strip_sgr("hello\033[41mworld", warn = 1:3) 387s Error in strip_sgr("hello\033[41mworld", warn = 1:3) : 387s Argument `warn` must be TRUE or FALSE. 387s Calls: unitize_dir ... eval -> withVisible -> strip_sgr -> VAL_IN_ENV -> stop2 387s 387s 8/14 strsplit.R: 387s 8/14 strsplit.R: library(fansi) 387s 8/14 strsplit.R: unitizer_sect("basic splits", { 387s 8/14 strsplit.R: str.0 <- c("hello world", "goodbye moon") 387s 8/14 strsplit.R: identical(strsplit(str.0[1], " "), strsplit_ctl(str.0[1], " ") 387s [1] TRUE 387s 8/14 strsplit.R: identical(strsplit(str.0, "h"), strsplit_ctl(str.0, "h")) 387s [1] TRUE 387s 8/14 strsplit.R: identical(strsplit(str.0, "m"), strsplit_ctl(str.0, "m")) 387s [1] TRUE 387s 8/14 strsplit.R: identical(strsplit(str.0, "g"), strsplit_ctl(str.0, "g")) 387s [1] TRUE 387s 8/14 strsplit.R: str.1 <- "hello\033[31m world" 387s 8/14 strsplit.R: str.2 <- "\033[42m hello\033[m world, Goodbye Moon" 387s 8/14 strsplit.R: strsplit_ctl(str.1, " ") 387s [[1]] 387s [1] "hello" "\033[31mworld\033[0m" 387s 387s 8/14 strsplit.R: strsplit_ctl(str.1, "hello") 387s [[1]] 387s [1] "" "\033[31m world\033[0m" 387s 387s 8/14 strsplit.R: strsplit_ctl(str.2, ", ") 387s [[1]] 387s [1] "\033[42m hello\033[m world" "Goodbye Moon" 387s 387s 8/14 strsplit.R: strsplit_ctl(c(str.1, "hello world", str.2), "hello") 387s [[1]] 387s [1] "" "\033[31m world\033[0m" 387s 387s [[2]] 387s [1] "" " world" 387s 387s [[3]] 387s [1] "\033[42m \033[0m" " world, Goodbye Moon" 387s 387s 8/14 strsplit.R: unitizer_sect("corner cases", { 387s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", "") 387s [[1]] 387s [1] "h" "e" "l" "l" 387s [5] "o" "\033[31m \033[0m" "\033[31mw\033[0m" "\033[31mo\033[0m" 387s [9] "\033[31mr\033[0m" "\033[31ml\033[0m" "\033[31md\033[0m" 387s 387s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", "[", fixed = TRUE) 387s [[1]] 387s [1] "hello\033[31m world" 387s 387s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", NA_character_) 387s Error in strsplit_ctl("hello\033[31m world", NA_character_) : 387s Argument `split` may not contain NAs. 387s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 387s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", character()) 387s [[1]] 387s [1] "h" "e" "l" "l" 387s [5] "o" "\033[31m \033[0m" "\033[31mw\033[0m" "\033[31mo\033[0m" 387s [9] "\033[31mr\033[0m" "\033[31ml\033[0m" "\033[31md\033[0m" 387s 387s 8/14 strsplit.R: strsplit_ctl("hello\033[31m world", letters) 387s [[1]] 387s [1] "hello\033[31m world" 387s 387s 8/14 strsplit.R: splits <- c("h", "e", "o", "llo", "x", "hello") 387s 8/14 strsplit.R: str.spl1 <- strsplit_ctl(rep("hello", 6), splits) 387s 8/14 strsplit.R: str.spl2 <- strsplit(rep("hello", 6), splits) 387s 8/14 strsplit.R: identical(str.spl1, str.spl2) 387s [1] TRUE 387s 8/14 strsplit.R: str.spl3 <- strsplit_ctl(rep("\033[31mhello\033[39m", 6), spli 387s 8/14 strsplit.R: str.spl3 387s [[1]] 387s [1] "" "\033[31mello\033[0m" 387s 387s [[2]] 387s [1] "\033[31mh\033[0m" "\033[31mllo\033[0m" 387s 387s [[3]] 387s [1] "\033[31mhell\033[0m" 387s 387s [[4]] 387s [1] "\033[31mhe\033[0m" 387s 387s [[5]] 387s [1] "\033[31mhello\033[39m" 387s 387s [[6]] 387s [1] "" 387s 387s 8/14 strsplit.R: identical(lapply(str.spl3, strip_ctl), str.spl2) 387s [1] TRUE 387s 8/14 strsplit.R: strsplit_ctl("", " ") 387s [[1]] 387s character(0) 387s 387s 8/14 strsplit.R: strsplit_ctl("", "") 387s [[1]] 387s character(0) 387s 387s 8/14 strsplit.R: strsplit_ctl(c("\033[31mab\033[0m", ""), "") 387s [[1]] 387s [1] "\033[31ma\033[0m" "\033[31mb\033[0m" 387s 387s [[2]] 387s character(0) 387s 387s 8/14 strsplit.R: strsplit_ctl("hello", NULL) 387s [[1]] 387s [1] "h" "e" "l" "l" "o" 387s 387s 8/14 strsplit.R: str.sp14 <- c("\033[31mhello\nworld", "\ngoodbye\nmoon") 387s 8/14 strsplit.R: strsplit_ctl(str.sp14, "\n") 387s [[1]] 387s [1] "\033[31mhello\nworld" 387s 387s [[2]] 387s [1] "\ngoodbye\nmoon" 387s 387s 8/14 strsplit.R: strsplit_sgr(str.sp14, "\n") 387s [[1]] 387s [1] "\033[31mhello\033[0m" "\033[31mworld\033[0m" 387s 387s [[2]] 387s [1] "" "goodbye" "moon" 387s 387s 8/14 strsplit.R: strsplit_ctl(str.sp14, "\n", ctl = c("all", "nl")) 387s [[1]] 387s [1] "\033[31mhello\033[0m" "\033[31mworld\033[0m" 387s 387s [[2]] 387s [1] "" "goodbye" "moon" 387s 387s 8/14 strsplit.R: unitizer_sect("bad intputs", { 387s 8/14 strsplit.R: str.bytes <- "\336" 387s 8/14 strsplit.R: Encoding(str.bytes) <- "bytes" 387s 8/14 strsplit.R: strsplit_ctl(str.bytes, "") 387s Error in strsplit_ctl(str.bytes, "") : 387s Argument `x` contains a "bytes" encoded string at index [1], which is disallowed. 387s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 387s 8/14 strsplit.R: strsplit_ctl(str.2, NA) 387s Error in strsplit_ctl(str.2, NA) : Argument `split` may not contain NAs. 387s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", warn = NULL) 387s Error in strsplit_ctl(str.2, "", warn = NULL) : 387s Argument `warn` must be TRUE or FALSE. 387s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", fixed = NA_integer_) 387s Error in strsplit_ctl(str.2, "", fixed = NA_integer_) : 387s Argument `fixed` must be TRUE or FALSE. 387s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", perl = NA_integer_) 387s Error in strsplit_ctl(str.2, "", perl = NA_integer_) : 387s Argument `perl` must be TRUE or FALSE. 387s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", useBytes = NA_integer_) 387s Error in strsplit_ctl(str.2, "", useBytes = NA_integer_) : 387s Argument `useBytes` must be TRUE or FALSE. 387s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", term.cap = 1:3) 387s Error in strsplit_ctl(str.2, "", term.cap = 1:3) : 387s Argument `term.cap` must be character. 387s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", term.cap = "bananas") 387s Error in strsplit_ctl(str.2, "", term.cap = "bananas") : 387s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 387s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", ctl = 1:3) 387s Error in strsplit_ctl(str.2, "", ctl = 1:3) : 387s Argument `ctl` must be character. 387s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 387s 8/14 strsplit.R: strsplit_ctl(str.2, "", ctl = "bananas") 387s Error in strsplit_ctl(str.2, "", ctl = "bananas") : 387s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 387s Calls: unitize_dir ... eval -> withVisible -> strsplit_ctl -> VAL_IN_ENV -> stop2 387s 8/14 strsplit.R: strsplit_ctl("a b", str.bytes) 387s Error in strsplit_ctl("a b", str.bytes) : 387s Argument `split` may not be "bytes" encoded. 387s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strsplit_ctl 387s 8/14 strsplit.R: unitizer_sect("issue 55", { 387s 8/14 strsplit.R: strsplit_ctl("hello\nworld", "\n") 387s [[1]] 387s [1] "hello\nworld" 387s 387s 8/14 strsplit.R: strsplit_sgr("hello\033[31mworld", "\033[31m", fixed = TRUE) 387s [[1]] 387s [1] "hello\033[31mworld" 387s 387s 8/14 strsplit.R: strsplit_ctl("a\nb", "\n", ctl = c("all", "nl")) 387s [[1]] 387s [1] "a" "b" 387s 388s 8/14 strsplit.R: strsplit_sgr("hello\nworld", "\n") 388s [[1]] 388s [1] "hello" "world" 388s 388s 388s 9/14 substr.R: 388s 9/14 substr.R: library(fansi) 388s 9/14 substr.R: unitizer_sect("Simple", { 388s 9/14 substr.R: str01 <- sprintf("hello %sworld%s how", red, inv) 388s 9/14 substr.R: substr_ctl(str01, 1, 7) 388s [1] "hello \033[31mw\033[0m" 388s 9/14 substr.R: substr_ctl(str01, 7, 11) 388s [1] "\033[31mworld\033[0m" 388s 9/14 substr.R: substr_ctl(str01, 8, 10) 388s [1] "\033[31morl\033[0m" 388s 9/14 substr.R: substr_ctl(str01, 8, 14) 388s [1] "\033[31morld\033[7m ho\033[0m" 388s 9/14 substr.R: str02 <- sprintf("%shello world %sit's a %scrazy world%s out the 388s 9/14 substr.R: term.cap <- c("bright", "256", "truecolor") 388s 9/14 substr.R: substr_ctl(str02, 1, 7) 388s [1] "\033[42mhello w\033[0m" 388s 9/14 substr.R: substr_ctl(str02, 10, 20) 388s [1] "\033[42mld \033[31mit's a \033[0mc" 388s 9/14 substr.R: substr_ctl(str02, 15, 40, term.cap = term.cap) 388s [1] "\033[31;42m's a \033[0mcrazy world\033[4;38;2;0;120;200m out there\033[0m" 388s 9/14 substr.R: substr_ctl(str02, 35, 60, term.cap = term.cap) 388s [1] "\033[4;38;2;0;120;200m there \033[7misn't it\033[0m\033[48;5;141m right?\033[0m" 388s 9/14 substr.R: str03 <- sprintf("hello %sworld", rgb.und) 388s 9/14 substr.R: substr_ctl(str03, 1, 12, term.cap = term.cap) 388s [1] "hello \033[4;38;2;0;120;200mworld\033[0m" 388s 9/14 substr.R: str04 <- sprintf("hello%s%s world%s%s yowza", red, inv, grn.bg, 388s 9/14 substr.R: substr_ctl(str04, 5, 7, term.cap = term.cap) 388s [1] "o\033[31m\033[7m w\033[0m" 388s 9/14 substr.R: substr_ctl(str04, 5, 13, term.cap = term.cap) 388s [1] "o\033[31m\033[7m world\033[42m\033[4;38;2;0;120;200m y\033[0m" 388s 9/14 substr.R: unitizer_sect("Multi-line", { 388s 9/14 substr.R: str.m.0 <- paste0("\033[44m", c("hello world", rep("goodbye \033 388s 9/14 substr.R: substr_ctl(str.m.0, (1:4) * 2, (3:8) * 2) 388s [1] "\033[44mello \033[0m" "\033[44mdbye \033[0m" 388s [3] "\033[44mye \033[45mmo\033[0m" "\033[44mombas\033[0m" 388s 9/14 substr.R: unitizer_sect("tabs", { 388s 9/14 substr.R: substr2_ctl("yo\tworld", 1, 8, tabs.as.spaces = TRUE) 388s [1] "yo " 388s 9/14 substr.R: unitizer_sect("Corner cases", { 388s 9/14 substr.R: substr_ctl("hello", 0, -1) 388s [1] "" 388s 9/14 substr.R: substr_ctl("hello", 0, 0) 388s [1] "" 388s 9/14 substr.R: substr_ctl(rep("hello", 2), c(1, 0), c(1, 1)) 388s [1] "h" "h" 388s 9/14 substr.R: substr_ctl(character(), 1, 1) 388s character(0) 388s 9/14 substr.R: substr_ctl(list("hello", list("goodbye", "there")), 1, 2) 388s [1] "he" "li" 388s 9/14 substr.R: substr_ctl(structure(list(list("goodbye", "there")), class = "fo 388s [1] "li" 388s 9/14 substr.R: str.0 <- "\033[31mred\033[m" 388s 9/14 substr.R: str.1 <- "\033[31mred\033[42m" 388s 9/14 substr.R: str.2 <- c(str.0, str.1) 388s 9/14 substr.R: substr_ctl(str.2, 0, 0) 388s [1] "" "" 388s 9/14 substr.R: substr_ctl(str.2, 1, 1) 388s [1] "\033[31mr\033[0m" "\033[31mr\033[0m" 388s 9/14 substr.R: substr_ctl(str.2, 3, 3) 388s [1] "\033[31md\033[0m" "\033[31md\033[0m" 388s 9/14 substr.R: substr_ctl(str.2, 4, 4) 388s [1] "" "" 388s 9/14 substr.R: substr_ctl(str.2, 3, 4) 388s [1] "\033[31md\033[0m" "\033[31md\033[0m" 388s 9/14 substr.R: substr_ctl(str.2, 3, 5) 388s [1] "\033[31md\033[0m" "\033[31md\033[0m" 388s 9/14 substr.R: substr_ctl(str.2, 3, 4, terminate = FALSE) 388s [1] "\033[31md\033[m" "\033[31md\033[42m" 388s 9/14 substr.R: substr_ctl(str.2, 3, 5, terminate = FALSE) 388s [1] "\033[31md\033[m" "\033[31md\033[42m" 388s 9/14 substr.R: substr_ctl(str.2, -1, 2) 388s [1] "\033[31mre\033[0m" "\033[31mre\033[0m" 388s 9/14 substr.R: substr_ctl(str.2, -2, -1) 388s [1] "" "" 388s 9/14 substr.R: substr_ctl(str.2, 4, 1) 388s [1] "" "" 388s 9/14 substr.R: substr_ctl(str.2, 4, 1, terminate = FALSE) 388s [1] "" "" 388s 9/14 substr.R: substr_ctl(str.2, 4, 1, carry = "\033[44m") 388s [1] "" "" 388s 9/14 substr.R: substr_ctl(str.2, 4, 1, carry = "\033[44m", terminate = FALSE) 388s [1] "" "" 388s 9/14 substr.R: substr_ctl("hello", 5, 5) 388s [1] "o" 388s 9/14 substr.R: substr_ctl("hello", 6, 6) 388s [1] "" 388s 9/14 substr.R: substr_ctl("hello", 7, 6) 388s [1] "" 388s 9/14 substr.R: substr_ctl("hello", 6, 7) 388s [1] "" 388s 9/14 substr.R: substr_ctl("hello", 7, 5) 388s [1] "" 388s 9/14 substr.R: substr_ctl("hello", 0, 6) 388s [1] "hello" 388s 9/14 substr.R: substr_ctl("hello", 0, 5) 388s [1] "hello" 388s 9/14 substr.R: substr_ctl("hello", 1, 6) 388s [1] "hello" 388s 9/14 substr.R: substr_ctl("hello", "1", 1) 388s [1] "h" 388s 9/14 substr.R: substr_ctl("hello", 1, "1") 388s [1] "h" 388s Warning in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 388s NAs introduced by coercion 388s Warning in substr2_ctl(x = x, start = start, stop = stop, warn = warn, term.cap = term.cap, : 388s NAs introduced by coercion 388s 9/14 substr.R: substr_ctl("hello", "a", "b") 388s [1] NA 388s 9/14 substr.R: substr_ctl("hello", 1, NA_integer_) 388s [1] NA 388s 9/14 substr.R: substr_ctl("hello", NA_integer_, 1) 388s [1] NA 388s 9/14 substr.R: substr_ctl(rep("\033[31mhello\033[m", 3), c(3, 2, 1), c(3, 4, 388s [1] "\033[31ml\033[0m" "\033[31mell\033[0m" "\033[31mhello\033[0m" 388s 9/14 substr.R: str.3 <- structure("fu\033[42mba\033[0mr", class = "foo", at = " 388s 9/14 substr.R: substr_ctl(str.3, 2, 3) 388s [1] "u\033[42mb\033[0m" 388s attr(,"class") 388s [1] "foo" 388s attr(,"at") 388s [1] "bar" 388s 9/14 substr.R: substr_ctl(str.2, 2, 6, ctl = c("all", "sgr")) 388s [1] "[31mr" "[31mr" 388s 9/14 substr.R: substr_ctl(str.2, 8, 10, ctl = c("all", "sgr")) 388s [1] "d\033[" "d\033[" 388s 9/14 substr.R: substr2_ctl(rep("o\033[31m ", 2), 1:2, 1:2) 388s [1] "o" "\033[31m \033[0m" 388s 9/14 substr.R: substr_ctl("hello\033[41b", 1, 5) 388s [1] "hello" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("hello\033[41b", 1, 6) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "hello\033[41b" 388s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", 1, 1) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "\033[31mA\033[0m" 388s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", 0, 1) 388s [1] "\033[1p\033[31mA\033[0m" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("\033[1p\033[31mA", -1, 1) 388s [1] "\033[1p\033[31mA\033[0m" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", 1, 1) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "\033[31mA\033[0m" 388s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", 0, 1) 388s [1] "\033[31m\033[1pA\033[0m" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("\033[31m\033[1pA", -1, 1) 388s [1] "\033[31m\033[1pA\033[0m" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", 1, 1) 388s [1] "\033[1;41mA\033[0m" 388s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", 0, 1) 388s [1] "\033[1;41mA\033[0m" 388s 9/14 substr.R: substr_ctl("\033[41m\033[1mA", -1, 1) 388s [1] "\033[1;41mA\033[0m" 388s 9/14 substr.R: str.4 <- c("A\033[45mB", "A") 388s 9/14 substr.R: substr_ctl(str.4, 1, 1, carry = TRUE, terminate = FALSE) 388s [1] "A" "\033[45mA" 388s 9/14 substr.R: substr_ctl("a\033[42", 1, 1) 388s [1] "a" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("a\033[42", 1, 2) 388s [1] "a\033[42" 388s 9/14 substr.R: substr_ctl("a\033[42", 1, 2, terminate = FALSE) 388s [1] "a\033[42" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 1) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "a" 388s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 2) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "a" 388s 9/14 substr.R: substr_ctl("a\033]8;;END", 1, 2, terminate = FALSE) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "a\033]8;;END" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("a\033];;END", 1, 1) 388s [1] "a" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 9/14 substr.R: substr_ctl("a\033];;END", 1, 2) 388s 388s 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. 388s [1] "a\033];;END" 388s 9/14 substr.R: substr_ctl("a\033[38;5mb", 1, 2, term.cap = "all") 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "a\033[38;5mb" 388s 9/14 substr.R: substr_ctl("a\033[38;2mb", 1, 2, term.cap = "all") 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "a\033[38;2mb" 388s 9/14 substr.R: substr_ctl("a\033[38;2;255mb", 1, 2, term.cap = "all") 388s [1] "a\033[38;2;255mb" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("a\033[38;2;255;255mb", 1, 2, term.cap = "all") 388s [1] "a\033[38;2;255;255mb" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("\033[45pA", 1, 1, warn = FALSE) 388s [1] "A" 388s 9/14 substr.R: substr_ctl("\033[45pA", 0, 1, warn = FALSE) 388s [1] "\033[45pA" 388s 9/14 substr.R: substr_ctl(c("AB", NA, "CD"), 1, 2) 388s [1] "AB" NA "CD" 388s 9/14 substr.R: substr_ctl(c("AB", NA, "CD"), 1, 2, carry = TRUE) 388s [1] "AB" NA NA 388s 9/14 substr.R: substr_ctl(c("AB", "CD"), c(NA, 1), 2) 388s [1] NA "CD" 388s 9/14 substr.R: substr_ctl(c("AB", "CD"), c(NA, 1), 2, carry = TRUE) 388s [1] NA "CD" 388s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = "bright") 388s [1] "\033[38;5;4mA\033[0m" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("bright", "old")) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "\033[4;5mA\033[0m" 388s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("all", "256")) 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 388s [1] "\033[38;5;4mA\033[0m" 388s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("all", "256", 388s [1] "\033[4;5mA\033[0m" 388s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 388s 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. 389s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("256")) 389s [1] "\033[38;5;4mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[38;5;4mA", 1, 1, term.cap = c("256", "old")) 389s [1] "\033[38;5;4mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = "bright") 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s 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. 389s [1] "\033[38;2;1;1;1mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("bright", 389s [1] "\033[1;2mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("all", "truec 389s [1] "\033[38;2;1;1;1mA\033[0m" 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s 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. 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s 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. 389s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("all", "truec 389s [1] "\033[1;2mA\033[0m" 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s 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. 389s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("truecolor")) 389s [1] "\033[38;2;1;1;1mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[38;2;1;1;1mA", 1, 1, term.cap = c("truecolor", 389s [1] "\033[38;2;1;1;1mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = "256") 389s [1] "\033[107mA\033[0m" 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s 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. 389s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("256", "old")) 389s [1] "A" 389s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("all", "bright")) 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s 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. 389s [1] "\033[107mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("all", "bright", 389s [1] "A" 389s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("bright")) 389s [1] "\033[107mA\033[0m" 389s 9/14 substr.R: substr_ctl("\033[107mA", 1, 1, term.cap = c("bright", "old")) 389s [1] "\033[107mA\033[0m" 389s 9/14 substr.R: str.5 <- c("\033[48;2;100;100;100mAB", "\033[48;2;100;100;100mCD 389s 9/14 substr.R: substr_ctl(str.5, 2, 2, terminate = FALSE, carry = TRUE, term.ca 389s [1] "\033[48;2;100;100;100mB" "D" 389s 9/14 substr.R: str.5a <- c("\033[48;2;100;100;100mAB", "\033[48;2;100;100;101mC 389s 9/14 substr.R: substr_ctl(str.5a, 2, 2, terminate = FALSE, carry = TRUE, term.c 389s [1] "\033[48;2;100;100;100mB" "\033[48;2;100;100;101mD" 389s 9/14 substr.R: unitizer_sect("Obscure escapes", { 389s 9/14 substr.R: tryCatch(substr_ctl("\033[38;6;31mworld\033[m", 2, 3), warning = 389s [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." 389s 9/14 substr.R: suppressWarnings(substr_ctl("\033[38;6;31mworld\033[m", 2, 3)) 389s [1] "\033[6;31mor\033[0m" 389s 9/14 substr.R: tryCatch(substr_ctl("\033[31mhello\033[38;5;256m world\033[m", 389s [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." 389s 9/14 substr.R: suppressWarnings(substr_ctl("\033[31mhello\033[38;5;256m world\0 389s [1] "\033[31mwo\033[0m" 389s 9/14 substr.R: substr_ctl("\033[20mworld\033[m", 2, 3) 389s [1] "\033[20mor\033[0m" 389s 9/14 substr.R: substr_ctl("\033[21mworld\033[m", 2, 3) 389s [1] "\033[21mor\033[0m" 389s 9/14 substr.R: substr_ctl(rep("\033[26mhello \033[50mworld\033[m", 2), c(2, 389s [1] "\033[26mel\033[0m" "orl" 389s 9/14 substr.R: substr_ctl(rep("\033[61mwor\033[65mld\033[m", 2), c(2, 4), c(3, 389s [1] "\033[61mor\033[0m" "ld" 389s 9/14 substr.R: tryCatch(substr_ctl("\033[56mworld\033[m", 2, 3), warning = cond 389s [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." 389s 9/14 substr.R: suppressWarnings(substr_ctl("\033[56mworld\033[m", 2, 3)) 389s [1] "or" 389s 9/14 substr.R: tryCatch(substr_ctl("\033[66mworld\033[m", 2, 3), warning = cond 389s [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." 389s 9/14 substr.R: tryCatch(substr_ctl("\033[200mworld\033[m", 2, 3), warning = con 389s [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." 389s 9/14 substr.R: substr_ctl(rep("\033[91mwor\033[101mld\033[m", 2), c(2, 4), c(3, 389s [1] "\033[91mor\033[0m" "\033[91;101mld\033[0m" 389s 9/14 substr.R: unitizer_sect("bad args", { 389s 9/14 substr.R: hello2.0 <- "\033[42m\thello world\033[m foobar" 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, warn = NULL) 389s Error in substr2_ctl(hello2.0, 1, 2, warn = NULL) : 389s Argument `warn` must be TRUE or FALSE. 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = 1) 389s [1] "\033[42m \033[0m" 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = NA) 389s Error in substr2_ctl(hello2.0, 1, 2, tabs.as.spaces = NA) : 389s Argument `tabs.as.spaces` must be TRUE or FALSE. 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tab.stops = -(1:3)) 389s Error in substr2_ctl(hello2.0, 1, 2, tab.stops = -(1:3)) : 389s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, tab.stops = 0) 389s Error in substr2_ctl(hello2.0, 1, 2, tab.stops = 0) : 389s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, round = "bananas") 389s Error in substr2_ctl(hello2.0, 1, 2, round = "bananas") : 389s Argument `round` must partial match one of c("start", "stop", "both", "neither") 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s Error in substr2_ctl(hello2.0, 1, 2, term.cap = 0) : 389s Argument `term.cap` must be character. 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, term.cap = 0) 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, term.cap = "bananas") 389s Error in substr2_ctl(hello2.0, 1, 2, term.cap = "bananas") : 389s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, type = "bananas") 389s Error in substr2_ctl(hello2.0, 1, 2, type = "bananas") : 389s Argument `type` must partial match one of c("chars", "width", "graphemes") 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, ctl = "bananas") 389s Error in substr2_ctl(hello2.0, 1, 2, ctl = "bananas") : 389s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: substr2_ctl(hello2.0, 1, 2, ctl = 0) 389s Error in substr2_ctl(hello2.0, 1, 2, ctl = 0) : 389s Argument `ctl` must be character. 389s Calls: unitize_dir ... eval -> withVisible -> substr2_ctl -> VAL_IN_ENV -> stop2 389s 9/14 substr.R: unitizer_sect("`ctl` related issues", { 389s 9/14 substr.R: substr_sgr("\033[31;42mhello world", 2, 4) 389s [1] "\033[31;42mell\033[0m" 389s 9/14 substr.R: substr_sgr("\033[31m\033[42mhello world", 2, 4) 389s [1] "\033[31;42mell\033[0m" 389s 9/14 substr.R: tryCatch(substr_sgr("\033[31;42!mhello world", 2, 4), warning = 389s [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." 389s 9/14 substr.R: substr_sgr("\033[55;38l\033[31mhello world", 2, 4, warn = FALSE) 389s [1] "[55" 389s 9/14 substr.R: substr_sgr("\033[31m\033[55;38lhello world", 2, 4, warn = FALSE) 389s [1] "\033[31m[55\033[0m" 389s 9/14 substr.R: substr_sgr("hello \033[31m\033[55;38lworld", 7, 9, warn = FALSE) 389s [1] "\033[31m\033[5\033[0m" 389s 9/14 substr.R: substr_ctl("\033[55;38l\033[31mhello world", 2, 4, warn = FALSE) 389s [1] "\033[31mell\033[0m" 389s 9/14 substr.R: substr_ctl("\033[31m\033[55;38lhello world", 2, 4, warn = FALSE) 389s [1] "\033[31mell\033[0m" 389s 9/14 substr.R: substr_ctl("hello \033[31m\033[55;38lworld", 7, 9, warn = FALSE) 389s [1] "\033[31mwor\033[0m" 389s 9/14 substr.R: substr_ctl("hello\033[55;38l \033[31mworld", 4, 7, warn = FALSE) 389s [1] "lo\033[55;38l \033[31mw\033[0m" 389s 9/14 substr.R: substr_sgr("ab\n\tcd\n", 3, 6, warn = FALSE) 389s [1] "\n\tcd" 389s 9/14 substr.R: substr_sgr("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE) 389s [1] "\n\033[31m\tcd\033[0m" 389s 9/14 substr.R: substr_ctl("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE, ctl = c("al 389s [1] "\n\033[31m\tcd\n\033[0m" 389s 9/14 substr.R: substr_ctl("ab\n\033[31m\tcd\n", 3, 6, warn = FALSE, ctl = c("al 389s [1] "\n\033[31m\tcd\033[0m" 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 389s 9/14 substr.R: substr_sgr(c("\a", "b", "c"), 1, 1) 389s [1] "\a" "b" "c" 389s 9/14 substr.R: substr_sgr(c("a", "\b", "c"), 1, 1) 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s Argument `x` contains a C0 control character at index [2], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 389s [1] "a" "\b" "c" 389s 9/14 substr.R: substr_sgr(c("a", "b", "\ac"), 1, 1) 389s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 389s Argument `x` contains a C0 control character at index [3], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 389s [1] "a" "b" "\a" 389s 9/14 substr.R: unitizer_sect("Rep Funs - Equivalence", { 389s 9/14 substr.R: txt0 <- "ABCD" 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 2, value = "#"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 2, value = "#?"), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = "#?-"), `substr<-`( 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 0, 0, value = "#"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 1, value = "#"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 10, 12, value = "#"), `substr<-`( 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = "#"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 1, 5, value = "#"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 0, 5, value = "#"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: `substr_ctl<-`(txt0, 0, -1, value = "#") 389s [1] "ABCD" 389s 9/14 substr.R: rep1 <- c("_", "_.") 389s 9/14 substr.R: rep2 <- c("_", "_.", "...") 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = rep1), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = rep2), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: txt1 <- c("AB", "CDE") 389s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = "_"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = rep1), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt1, 2, 3, value = rep2), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: txt2 <- c("AB", "CDE", "EFGH") 389s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = "_"), `substr<-`(tx 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = rep1), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt2, 2, 3, value = rep2), `substr<-`(t 389s [1] TRUE 389s 9/14 substr.R: txt3a <- txt3b <- c("ABC", "ABC") 389s 9/14 substr.R: substr(txt3a[2], 2, 2) <- "_" 389s 9/14 substr.R: substr_ctl(txt3b[2], 2, 2) <- "_" 389s 9/14 substr.R: identical(txt3a, txt3b) 389s [1] TRUE 389s 9/14 substr.R: identical(`substr_ctl<-`(txt0, 2, 3, value = NA_character_), 389s [1] TRUE 389s 9/14 substr.R: txt.na <- NA_character_ 389s 9/14 substr.R: identical(`substr_ctl<-`(txt.na, 1, 2, value = "AB"), `substr<-` 389s [1] TRUE 389s 9/14 substr.R: unitizer_sect("Rep Funs - SGR", { 389s 9/14 substr.R: txt1 <- "\033[33mABCD" 389s 9/14 substr.R: txt2 <- "\033[33mA\033[44mBCD" 389s 9/14 substr.R: txt3 <- "\033[33mA\033[44mBC\033[1mD" 389s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 2, value = "#") 389s [1] "\033[33mA\033[0m#\033[33mCD" 389s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#?-") 389s [1] "\033[33mA\033[0m#?\033[33mD" 390s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[32m?-") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33mD" 390s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[32m?-\033[0m") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33mD" 390s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, value = "#\033[0m?-") 390s [1] "\033[33mA\033[0m#\033[0m?\033[33mD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[32m?-") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[32m?-\033[0m") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, value = "#\033[0m?-") 390s [1] "\033[33mA\033[0m#\033[0m?\033[33;44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[32m?-") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[1;33;44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[32m?-\033[0m") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[1;33;44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt3, 2, 3, value = "#\033[0m?-") 390s [1] "\033[33mA\033[0m#\033[0m?\033[1;33;44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 2, terminate = FALSE, value = "#") 390s [1] "\033[33mA#\033[44mCD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[32m 390s [1] "\033[33mA#\033[32m?\033[44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[32m 390s [1] "\033[33mA#\033[32m?\033[44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt2, 2, 3, terminate = FALSE, value = "#\033[0m? 390s [1] "\033[33mA#\033[0m?\033[44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, terminate = FALSE, value = "#\033[0m? 390s [1] "\033[33mA#\033[0m?D" 390s 9/14 substr.R: `substr_ctl<-`(txt1, 2, 3, terminate = FALSE, value = "#\033[0m\ 390s [1] "\033[33mA#\033[0m\033[45m?D" 390s 9/14 substr.R: txt4 <- c(txt2, txt0, "\033[39mABCD") 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = "#") 390s [1] "\033[33mA\033[0m#\033[33;44mCD" "A#CD" 390s [3] "\033[39mA#CD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = c("#", "?")) 390s [1] "\033[33mA\033[0m#\033[33;44mCD" "A?CD" 390s [3] "\033[39mA#CD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, value = c("#", "?", "$")) 390s [1] "\033[33mA\033[0m#\033[33;44mCD" "A?CD" 390s [3] "\033[39mA$CD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 2, carry = TRUE, value = "#") 390s [1] "\033[33mA\033[0m#\033[33;44mCD" "A\033[0m#\033[33;44mCD" 390s [3] "\033[39mA\033[0m#\033[44mCD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[32m?-") 390s [1] "\033[33mA\033[0m#\033[32m?\033[0m\033[33;44mD" 390s [2] "A\033[0m\033[32m#\033[32m?\033[0m\033[33;44mD" 390s [3] "\033[39mA\033[0m\033[32m#\033[32m?\033[0m\033[44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[42m?-\03 390s [1] "\033[33mA\033[0m#\033[42m?\033[0m\033[33;44mD" 390s [2] "A\033[0m#\033[42m?\033[0m\033[33;44mD" 390s [3] "\033[39mA\033[0m#\033[42m?\033[0m\033[44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = "#\033[0m?-") 390s [1] "\033[33mA\033[0m#\033[0m?\033[33;44mD" 390s [2] "A\033[0m#\033[0m?\033[33;44mD" 390s [3] "\033[39mA\033[0m#\033[0m?\033[44mD" 390s 9/14 substr.R: rep4 <- c("\033[32m_\033[45m", ".-", "\033[39m__") 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, carry = TRUE, value = rep4) 390s [1] "\033[33mA\033[0m\033[32m_\033[0m\033[33;44mCD" 390s [2] "A\033[0m\033[32;45m.-\033[0m\033[33;44mD" 390s [3] "\033[39mA\033[0m\033[45m__\033[0m\033[44mD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 2, terminate = FALSE, carry = TRUE, valu 390s [1] "\033[33mA#\033[44mCD" "A#CD" "\033[39mA#CD" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 390s [1] "\033[33mA#\033[32m?\033[44mD" "A#\033[32m?D" 390s [3] "\033[39mA#\033[32m?D" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 390s [1] "\033[33mA#\033[35m?\033[44mD" "A\033[0m#\033[35m?D" 390s [3] "\033[39mA\033[0m#\033[35m?D" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 390s [1] "\033[33mA#\033[0m?\033[44mD" "A#\033[0m?D" 390s [3] "\033[39mA#\033[0m?D" 390s 9/14 substr.R: `substr_ctl<-`(txt4, 2, 3, terminate = FALSE, carry = TRUE, valu 390s [1] "\033[33mA\033[32m_\033[45m\033[44mCD" 390s [2] "A.-D" 390s [3] "\033[39mA\033[0;45m__D" 390s 9/14 substr.R: txt5 <- c("ABD", "DFG") 390s 9/14 substr.R: `substr_ctl<-`(txt5, 2, 2, value = ".\033[45m", carry = TRUE, 390s [1] "A.D" "D\033[45m.G" 390s 9/14 substr.R: txt6 <- "A123456789B" 390s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 9, value = "\t", tabs.as.spaces = TRUE) 390s [1] "A 9B" 390s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 3, value = "\t", tabs.as.spaces = TRUE) 390s [1] "A 3456789B" 390s 9/14 substr.R: `substr2_ctl<-`(txt6, 2, 10, value = "\t", tabs.as.spaces = TRUE 390s [1] "A 9B" 390s 9/14 substr.R: txt7a <- "os" 390s 9/14 substr.R: txt7b <- "sos" 390s 9/14 substr.R: txt7c <- "so" 390s 9/14 substr.R: val.scar <- "" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 1, 1, value = val.scar)) 390s [1] "UTF-8" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 1, 1, value = "s")) 390s [1] "unknown" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 2, 2, value = val.scar)) 390s [1] "UTF-8" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7a, 2, 2, value = "s")) 390s [1] "UTF-8" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7b, 2, 2, value = val.scar)) 390s [1] "UTF-8" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7b, 2, 2, value = "s")) 390s [1] "unknown" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7c, 3, 3, value = val.scar)) 390s [1] "UTF-8" 390s 9/14 substr.R: Encoding(`substr_ctl<-`(txt7c, 3, 3, value = "s")) 390s [1] "unknown" 390s 9/14 substr.R: unitizer_sect("Rep Funs - Corner Cases", { 390s 9/14 substr.R: `substr_ctl<-`(txt2, 1, 3, terminate = FALSE, value = "#\033[32m 390s [1] "\033[33m#\033[32m?\033[0m\033[44mCD" 390s 9/14 substr.R: txt8 <- "\033[32mAB\033[45m" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 2, value = "12") 390s [1] "\033[32m\033[0m12\033[32m\033[45m" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 2, value = "12", terminate = FALSE) 390s [1] "\033[32m12\033[45m" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "12") 390s [1] "\033[32m\033[0m12" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "1") 390s [1] "\033[32m\033[0m1\033[32mB\033[45m" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "") 390s [1] "\033[32mAB\033[45m" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "123") 390s [1] "\033[32m\033[0m12" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 0, 2, value = "12") 390s [1] "12\033[32m\033[45m" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 0, 3, value = "12") 390s [1] "12" 390s 9/14 substr.R: `substr_ctl<-`(txt8, 1, 3, value = "\033[1m", terminate = FALSE) 390s [1] "\033[32m\033[1mAB\033[45m" 390s 9/14 substr.R: tce(`substr_ctl<-`(txt8, 1, 3, value = "A", carry = "\033[41m")) 390s [1] "Argument `carry` must be TRUE or FALSE in replacement mode." 390s 9/14 substr.R: lat <- "fa\347ile" 390s 9/14 substr.R: Encoding(lat) <- "latin1" 390s 9/14 substr.R: tce(`substr_ctl<-`(lat, 1, 3, value = "ABC")) 390s [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]." 390s 9/14 substr.R: txt.na2 <- c("AB", NA, "BC") 390s 9/14 substr.R: `substr_ctl<-`(txt.na2, 1, 1, value = "#") 390s [1] "#B" NA "#C" 390s 9/14 substr.R: txt.nona <- c("AB", "BC", "CD") 390s 9/14 substr.R: `substr_ctl<-`(txt.nona, 1, 1, value = c("#", NA), carry = TRUE) 390s [1] "#B" NA NA 390s 390s 10/14 tabs.R: 390s 10/14 tabs.R: library(unitizer) 390s 10/14 tabs.R: library(fansi) 390s 10/14 tabs.R: unitizer_sect("simple tabs", { 390s 10/14 tabs.R: string <- "1\t12\t123\t1234\t12345678" 390s 10/14 tabs.R: tabs_as_spaces(string) 390s [1] "1 12 123 1234 12345678" 390s 10/14 tabs.R: tabs_as_spaces(string, c(2, 3, 4, 5, 8)) 390s [1] "1 12 123 1234 12345678" 390s 10/14 tabs.R: tabs_as_spaces(string, c(2, 8)) 390s [1] "1 12 123 1234 12345678" 390s 10/14 tabs.R: tabs_as_spaces(1:3) 390s [1] "1" "2" "3" 390s 10/14 tabs.R: unitizer_sect("newlines", { 390s 10/14 tabs.R: string.n <- paste0("1\t12\t123\t1234\t12345678\n", "1\t12\t123\t12 390s 10/14 tabs.R: tabs_as_spaces(string.n) 390s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 390s 10/14 tabs.R: tabs_as_spaces(string.n, c(2, 3, 4, 8)) 390s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 390s 10/14 tabs.R: tabs_as_spaces(string.n, c(2, 8)) 390s [1] "1 12 123 1234 12345678\n1 12 123 1234 12345678" 390s 10/14 tabs.R: unitizer_sect("corner cases", { 390s 10/14 tabs.R: tabs_as_spaces("") 390s [1] "" 390s 10/14 tabs.R: tabs_as_spaces("\t") 390s [1] " " 390s 10/14 tabs.R: tabs_as_spaces("\n") 390s [1] "\n" 390s 10/14 tabs.R: tabs_as_spaces(c(string, string, string)) 390s [1] "1 12 123 1234 12345678" 390s [2] "1 12 123 1234 12345678" 390s [3] "1 12 123 1234 12345678" 390s 10/14 tabs.R: tabs_as_spaces("\t\t") 390s [1] " " 390s 10/14 tabs.R: unitizer_sect("bad inputs", { 390s 10/14 tabs.R: tabs_as_spaces(string, warn = 1:3) 390s Error in tabs_as_spaces(string, warn = 1:3) : 390s Argument `warn` must be TRUE or FALSE. 390s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 390s 10/14 tabs.R: tabs_as_spaces(string, tab.stops = "hello") 390s Error in tabs_as_spaces(string, tab.stops = "hello") : 390s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 390s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 390s 10/14 tabs.R: tabs_as_spaces(string, ctl = "hello") 390s Error in tabs_as_spaces(string, ctl = "hello") : 390s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 390s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 390s 10/14 tabs.R: tabs_as_spaces(string, ctl = 0) 390s Error in tabs_as_spaces(string, ctl = 0) : 390s Argument `ctl` must be character. 390s Calls: unitize_dir ... withVisible -> tabs_as_spaces -> VAL_IN_ENV -> stop2 390s 391s 11/14 tohtml.R: 391s 11/14 tohtml.R: library(unitizer) 391s 11/14 tohtml.R: library(fansi) 391s 11/14 tohtml.R: unitizer_sect("colors", { 391s 11/14 tohtml.R: style <- "width: 16px; height: 16px; display: inline-block;" 391s 11/14 tohtml.R: span <- "" 391s 11/14 tohtml.R: colors.8 <- fansi:::esc_color_code_to_html(rbind(c(0:7), 0L, 391s 11/14 tohtml.R: colors.8 391s [1] "#000000" "#BB0000" "#00BB00" "#BBBB00" "#0000BB" "#BB00BB" "#00BBBB" 391s [8] "#BBBBBB" 391s 11/14 tohtml.R: fansi:::esc_color_code_to_html(matrix(c(9L, 0L, 0L, 0L, 0L))) 391s Error in fansi:::esc_color_code_to_html(matrix(c(9L, 0L, 0L, 0L, 0L))) : 391s Internal Error: applying non-color. 391s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 391s 11/14 tohtml.R: colors.255 <- fansi:::esc_color_code_to_html(rbind(8L, 5L, 0:255 391s 11/14 tohtml.R: colors.255 391s [1] "#000000" "#800000" "#008000" "#808000" "#000080" "#800080" "#008080" 391s [8] "#C0C0C0" "#808080" "#FF0000" "#00FF00" "#FFFF00" "#0000FF" "#FF00FF" 391s [15] "#00FFFF" "#FFFFFF" "#000000" "#00005F" "#000087" "#0000AF" "#0000D7" 391s [22] "#0000FF" "#005F00" "#005F5F" "#005F87" "#005FAF" "#005FD7" "#005FFF" 391s [29] "#008700" "#00875F" "#008787" "#0087AF" "#0087D7" "#0087FF" "#00AF00" 391s [36] "#00AF5F" "#00AF87" "#00AFAF" "#00AFD7" "#00AFFF" "#00D700" "#00D75F" 391s [43] "#00D787" "#00D7AF" "#00D7D7" "#00D7FF" "#00FF00" "#00FF5F" "#00FF87" 391s [50] "#00FFAF" "#00FFD7" "#00FFFF" "#5F0000" "#5F005F" "#5F0087" "#5F00AF" 391s [57] "#5F00D7" "#5F00FF" "#5F5F00" "#5F5F5F" "#5F5F87" "#5F5FAF" "#5F5FD7" 391s [64] "#5F5FFF" "#5F8700" "#5F875F" "#5F8787" "#5F87AF" "#5F87D7" "#5F87FF" 391s [71] "#5FAF00" "#5FAF5F" "#5FAF87" "#5FAFAF" "#5FAFD7" "#5FAFFF" "#5FD700" 391s [78] "#5FD75F" "#5FD787" "#5FD7AF" "#5FD7D7" "#5FD7FF" "#5FFF00" "#5FFF5F" 391s [85] "#5FFF87" "#5FFFAF" "#5FFFD7" "#5FFFFF" "#870000" "#87005F" "#870087" 391s [92] "#8700AF" "#8700D7" "#8700FF" "#875F00" "#875F5F" "#875F87" "#875FAF" 391s [99] "#875FD7" "#875FFF" "#878700" "#87875F" "#878787" "#8787AF" "#8787D7" 391s [106] "#8787FF" "#87AF00" "#87AF5F" "#87AF87" "#87AFAF" "#87AFD7" "#87AFFF" 391s [113] "#87D700" "#87D75F" "#87D787" "#87D7AF" "#87D7D7" "#87D7FF" "#87FF00" 391s [120] "#87FF5F" "#87FF87" "#87FFAF" "#87FFD7" "#87FFFF" "#AF0000" "#AF005F" 391s [127] "#AF0087" "#AF00AF" "#AF00D7" "#AF00FF" "#AF5F00" "#AF5F5F" "#AF5F87" 391s [134] "#AF5FAF" "#AF5FD7" "#AF5FFF" "#AF8700" "#AF875F" "#AF8787" "#AF87AF" 391s [141] "#AF87D7" "#AF87FF" "#AFAF00" "#AFAF5F" "#AFAF87" "#AFAFAF" "#AFAFD7" 391s [148] "#AFAFFF" "#AFD700" "#AFD75F" "#AFD787" "#AFD7AF" "#AFD7D7" "#AFD7FF" 391s [155] "#AFFF00" "#AFFF5F" "#AFFF87" "#AFFFAF" "#AFFFD7" "#AFFFFF" "#D70000" 391s [162] "#D7005F" "#D70087" "#D700AF" "#D700D7" "#D700FF" "#D75F00" "#D75F5F" 391s [169] "#D75F87" "#D75FAF" "#D75FD7" "#D75FFF" "#D78700" "#D7875F" "#D78787" 391s [176] "#D787AF" "#D787D7" "#D787FF" "#D7AF00" "#D7AF5F" "#D7AF87" "#D7AFAF" 391s [183] "#D7AFD7" "#D7AFFF" "#D7D700" "#D7D75F" "#D7D787" "#D7D7AF" "#D7D7D7" 391s [190] "#D7D7FF" "#D7FF00" "#D7FF5F" "#D7FF87" "#D7FFAF" "#D7FFD7" "#D7FFFF" 391s [197] "#FF0000" "#FF005F" "#FF0087" "#FF00AF" "#FF00D7" "#FF00FF" "#FF5F00" 391s [204] "#FF5F5F" "#FF5F87" "#FF5FAF" "#FF5FD7" "#FF5FFF" "#FF8700" "#FF875F" 391s [211] "#FF8787" "#FF87AF" "#FF87D7" "#FF87FF" "#FFAF00" "#FFAF5F" "#FFAF87" 391s [218] "#FFAFAF" "#FFAFD7" "#FFAFFF" "#FFD700" "#FFD75F" "#FFD787" "#FFD7AF" 391s [225] "#FFD7D7" "#FFD7FF" "#FFFF00" "#FFFF5F" "#FFFF87" "#FFFFAF" "#FFFFD7" 391s [232] "#FFFFFF" "#080808" "#121212" "#1C1C1C" "#262626" "#303030" "#3A3A3A" 391s [239] "#444444" "#4E4E4E" "#585858" "#626262" "#6C6C6C" "#767676" "#808080" 391s [246] "#8A8A8A" "#949494" "#9E9E9E" "#A8A8A8" "#B2B2B2" "#BCBCBC" "#C6C6C6" 391s [253] "#D0D0D0" "#DADADA" "#E4E4E4" "#EEEEEE" 391s 11/14 tohtml.R: vals <- c(0L, 127L, 255L) 391s 11/14 tohtml.R: colors.tru <- fansi:::esc_color_code_to_html(do.call(rbind, c(li 391s 11/14 tohtml.R: colors.tru 391s [1] "#000000" "#7F0000" "#FF0000" "#007F00" "#7F7F00" "#FF7F00" "#00FF00" 391s [8] "#7FFF00" "#FFFF00" "#00007F" "#7F007F" "#FF007F" "#007F7F" "#7F7F7F" 391s [15] "#FF7F7F" "#00FF7F" "#7FFF7F" "#FFFF7F" "#0000FF" "#7F00FF" "#FF00FF" 391s [22] "#007FFF" "#7F7FFF" "#FF7FFF" "#00FFFF" "#7FFFFF" "#FFFFFF" 391s 11/14 tohtml.R: unitizer_sect("simple html conversion", { 391s 11/14 tohtml.R: as_html_page <- function(x) { 391s 11/14 tohtml.R: sgr_to_html("hello \033[31;42;1mworld\033[0m") 391s [1] "hello world" 391s 11/14 tohtml.R: sgr_to_html("hello \033[31;48;5;23;1mworld\033[m") 391s [1] "hello world" 391s 11/14 tohtml.R: sgr_to_html("\033[1mbold\033[22m \033[2mfaint\033[22m \033[mital 391s [1] "bold faint italic\n" 391s 11/14 tohtml.R: csi_string <- c("\033[1mbold\033[22m \033[2mfaint\033[22m \033[3 391s 11/14 tohtml.R: html_string <- sgr_to_html(csi_string) 391s 11/14 tohtml.R: html_string 391s [1] "bold faint italic" 391s [2] "underline slow-blink" 391s [3] "fast-blink" 391s [4] "red-fg-green-bginverse inverse-off" 391s [5] "conceal reveal crossed-outclear" 391s [6] "bold faint italic" 391s [7] "underline slow-blink" 391s [8] "fast-blink" 391s [9] "red-fg-green-bginverse inverse-off" 391s [10] "conceal reveal crossed-outclear" 391s [11] "italic again not italic?" 391s 11/14 tohtml.R: unitizer_sect("Bright Colors", { 391s 11/14 tohtml.R: sgr_to_html("hello\033[94;101m world\033[39m yow\033[49mza") 391s [1] "hello world yowza" 391s 11/14 tohtml.R: sgr_to_html("hello\033[98;101m world\033[39m yow\033[49mza") 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s 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. 391s [1] "hello world yowza" 391s 11/14 tohtml.R: unitizer_sect("Corner cases", { 391s 11/14 tohtml.R: sgr_to_html("hello\033[0m") 391s [1] "hello" 391s 11/14 tohtml.R: sgr_to_html("hello\033[31m") 391s [1] "hello" 391s 11/14 tohtml.R: sgrs <- paste0(rep("\033[31m", 20), collapse = "") 391s 11/14 tohtml.R: sgr_to_html(sprintf("%shello world\033[m", sgrs)) 391s [1] "hello world" 391s 11/14 tohtml.R: sgr_to_html(1:3) 391s [1] "1" "2" "3" 391s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[m\033[42m world\033[m") 391s [1] "hello world" 391s 11/14 tohtml.R: sgr_to_html("\033[33mhello") 391s [1] "hello" 391s 11/14 tohtml.R: sgr_to_html("he\033[33mllo") 391s [1] "hello" 391s 11/14 tohtml.R: sgr_to_html("hello\033[33m") 391s [1] "hello" 391s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "world")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "\033[44mworld")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "wor\033[44mld")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("\033[33mhello", "world\033[44m")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "world")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "\033[44mworld")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "wor\033[44mld")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("he\033[33mllo", "world\033[44m")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "world")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "\033[44mworld")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "wor\033[44mld")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: sgr_to_html(c("hello\033[33m", "world\033[44m")) 391s [1] "hello" 391s [2] "world" 391s 11/14 tohtml.R: unitizer_sect("Bad inputs", { 391s 11/14 tohtml.R: fansi:::esc_color_code_to_html(matrix(1:12, 4)) 391s Error in fansi:::esc_color_code_to_html(matrix(1:12, 4)) : 391s Argument `x` must be a five row integer matrix. 391s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> 391s 11/14 tohtml.R: sgr_to_html(1:3) 391s [1] "1" "2" "3" 391s 11/14 tohtml.R: sgr_to_html("a", warn = 1:3) 391s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s Argument `warn` must be TRUE or FALSE. 391s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 391s 11/14 tohtml.R: sgr_to_html("a", term.cap = 1:3) 391s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s Argument `term.cap` must be character. 391s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 391s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 391s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> VAL_IN_ENV -> stop2 391s 11/14 tohtml.R: sgr_to_html("a", term.cap = "hello") 391s 11/14 tohtml.R: unitizer_sect("issue54", { 391s 11/14 tohtml.R: string <- c("\033[31m", "\033[39m") 391s 11/14 tohtml.R: fansi::sgr_to_html(string) 391s [1] "" "" 391s 11/14 tohtml.R: string1 <- c("\033[31mhello", "world\033[39m moon") 391s 11/14 tohtml.R: fansi::sgr_to_html(string1) 391s [1] "hello" 391s [2] "world moon" 391s 11/14 tohtml.R: string2 <- c("\033[3mhello\033[24m", "world\033[23m moon") 391s 11/14 tohtml.R: fansi::sgr_to_html(string2) 391s [1] "hello" 391s [2] "world moon" 391s 11/14 tohtml.R: unitizer_sect("Colors as classes (#65)", { 391s 11/14 tohtml.R: sgr_to_html("\033[94mhello\033[31;42;1mworld\033[m", classes = T 391s [1] "helloworld" 391s 11/14 tohtml.R: class.8 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:7), 391s 11/14 tohtml.R: class.16 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:15), 391s 11/14 tohtml.R: class.256 <- do.call(paste, c(expand.grid(c("fg", "bg"), 0:255), 391s 11/14 tohtml.R: x <- c("\033[94mhe\033[107mllo\033[31;42;1mworld\033[m", "\033[4 391s 11/14 tohtml.R: term.cap <- c("bright", "256", "truecolor") 391s 11/14 tohtml.R: sgr_to_html(x, classes = class.8, term.cap = term.cap) 391s [1] "helloworld" 391s [2] "goodbye super moon" 391s 11/14 tohtml.R: sgr_to_html(x, classes = class.16, term.cap = term.cap) 391s [1] "helloworld" 391s [2] "goodbye super moon" 391s 11/14 tohtml.R: sgr_to_html(x, classes = class.256, term.cap = term.cap) 391s [1] "helloworld" 391s [2] "goodbye super moon" 391s 11/14 tohtml.R: make_styles(class.8) 391s [1] ".fg-0 {color: #000000;}" ".bg-0 {background-color: #000000;}" 391s [3] ".fg-1 {color: #800000;}" ".bg-1 {background-color: #800000;}" 391s [5] ".fg-2 {color: #008000;}" ".bg-2 {background-color: #008000;}" 391s [7] ".fg-3 {color: #808000;}" ".bg-3 {background-color: #808000;}" 391s [9] ".fg-4 {color: #000080;}" ".bg-4 {background-color: #000080;}" 391s [11] ".fg-5 {color: #800080;}" ".bg-5 {background-color: #800080;}" 391s [13] ".fg-6 {color: #008080;}" ".bg-6 {background-color: #008080;}" 391s [15] ".fg-7 {color: #C0C0C0;}" ".bg-7 {background-color: #C0C0C0;}" 391s 11/14 tohtml.R: make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, 0), 3)) 391s [1] ".fg-0 {color: #000000;}" ".bg-0 {background-color: #000000;}" 391s [3] ".fg-1 {color: #000080;}" ".bg-1 {background-color: #000080;}" 391s [5] ".fg-2 {color: #800000;}" ".bg-2 {background-color: #800000;}" 391s [7] ".fg-3 {color: #800080;}" ".bg-3 {background-color: #800080;}" 391s [9] ".fg-4 {color: #008000;}" ".bg-4 {background-color: #008000;}" 391s [11] ".fg-5 {color: #008080;}" ".bg-5 {background-color: #008080;}" 391s [13] ".fg-6 {color: #808000;}" ".bg-6 {background-color: #808000;}" 391s [15] ".fg-7 {color: #C0C0C0;}" ".bg-7 {background-color: #C0C0C0;}" 391s 11/14 tohtml.R: sgr_to_html(sgr_256()) 391s [1] "Standard" 391s [2] " 0 1 2 3 4 5 6 7" 391s [3] "" 391s [4] "High-Intensity" 391s [5] " 8 9 10 11 12 13 14 15" 391s [6] "" 391s [7] "216 Colors (Dark)" 391s [8] " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33" 391s [9] " 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69" 391s [10] " 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105" 391s [11] "124125126127128129130131132133134135136137138139140141" 391s [12] "160161162163164165166167168169170171172173174175176177" 391s [13] "196197198199200201202203204205206207208209210211212213" 391s [14] "" 391s [15] "216 Colors (Light)" 391s [16] " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51" 391s [17] " 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87" 391s [18] "106107108109110111112113114115116117118119120121122123" 391s [19] "142143144145146147148149150151152153154155156157158159" 391s [20] "178179180181182183184185186187188189190191192193194195" 391s [21] "214215216217218219220221222223224225226227228229230231" 391s [22] "" 391s [23] "Grayscale" 391s [24] "232 233 234 235 236 237 238 239 240 241 242 243" 391s [25] "244 245 246 247 248 249 250 251 252 253 254 255" 391s 11/14 tohtml.R: sgr_to_html(sgr_256(), classes = class.256) 391s [1] "Standard" 391s [2] " 0 1 2 3 4 5 6 7" 391s [3] "" 391s [4] "High-Intensity" 391s [5] " 8 9 10 11 12 13 14 15" 391s [6] "" 391s [7] "216 Colors (Dark)" 391s [8] " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33" 391s [9] " 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69" 391s [10] " 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105" 391s [11] "124125126127128129130131132133134135136137138139140141" 391s [12] "160161162163164165166167168169170171172173174175176177" 391s [13] "196197198199200201202203204205206207208209210211212213" 391s [14] "" 391s [15] "216 Colors (Light)" 391s [16] " 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51" 391s [17] " 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87" 391s [18] "106107108109110111112113114115116117118119120121122123" 391s [19] "142143144145146147148149150151152153154155156157158159" 391s [20] "178179180181182183184185186187188189190191192193194195" 391s [21] "214215216217218219220221222223224225226227228229230231" 391s [22] "" 391s [23] "Grayscale" 391s [24] "232 233 234 235 236 237 238 239 240 241 242 243" 391s [25] "244 245 246 247 248 249 250 251 252 253 254 255" 391s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s Argument `classes` must be TRUE, FALSE, or a character vector. 391s Calls: unitize_dir ... eval -> eval -> withVisible -> sgr_to_html -> to_html_int 391s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = NULL) 391s Error in check_classes(classes) : 391s Argument `classes` must be length 16, 32, or 512 if it is a character vector (is 7). 391s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 391s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = character(7L)) 391s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = rep(NA_character_ 391s Error in check_classes(classes) : Argument `classes` contains NA values. 391s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 391s 11/14 tohtml.R: sgr_to_html("\033[31mhello\033[31m", classes = rep("bad class", 391s Error in check_classes(classes) : 391s Argument `classes` contains charcters other than ASCII letters, numbers, the hyphen, and underscore. 391s Calls: unitize_dir ... withVisible -> sgr_to_html -> to_html_int -> check_classes 391s 11/14 tohtml.R: make_styles(class.8, c(1, 1, 0, 0, 0, 1, 1, 0, 0)) 391s Error in make_styles(class.8, c(1, 1, 0, 0, 0, 1, 1, 0, 0)) : 391s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 391s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 391s 11/14 tohtml.R: make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, NA), 3)) 391s Error in make_styles(class.8, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, NA), 3)) : 391s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 391s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 391s 11/14 tohtml.R: make_styles(class.8, "hello") 391s Error in make_styles(class.8, "hello") : 391s Argument `rgb.mix` must be a 3 x 3 numeric matrix with no NAs. 391s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 391s 11/14 tohtml.R: make_styles(letters, matrix(c(0, 1, 0, 0, 0, 1, 1, 0, 0), 3)) 391s Error in check_classes(classes) : 391s Argument `classes` must be length 16, 32, or 512 if it is a character vector (is 26). 391s Calls: unitize_dir ... eval -> withVisible -> make_styles -> check_classes 391s Error in make_styles(NULL) : Argument `classes` is not character. 391s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> make_styles 391s 11/14 tohtml.R: make_styles(NULL) 391s 11/14 tohtml.R: unitizer_sect("chars to escape", { 391s 11/14 tohtml.R: str.esc <- c("A\033[45mB", "A\033[43m&B") 391s 11/14 tohtml.R: to_html(str.esc) 391s [1] "A" 391s [2] "A>B" 391s [3] "A&B" 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s `x` contains unescaped HTML special character '<' at index [1] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s `x` contains unescaped HTML special character '>' at index [2] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 391s 11/14 tohtml.R: sgr_to_html(str.esc) 391s [1] "A" 391s [2] "A>B" 391s [3] "A&B" 391s 11/14 tohtml.R: to_html(str.esc, warn = FALSE) 391s [1] "A" 391s [2] "A>B" 391s [3] "A&B" 391s 11/14 tohtml.R: to_html(html_esc(str.esc)) 391s [1] "A<B" 391s [2] "A>B" 391s [3] "A&B" 391s 11/14 tohtml.R: str.esc2 <- c("A\033[45mB", "A\033[201mB") 391s 11/14 tohtml.R: to_html(str.esc2) 391s [1] "A" 391s [2] "A>B" 391s [3] "AB" 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s `x` contains unescaped HTML special character '<' at index [1] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s 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. 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s `x` contains unescaped HTML special character '>' at index [2] (see ?html_esc); you can use `warn=FALSE` to turn off these warnings. 391s Warning in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 391s 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. 391s 11/14 tohtml.R: to_html(str.esc2, warn = FALSE) 391s [1] "A" 391s [2] "A>B" 391s [3] "AB" 391s 11/14 tohtml.R: unitizer_sect("helpers", { 391s 11/14 tohtml.R: html <- sgr_to_html("\033[42mHello") 391s 11/14 tohtml.R: f <- in_html(html, css = "span {background-color: #CCC;}", displ 391s 11/14 tohtml.R: readLines(f) 391s [1] "" 391s [2] "" 391s [3] "" 391s [6] "" 391s [7] "
"                                                
391s  [8] "Hello"
391s  [9] "
" 391s [10] "" 391s [11] "" 391s 11/14 tohtml.R: unlink(f) 391s 11/14 tohtml.R: in_html(html, css = "span {background-color: #CCC;}", display = 392s 11/14 tohtml.R: unitizer_sect("carry", { 392s 11/14 tohtml.R: string.2 <- c("A\033[44m", "B\033[49m", "C", "\033[39mD") 392s 11/14 tohtml.R: to_html(string.2) 392s [1] "A" 392s [2] "B" 392s [3] "C" 392s [4] "D" 392s 11/14 tohtml.R: to_html(string.2, carry = FALSE) 392s [1] "A" "B" "C" "D" 392s 11/14 tohtml.R: to_html(string.2, carry = "\033[33m") 392s [1] "A" 392s [2] "B" 392s [3] "C" 392s [4] "D" 392s 11/14 tohtml.R: to_html(string.2, carry = "\033[33m\033]8;;https://w.z\033\\") 392s [1] "A" 392s [2] "B" 392s [3] "C" 392s [4] "D" 392s 11/14 tohtml.R: string.3 <- c("A\033[44m", "\033[31mC", NA, "\033[39mD") 393s 11/14 tohtml.R: to_html(string.3) 393s [1] "A" 393s [2] "C" 393s [3] NA 393s [4] NA 393s 11/14 tohtml.R: to_html(string.3, carry = FALSE) 393s [1] "A" 393s [2] "C" 393s [3] NA 393s [4] "D" 393s 393s 12/14 trimws.R: 393s 12/14 trimws.R: library(fansi) 393s 12/14 trimws.R: unitizer_sect("Equivalence", { 393s 12/14 trimws.R: txt1 <- c("", "hello", " \t \n\r he\nl\tl\r o \r\t\n", "he\nl\tl 393s 12/14 trimws.R: identical(trimws(txt1), trimws_ctl(txt1)) 393s [1] TRUE 393s 12/14 trimws.R: identical(trimws(txt1, which = "left"), trimws_ctl(txt1, which = 393s [1] TRUE 393s 12/14 trimws.R: identical(trimws(txt1, which = "right"), trimws_ctl(txt1, which 393s [1] TRUE 393s 12/14 trimws.R: unitizer_sect("Controls", { 393s 12/14 trimws.R: txt2 <- c("\033[31m he\033[42;1m llo \033[49m\n\t ", " \033]8;;h 393s 12/14 trimws.R: trimws_ctl(txt2) 393s [1] "\033[31mhe\033[42;1m llo\033[0;1;31m" 393s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello\033[31m\033]8;;\033\\" 393s 12/14 trimws.R: trimws_ctl(txt2, which = "left") 393s [1] "\033[31mhe\033[42;1m llo \033[49m\n\t " 393s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello \033]8;;\033\\ \033[31m" 393s 12/14 trimws.R: trimws_ctl(txt2, which = "right") 393s [1] "\033[31m he\033[42;1m llo\033[0;1;31m" 393s [2] " \033]8;;https://x.yz\033\\\tLINK\033[45m hello\033[31m\033]8;;\033\\" 393s 12/14 trimws.R: trimws_ctl(txt2, ctl = c("all", "url", "osc")) 393s Warning in trimws_ctl(txt2, ctl = c("all", "url", "osc")) : 393s 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. 393s [1] "\033[31mhe\033[42;1m llo\033[0;1;31m" 393s [2] "8;;https://x.yz\033\\\tLINK\033[45m hello \033]8;;\033\\\033[31m" 393s Warning in trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) : 393s 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. 393s Warning in trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) : 393s 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. 393s 12/14 trimws.R: trimws_ctl(txt2, ctl = c("all", "sgr", "csi")) 393s [1] "31m he\033[42;1m llo \033[49m" 393s [2] "\033]8;;https://x.yz\033\\LINK\033[45m hello \033]8;;\033\\ \033[31m" 393s 12/14 trimws.R: trimws_ctl(" \r\a A \a\t ", ctl = c("all", "c0")) 393s Warning in trimws_ctl(" \r\a A \a\t ", ctl = c("all", "c0")) : 393s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 393s [1] "\a A \a" 393s 12/14 trimws.R: unitizer_sect("Errors / Corner caess", { 393s 12/14 trimws.R: trimws_ctl(character()) 393s character(0) 393s 12/14 trimws.R: trimws_ctl("hello", which = "top") 393s Error in trimws_ctl("hello", which = "top") : 393s Argument `which` must partial match one of c("both", "left", "right"). 393s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> trimws_ctl 393s 12/14 trimws.R: trimws_ctl("hello", whitespace = " ") 393s Error in trimws_ctl("hello", whitespace = " ") : 393s Argument `whitespace` may only be set to "[ \t\r\n]". 393s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> trimws_ctl 393s 393s 13/14 url.R: 393s 13/14 url.R: library(fansi) 393s 13/14 url.R: unitizer_sect("wrap", { 393s 13/14 url.R: txt <- "This is a link" 393s 13/14 url.R: base.st <- "%s\033]8;%s;%s\033\\%s\033]8;;\033\\%s" 393s 13/14 url.R: base.a <- "%s\033]8;%s;%s\a%s\033]8;;\a%s" 393s 13/14 url.R: url <- "https://x.yz" 393s 13/14 url.R: u0 <- sprintf(base.st, "", "", url, txt, "") 393s 13/14 url.R: u1 <- sprintf(base.a, "", "", url, txt, "") 393s 13/14 url.R: strtrim_ctl(u0, 5) 393s [1] "\033]8;;https://x.yz\033\\This \033]8;;\033\\" 393s 13/14 url.R: strwrap_ctl(u0, 5) 393s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 393s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 393s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 393s 13/14 url.R: strwrap_ctl(u0, 8) 393s [1] "\033]8;;https://x.yz\033\\This is\033]8;;\033\\" 393s [2] "\033]8;;https://x.yz\033\\a link\033]8;;\033\\" 393s 13/14 url.R: strwrap_ctl(u1, 5) 393s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 393s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 393s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 393s 13/14 url.R: u2 <- sprintf(base.st, "", "id=one", url, txt, "") 393s 13/14 url.R: u2a <- sprintf(base.st, "", "id=", url, txt, "") 393s 13/14 url.R: u2b <- sprintf(base.st, "", "id", url, txt, "") 393s 13/14 url.R: u3 <- sprintf(base.st, "", "title=ab:id=one", url, txt, "") 393s 13/14 url.R: u4 <- sprintf(base.st, "", "id=one:title=ba", url, txt, "") 393s 13/14 url.R: u6 <- sprintf(base.st, "", "id=one~title=ba", url, txt, "") 393s 13/14 url.R: strwrap_ctl(u2, 5) 393s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 393s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 393s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 393s 13/14 url.R: strwrap_ctl(u3, 5) 393s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 393s 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. 393s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 393s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 393s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 393s 13/14 url.R: strwrap_ctl(u4, 5) 393s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 393s 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. 393s [1] "\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 393s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 393s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\" 394s 13/14 url.R: strwrap_ctl(u6, 5) 394s [1] "\033]8;id=one~title=ba;https://x.yz\033\\This\033]8;;\033\\" 394s [2] "\033]8;id=one~title=ba;https://x.yz\033\\is a\033]8;;\033\\" 394s [3] "\033]8;id=one~title=ba;https://x.yz\033\\link\033]8;;\033\\" 394s 13/14 url.R: u7 <- sprintf(base.st, "AB", "id=one", url, txt, "CD") 394s 13/14 url.R: strwrap_ctl(u7, 8) 394s [1] "AB\033]8;id=one;https://x.yz\033\\This\033]8;;\033\\" 394s [2] "\033]8;id=one;https://x.yz\033\\is a\033]8;;\033\\" 394s [3] "\033]8;id=one;https://x.yz\033\\link\033]8;;\033\\CD" 394s 13/14 url.R: txt2 <- "This\033[34m is a link\033[49m" 394s 13/14 url.R: u8 <- sprintf(base.st, "A\033[43mB", "", url, txt2, "CD") 394s 13/14 url.R: strwrap_ctl(u8, 7) 394s [1] "A\033[43mB\033]8;;https://x.yz\033\\This\033[0m\033]8;;\033\\" 394s [2] "\033[34;43m\033]8;;https://x.yz\033\\is a\033[0m\033]8;;\033\\" 394s [3] "\033[34;43m\033]8;;https://x.yz\033\\link\033[49m\033]8;;\033\\CD\033[0m" 394s 13/14 url.R: url2 <- ";wow;https://x.yz" 394s 13/14 url.R: u9 <- sprintf(base.st, "", "", url2, txt, "") 394s 13/14 url.R: strwrap_ctl(u9, 5) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] "\033]8;;wow;https://x.yz\033\\This\033]8;;\033\\" 394s [2] "\033]8;;wow;https://x.yz\033\\is a\033]8;;\033\\" 394s [3] "\033]8;;wow;https://x.yz\033\\link\033]8;;\033\\" 394s 13/14 url.R: u10 <- sprintf(base.st, "", "\a", url, txt, "") 394s 13/14 url.R: u11 <- sprintf(base.st, "", "\016", url, txt, "") 394s 13/14 url.R: Encoding(u10) <- "UTF-8" 394s 13/14 url.R: Encoding(u11) <- "UTF-8" 394s 13/14 url.R: u11a <- sprintf(base.st, "", "hello", url, txt, "") 394s 13/14 url.R: strwrap_ctl(u10, 5) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] ";https://x.yz\033\\This" "is a" 394s [3] "link" 394s 13/14 url.R: strwrap_ctl(u11, 5) 394s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 394s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 394s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s 13/14 url.R: strwrap_ctl(u11a, 5) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] "\033]8;;https://x.yz\033\\This\033]8;;\033\\" 394s [2] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 394s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 394s 13/14 url.R: nchar_ctl(c(u10, u11, u11a)) 394s [1] 27 14 14 394s 13/14 url.R: u12 <- sprintf(base.st, "", "", "\b", txt, "") 394s 13/14 url.R: u12a <- sprintf(base.st, "", "", "\200", txt, "") 394s 13/14 url.R: Encoding(u12) <- "UTF-8" 394s 13/14 url.R: Encoding(u12a) <- "UTF-8" 394s 13/14 url.R: strwrap_ctl(u12, 5) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] "This" "is a" "link" 394s 13/14 url.R: strwrap_ctl(u12a, 5) 394s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 394s Calls: unitize_dir ... eval -> eval -> withVisible -> strwrap_ctl -> strwrap2_ctl 394s 13/14 url.R: nchar_ctl(c(u12, u12a)) 394s [1] 14 14 394s 13/14 url.R: nchar_ctl(c(u12, u12a), allowNA = TRUE) 394s [1] 14 14 394s 13/14 url.R: u13 <- "a\033]8;;THE END" 394s 13/14 url.R: u13a <- "a\033];;THE END" 394s 13/14 url.R: u14 <- "a\033]8;;THE END\033]8;;NO?" 394s 13/14 url.R: u15 <- "a\033]8;;THE END\033]8;;\033[" 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s 13/14 url.R: strwrap_ctl(u13, 5) 394s [1] "a" 394s 13/14 url.R: strwrap_ctl(u13, 5, terminate = FALSE) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] "a\033]8;;THE END" 394s 13/14 url.R: strwrap_ctl(u13a, 5) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] "a\033];;THE END" 394s 13/14 url.R: strwrap_ctl(u14, 5) 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s [1] "a" 394s 13/14 url.R: strwrap_ctl(u15, 5) 394s [1] "a" 394s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 394s 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. 394s 13/14 url.R: nchar_ctl(c(u13, u13a, u14, u15)) 394s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 394s 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. 394s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 394s 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. 394s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 394s 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. 394s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 394s 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. 394s [1] 1 1 1 1 394s 13/14 url.R: u16 <- sprintf(base.st, "", "", "", txt, "") 394s 13/14 url.R: u17 <- sprintf(base.st, "", "", "", "", "") 394s 13/14 url.R: strwrap_ctl(u16, 5) 394s [1] "This" "is a" "link" 394s 13/14 url.R: strwrap_ctl(u17, 5) 394s [1] "" 394s 13/14 url.R: strwrap_ctl(u0, 5, terminate = FALSE) 394s [1] "\033]8;;https://x.yz\033\\This" 394s [2] "\033]8;;https://x.yz\033\\is a" 394s [3] "\033]8;;https://x.yz\033\\link\033]8;;\033\\" 394s 13/14 url.R: open <- "\033]8;;ab.c\033\\" 394s 13/14 url.R: u21 <- c("he\033[44mllo \033]8;;de.f\033\\world", "night moon") 394s 13/14 url.R: strwrap_ctl(u21, 5, carry = "\033[33m") 394s [1] "\033[33mhe\033[44mllo\033[0m" 394s [2] "\033[33;44m\033]8;;de.f\033\\world\033[0m\033]8;;\033\\" 394s [3] "\033[33;44m\033]8;;de.f\033\\night\033[0m\033]8;;\033\\" 394s [4] "\033[33;44m\033]8;;de.f\033\\moon\033[0m\033]8;;\033\\" 394s 13/14 url.R: strwrap_ctl(u21, 5, carry = paste0(open, "\033[33m")) 394s [1] "\033[33m\033]8;;ab.c\033\\he\033[44mllo\033[0m\033]8;;\033\\" 394s [2] "\033[33;44m\033]8;;de.f\033\\world\033[0m\033]8;;\033\\" 394s [3] "\033[33;44m\033]8;;de.f\033\\night\033[0m\033]8;;\033\\" 394s [4] "\033[33;44m\033]8;;de.f\033\\moon\033[0m\033]8;;\033\\" 394s 13/14 url.R: unitizer_sect("normalize", { 394s 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 394s 13/14 url.R: normalize_state(u18) 394s [1] "A\033]8;id=a;x.yz\033\\BC\033]8;;\033\\D" 394s 13/14 url.R: u18a <- "A\033]8;id=a;x.yz\033\\B\033]8;;\033\\\033]8;id=a;x.yz\033 394s 13/14 url.R: normalize_state(u18a) 394s [1] "A\033]8;id=a;x.yz\033\\BC\033]8;;\033\\D" 394s 13/14 url.R: u18b <- "A\033]8;id=a;x.yz\033\\\033]8;id=b;x.yz\033\\C\033]8;;\033 394s 13/14 url.R: normalize_state(u18b) 394s [1] "A\033]8;id=b;x.yz\033\\C\033]8;;\033\\D" 394s 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 394s 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 394s 13/14 url.R: normalize_state(u19) 394s [1] "A\033]8;id=a;x.yz\033\\B\033]8;id=b;x.yz\033\\C\033]8;;\033\\D" 395s 13/14 url.R: normalize_state(u20) 395s [1] "A\033]8;id=a;x.yz\033\\B\033]8;id=a;w.yz\033\\C\033]8;;\033\\D" 395s 13/14 url.R: unitizer_sect("substr", { 395s 13/14 url.R: substr_ctl(u0, 6, 9) 395s [1] "\033]8;;https://x.yz\033\\is a\033]8;;\033\\" 395s 13/14 url.R: substr_ctl(u0, 6, 9, terminate = FALSE) 395s [1] "\033]8;;https://x.yz\033\\is a" 395s 13/14 url.R: substr_ctl("hello world", 3, 8, carry = "\033]8;;a.b\033\\") 395s [1] "\033]8;;a.b\033\\llo wo\033]8;;\033\\" 395s 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. 395s 13/14 url.R: Encoding(np.bytes) <- "UTF-8" 395s 13/14 url.R: substr_ctl(np.bytes[1:3], 2, 2) 395s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 395s 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. 395s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 395s 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. 395s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 395s 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. 395s [1] "\033]8;id=c;x.y\033\\B\033]8;;\033\\" 395s [2] "\033]8;;x.y\033\\B\033]8;;\033\\" 395s [3] "B" 395s 13/14 url.R: substr_ctl(np.bytes[4], 2, 2) 395s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 395s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 395s Calls: unitize_dir ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 395s 13/14 url.R: unitizer_sect("tohtml", { 395s 13/14 url.R: to_html(u0) 395s [1] "This is a link" 395s 13/14 url.R: to_html("A\033[44mB\033]8;;x.y\033\\C\033[33m\033]8;;\033\\D") 395s [1] "ABCD" 395s 13/14 url.R: to_html("A\033[44mB\033]8;;x.y\033\\C\033[33m\033]8;;w.z\033\\D") 395s [1] "ABCD" 395s 13/14 url.R: u23 <- c("A \033[44mB \033]8;;x.y\033\\C \033[33m\033]8;;w.z\033\\D 395s 13/14 url.R: to_html(u23) 395s [1] "A B C D" 395s [2] "E F G" 395s [3] "H I" 395s 13/14 url.R: to_html(strwrap_ctl(u23, 4)) 395s [1] "A B" 395s [2] "C D" 395s [3] "E F" 395s [4] "G" 395s [5] "H I" 395s 13/14 url.R: unitizer_sect("osc", { 395s 13/14 url.R: nchar_ctl("\033]hello \aworld") 395s [1] 5 395s 13/14 url.R: nchar_ctl("\033]hello \033\\world") 395s [1] 5 395s 13/14 url.R: nchar_ctl("\033]hello \033\\world", ctl = c("all", "osc")) 395s [1] 11 395s 13/14 url.R: x <- "\033]hello\200\033\\world" 395s 13/14 url.R: Encoding(x) <- "UTF-8" 395s 13/14 url.R: nchar_ctl(x) 395s [1] 5 395s 13/14 url.R: nchar_ctl("\033]hello world") 395s [1] 0 395s Warning in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 395s 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. 395s 395s 14/14 wrap.R: 395s 14/14 wrap.R: library(unitizer) 395s 14/14 wrap.R: library(fansi) 395s 14/14 wrap.R: unitizer_sect("Basic wrap", { 395s 14/14 wrap.R: hello.0 <- "hello world this is a lovely day" 395s 14/14 wrap.R: strwrap_ctl(hello.0, width = 10) 395s [1] "hello" "world" "this is a" "lovely" "day" 395s 14/14 wrap.R: hello.1 <- "hello world this is. a lovely day." 395s 14/14 wrap.R: strwrap_ctl(hello.1, width = 10) 395s [1] "hello" "world" "this is." "a lovely" "day." 395s 14/14 wrap.R: hello.2 <- "hello\rworld\rthis is. a lovely day." 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 395s 14/14 wrap.R: strwrap_ctl(hello.2, width = 10) 395s [1] "hello\rworld\rthis" "is. a" "lovely" 395s [4] "day." 395s 14/14 wrap.R: hello.3 <- "hello\rworld\nthis is. a lovely\n day." 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 395s 14/14 wrap.R: strwrap_ctl(hello.3, width = 10) 395s [1] "hello\rworld" "this is." "a lovely" "day." 395s 14/14 wrap.R: hello.4 <- " hello world this is a lovely day." 395s 14/14 wrap.R: strwrap_ctl(hello.4, width = 10) 395s [1] "hello" "world" "this is a" "lovely" "day." 395s 14/14 wrap.R: hello.5 <- "hello.\n\n\nworld" 395s 14/14 wrap.R: strwrap_ctl(hello.5, width = 10) 395s [1] "hello." "" "world" 395s 14/14 wrap.R: hello.5a <- "hello.\n \n \nworld" 395s 14/14 wrap.R: strwrap_ctl(hello.5a, width = 10) 395s [1] "hello." "" "world" 395s 14/14 wrap.R: hello.6a <- "hello.\" there" 395s 14/14 wrap.R: strwrap_ctl(hello.6a, width = 40) 395s [1] "hello.\" there" 395s 14/14 wrap.R: hello.6b <- "hello.' there" 395s 14/14 wrap.R: strwrap_ctl(hello.6b, width = 40) 395s [1] "hello.' there" 395s 14/14 wrap.R: hello.6c <- "hello.) there" 395s 14/14 wrap.R: strwrap_ctl(hello.6c, width = 40) 395s [1] "hello.) there" 395s 14/14 wrap.R: unitizer_sect("Basic Ansi", { 395s 14/14 wrap.R: hello2.0 <- paste0("hello ", red, "world ", grn.bg, " this is a l 395s 14/14 wrap.R: strwrap_ctl(hello2.0, 10) 395s [1] "hello" "\033[31mworld\033[0m" 395s [3] "\033[31;42mthis is a\033[0m" "\033[31;42mlovely\033[0mday." 395s 14/14 wrap.R: strwrap_ctl(strip_ctl(hello2.0, "sgr"), 10) 395s [1] "hello" "world" "this is a" "lovelyday." 395s 14/14 wrap.R: hello2.1 <- paste0("hello \033[41mworld\033[m how are you today") 395s 14/14 wrap.R: hello2.2 <- paste0("hello \033[41mworld\033[0m how are you today") 395s 14/14 wrap.R: strwrap_ctl(hello2.1, 15) 395s [1] "hello \033[41mworld\033[0m" "how are you" 395s [3] "today" 395s 14/14 wrap.R: hello.bold.faint <- paste0("hello \033[1mbolded once upon a time\0 395s 14/14 wrap.R: strwrap_ctl(hello.bold.faint, 10) 395s [1] "hello" "\033[1mbolded\033[0m" 395s [3] "\033[1monce upon\033[0m" "\033[1ma time\033[0m" 395s [5] "normal" "\033[2mfainting\033[0m" 395s [7] "\033[2min\033[0m" "\033[2mfaintness\033[0m" 395s [9] "\033[2moh no\033[0m" "normal" 395s 14/14 wrap.R: hello.blinky <- paste0("hello \033[5mbliking slowly oh my\033[25m 395s 14/14 wrap.R: strwrap_ctl(hello.blinky, 10) 395s [1] "hello" "\033[5mbliking\033[0m" 395s [3] "\033[5mslowly oh\033[0m" "\033[5mmy\033[25m normal" 395s [5] "\033[6mblinking\033[0m" "\033[6mquickly\033[0m" 395s [7] "\033[6moh my\033[0m" "normal" 395s 14/14 wrap.R: strwrap_ctl(hello.blinky, 10, terminate = FALSE) 395s [1] "hello" "\033[5mbliking" "slowly oh" 395s [4] "my\033[25m normal" "\033[6mblinking" "quickly" 395s [7] "oh my" "\033[0mnormal" 395s 14/14 wrap.R: hello2.3 <- c(hello2.1, hello2.2) 395s 14/14 wrap.R: strwrap_ctl(hello2.3, 10, simplify = FALSE) 395s [[1]] 395s [1] "hello" "\033[41mworld\033[m how" 395s [3] "are you" "today" 395s 395s [[2]] 395s [1] "hello" "\033[41mworld\033[0m how" 395s [3] "are you" "today" 395s 395s 14/14 wrap.R: strwrap2_ctl(hello2.3, 10, simplify = FALSE) 395s [[1]] 395s [1] "hello" "\033[41mworld\033[m how" 395s [3] "are you" "today" 395s 395s [[2]] 395s [1] "hello" "\033[41mworld\033[0m how" 395s [3] "are you" "today" 395s 395s 14/14 wrap.R: strwrap_ctl("aliquip \033[31mex ea commodo consequat\033[0m\n", 395s [1] "aliquip \033[31mex ea commodo\033[0m" 395s [2] "\033[31mconsequat\033[0m" 395s 14/14 wrap.R: unitizer_sect("Long Wrap", { 395s 14/14 wrap.R: wrap.csi <- strwrap_ctl(lorem.r.thanks, 40) 395s 14/14 wrap.R: nchar(strip_ctl(wrap.csi, "sgr")) 395s [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 395s [26] 5 0 39 36 34 33 36 39 27 0 31 29 37 39 35 34 37 34 31 36 25 37 395s 14/14 wrap.R: nchar(wrap.csi) 395s [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 395s [26] 5 0 75 54 47 49 64 67 45 0 91 78 87 88 74 73 86 54 60 75 25 67 395s 14/14 wrap.R: unitizer_sect("Other Escapes", { 395s 14/14 wrap.R: strwrap_ctl("hello \033kworld yohoo", 12) 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s 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. 395s [1] "hello \033kworld" "yohoo" 395s 14/14 wrap.R: strwrap_ctl("hello \033\nworld yohoo", 12) 395s [1] "hello \033\nworld" "yohoo" 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s Argument `x` contains a malformed escape sequence at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 395s 14/14 wrap.R: c0 <- "hello\037\037\037\037\037\037 world yohoo" 395s 14/14 wrap.R: Encoding(c0) <- "UTF-8" 395s 14/14 wrap.R: strwrap_ctl(c0, 12) 395s [1] "hello\037\037\037\037\037\037 world" "yohoo" 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 395s 14/14 wrap.R: strwrap_ctl("hello \033[999mworld", 6) 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s 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. 395s [1] "hello" "world" 395s 14/14 wrap.R: strwrap_ctl("hello \033[31#31mworld", 6) 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s 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. 395s [1] "hello" "world" 395s 14/14 wrap.R: strwrap_ctl("hello \033[999nworld", 6) 395s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 395s 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. 395s [1] "hello" "\033[999nworld" 395s 14/14 wrap.R: strwrap_ctl("hello \033[999mworld", 6, warn = FALSE) 395s [1] "hello" "world" 395s 14/14 wrap.R: strwrap_ctl("hello \033[31#31mworld", 6, warn = FALSE) 395s [1] "hello" "world" 395s 14/14 wrap.R: strwrap_ctl("hello \033[999nworld", 6, warn = FALSE) 395s [1] "hello" "\033[999nworld" 395s 14/14 wrap.R: unitizer_sect("prefix / initial simple", { 395s 14/14 wrap.R: lorem.sentence <- unlist(strsplit_ctl(lorem, "[.]\\K ", perl = TRU 395s 14/14 wrap.R: lorem.sentence <- gsub(",", ",\n", lorem.sentence, fixed = TRUE) 395s 14/14 wrap.R: lorem.para <- c(paste0(lorem.sentence[1:2], collapse = "\n\n"), 395s 14/14 wrap.R: strwrap_ctl(lorem.para, indent = 2) 395s [1] " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" 395s [2] "eiusmod tempor incididunt ut labore et dolore magna aliqua." 395s [3] "" 395s [4] " Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris" 395s [5] "nisi ut aliquip ex ea commodo consequat." 395s [6] " Duis aute irure dolor in reprehenderit in voluptate velit esse cillum" 395s [7] "dolore eu fugiat nulla pariatur." 395s [8] "" 395s [9] " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 395s [10] "officia deserunt mollit anim id est laborum." 395s 14/14 wrap.R: strwrap_ctl(lorem.para, exdent = 2) 395s [1] "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod" 395s [2] " tempor incididunt ut labore et dolore magna aliqua." 395s [3] "" 395s [4] "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi" 395s [5] " ut aliquip ex ea commodo consequat." 395s [6] "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum" 395s [7] " dolore eu fugiat nulla pariatur." 395s [8] "" 395s [9] "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 395s [10] " officia deserunt mollit anim id est laborum." 395s 14/14 wrap.R: strwrap_ctl(lorem.para, indent = 4, exdent = 2) 395s [1] " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do" 395s [2] " eiusmod tempor incididunt ut labore et dolore magna aliqua." 395s [3] "" 395s [4] " Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris" 395s [5] " nisi ut aliquip ex ea commodo consequat." 395s [6] " Duis aute irure dolor in reprehenderit in voluptate velit esse" 395s [7] " cillum dolore eu fugiat nulla pariatur." 395s [8] "" 395s [9] " Excepteur sint occaecat cupidatat non proident, sunt in culpa qui" 395s [10] " officia deserunt mollit anim id est laborum." 395s 14/14 wrap.R: unitizer_sect("prefix / initial with ESC", { 395s 14/14 wrap.R: pre <- "\033[32m+ \033[0m" 395s 14/14 wrap.R: ini <- "\033[33m> \033[0m" 395s 14/14 wrap.R: hello.8a <- "hello world yohoo" 395s 14/14 wrap.R: wrap.csi.2 <- strwrap_ctl(hello.8a, 14, prefix = pre, initial = in 395s 14/14 wrap.R: wrap.csi.2 395s [1] "\033[33m> \033[0mhello world" "\033[32m+ \033[0myohoo" 395s 14/14 wrap.R: hello.8b <- c(hello.8a, "oh my this has 2 elements") 395s 14/14 wrap.R: wrap.csi.3 <- strwrap_ctl(hello.8b, 14, prefix = pre, initial = in 395s 14/14 wrap.R: wrap.csi.3 395s [1] "\033[33m> \033[0mhello world" "\033[32m+ \033[0myohoo" 395s [3] "\033[32m+ \033[0moh my this" "\033[32m+ \033[0mhas 2" 395s [5] "\033[32m+ \033[0melements" 395s 14/14 wrap.R: unitizer_sect("wrap2", { 395s 14/14 wrap.R: hello.9a <- "hello\t\033[41mred\033[49m\tworld" 395s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12) 395s [1] "hello \033[41mred\033[0m" "world" 395s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12, tabs.as.spaces = TRUE) 395s [1] "hello \033[41mred\033[49m" " world" 395s 14/14 wrap.R: strwrap2_ctl(hello.9a, 13, tabs.as.spaces = TRUE) 395s [1] "hello \033[41mred\033[49m " " world" 395s 14/14 wrap.R: strwrap2_ctl(hello.9a, 12, tabs.as.spaces = TRUE, tab.stops = c(6, 395s [1] "hello \033[41mred\033[49m " " " 395s [3] "world" 395s 14/14 wrap.R: r.thanks <- lorem.r.thanks.2 395s 14/14 wrap.R: bg <- ceiling(seq_along(r.thanks)/length(r.thanks) * 215) + 16 395s 14/14 wrap.R: fg <- ifelse((((bg - 16)%/%18)%%2), 30, 37) 395s 14/14 wrap.R: tpl <- "\033[%d;48;5;%dm%s\033[49m" 396s 14/14 wrap.R: nz <- nzchar(r.thanks) 396s 14/14 wrap.R: r.thanks[nz] <- sprintf(tpl, fg[nz], bg[nz], r.thanks[nz]) 396s 14/14 wrap.R: r.col <- paste0(r.thanks, collapse = "\n") 396s 14/14 wrap.R: r.wrap <- strwrap2_ctl(r.col, 35, pad.end = " ", wrap.always = TRU 396s 14/14 wrap.R: (r.wrap) 396s [1] "\033[37;48;5;23mMany more, too numerous to mention\033[0m" 396s [2] "\033[37;48;5;23mhere, have contributed by sending \033[0m" 396s [3] "\033[37;48;5;23mbug\033[49m \033[37;48;5;30mreports and suggesting various\033[0m" 396s [4] "\033[37;48;5;30mimprovements.\033[49m \033[0m" 396s [5] "\033[37m \033[0m" 396s [6] "\033[30;48;5;43mSimon Davies whilst at the \033[0m" 396s [7] "\033[30;48;5;43mUniversity of Auckland wrote the \033[0m" 396s [8] "\033[30;48;5;43moriginal\033[49m \033[30;48;5;50mversion of glm().\033[49m \033[0m" 396s [9] "\033[30m \033[0m" 396s [10] "\033[37;48;5;64mJulian Harris and Wing Kwong \033[0m" 396s [11] "\033[37;48;5;64m(Tiki) Wan whilst at the \033[0m" 396s [12] "\033[37;48;5;64mUniversity of\033[49m \033[30;48;5;70mAuckland assisted \033[0m" 396s [13] "\033[30;48;5;70mRoss Ihaka with the original \033[0m" 396s [14] "\033[30;48;5;70mMacintosh port.\033[49m \033[0m" 396s [15] "\033[30m \033[0m" 396s [16] "\033[30;48;5;84mR was inspired by the S \033[0m" 396s [17] "\033[30;48;5;84menvironment which has been \033[0m" 396s [18] "\033[30;48;5;84mprincipally\033[49m \033[37;48;5;90mdeveloped by John \033[0m" 396s [19] "\033[37;48;5;90mChambers, with substantial input \033[0m" 396s [20] "\033[37;48;5;90mfrom Douglas Bates,\033[49m \033[37;48;5;97mRick Becker, \033[0m" 396s [21] "\033[37;48;5;97mBill Cleveland, Trevor Hastie, \033[0m" 396s [22] "\033[37;48;5;97mDaryl Pregibon and\033[49m \033[37;48;5;104mAllan Wilks.\033[49m \033[0m" 396s [23] "\033[37m \033[0m" 396s [24] "\033[30;48;5;117mA special debt is owed to John \033[0m" 396s [25] "\033[30;48;5;117mChambers who has graciously \033[0m" 396s [26] "\033[30;48;5;117mcontributed\033[49m \033[37;48;5;124madvice and \033[0m" 396s [27] "\033[37;48;5;124mencouragement in the early days of\033[0m" 396s [28] "\033[37;48;5;124mR and later became a\033[49m \033[37;48;5;131mmember of the\033[0m" 396s [29] "\033[37;48;5;131mcore team.\033[49m \033[0m" 396s [30] "\033[37m \033[0m" 396s [31] "\033[30;48;5;158mThe R Foundation may decide to \033[0m" 396s [32] "\033[30;48;5;158mgive out \033[0m" 396s [33] "\033[30;48;5;158m@R-project.org\033[49m \033[0m" 396s [34] "\033[37;48;5;164memail addresses to contributors to\033[0m" 396s [35] "\033[37;48;5;164mthe R Project (even without making\033[0m" 396s [36] "\033[37;48;5;164mthem\033[49m \033[37;48;5;171mmembers of the R Foundation) \033[0m" 396s [37] "\033[37;48;5;171mwhen in the view of the R \033[0m" 396s [38] "\033[37;48;5;171mFoundation this\033[49m \033[30;48;5;178mwould help advance\033[0m" 396s [39] "\033[30;48;5;178mthe R project.\033[49m \033[0m" 396s [40] "\033[30m \033[0m" 396s [41] "\033[30;48;5;191mThe R Core Group, Roger Bivand, \033[0m" 396s [42] "\033[30;48;5;191mJennifer Bryan, Di Cook, Dirk \033[0m" 396s [43] "\033[30;48;5;191mEddelbuettel,\033[49m \033[37;48;5;198mJohn Fox, Bettina \033[0m" 396s [44] "\033[37;48;5;198mGrn, Frank Harrell, Torsten \033[0m" 396s [45] "\033[37;48;5;198mHothorn, Stefano Iacus,\033[49m \033[37;48;5;205mJulie \033[0m" 396s [46] "\033[37;48;5;205mJosse, Balasubramanian Narasimhan,\033[0m" 396s [47] "\033[37;48;5;205mMarc Schwartz, Heather Turner,\033[49m \033[0m" 396s [48] "\033[37;48;5;211mBill Venables, Hadley Wickham and \033[0m" 396s [49] "\033[37;48;5;211mAchim Zeileis are the ordinary \033[0m" 396s [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" 396s [51] "\033[30;48;5;225maddition, David Meyer and Simon \033[0m" 396s [52] "\033[30;48;5;225mWood are also e-addressable by\033[49m \033[0m" 396s [53] "\033[30;48;5;231m.@R-project.o\033[0m" 396s [54] "\033[30;48;5;231mrg.\033[49m \033[0m" 396s 14/14 wrap.R: hello.9b <- "\033[41mhello\n\nworld." 396s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, pad.end = " ") 396s [1] "\033[41mhello \033[0m" "\033[41m \033[0m" "\033[41mworld. \033[0m" 396s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, pad.end = 0) 396s [1] "\033[41mhello00\033[0m" "\033[41m0000000\033[0m" "\033[41mworld.0\033[0m" 396s 14/14 wrap.R: hello.9b <- " \033[41mhello world." 396s 14/14 wrap.R: strwrap2_ctl(hello.9b, 8, strip.spaces = FALSE) 396s [1] " \033[41mhello\033[0m" "\033[41m world.\033[0m" 396s 14/14 wrap.R: hello.9c <- "\033[41m hello world." 396s 14/14 wrap.R: ws.0 <- "hello worldza" 396s 14/14 wrap.R: ws.1 <- "hello \t worldza" 396s 14/14 wrap.R: ws.2 <- "hello \n worldza" 396s 14/14 wrap.R: strwrap2_sgr(ws.0, 7, strip.spaces = FALSE) 396s [1] "hello " " " "worldza" 396s 14/14 wrap.R: strwrap2_sgr(ws.0, 7, strip.spaces = FALSE, wrap.always = TRUE) 396s [1] "hello " " " "worldz" "a" 396s 14/14 wrap.R: strwrap2_sgr(ws.0, 6, strip.spaces = FALSE) 396s [1] "hello" " " "worldza" 396s 14/14 wrap.R: strwrap2_sgr(ws.0, 6, strip.spaces = FALSE, wrap.always = TRUE) 396s [1] "hello" " " "world" "za" 396s 14/14 wrap.R: strwrap2_sgr(ws.1, 7, strip.spaces = FALSE) 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 396s [1] "hello " "\t " "worldza" 396s 14/14 wrap.R: strwrap2_sgr(ws.1, 7, strip.spaces = FALSE, wrap.always = TRUE) 396s [1] "hello " "\t " "worldz" "a" 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 396s 14/14 wrap.R: strwrap2_sgr(ws.1, 6, strip.spaces = FALSE) 396s [1] "hello" " \t " "worldza" 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 396s 14/14 wrap.R: strwrap2_sgr(ws.1, 6, strip.spaces = FALSE, wrap.always = TRUE) 396s [1] "hello" " \t " "world" "za" 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 396s 14/14 wrap.R: strwrap2_sgr(" hello world ", 7, strip.spaces = FALSE) 396s [1] " hello" " world" " " 396s 14/14 wrap.R: strwrap2_sgr("\thello\tworld\t", 7, strip.spaces = FALSE) 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 396s [1] "\thello" "\tworld" "\t" 396s 14/14 wrap.R: strwrap2_sgr("\nhello\nworld\n", 7, strip.spaces = FALSE) 396s [1] "" "hello" "world" "" 396s 14/14 wrap.R: unitizer_sect("_sgr", { 396s 14/14 wrap.R: hello.9e <- c("hello\t\033[91mworld\033[m\t\033[38;2;31;42;4mworld 396s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, term.cap = "256") 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s [1] "hello \033[91mworld\033[0m" 396s [2] "\033[38;2;31;42;4mworld\033[0m" 396s [3] "\033[38;2;31;42;4mboohaythere\033[0m" 396s [4] "asdfasdfasdfasdf" 396s 14/14 wrap.R: hello.9f <- "hello \033[91mworld boohaythereyowza" 396s 14/14 wrap.R: strwrap2_sgr(hello.9f, 12, prefix = "++", initial = ">>", wrap.alw 396s [1] ">>hello ~~~" "\033[91m++world ~~~\033[0m" 396s [3] "\033[91m++boohaythe\033[0m" "\033[91m++reyowza~~\033[0m" 396s 14/14 wrap.R: strwrap2_sgr(hello.9e, 12, tabs.as.spaces = TRUE, tab.stops = c(6, 396s [[1]] 396s [1] ">> hello ~" 396s [2] "\033[91m++ world\033[m " 396s [3] "++ \033[38;2;31;42;4mworld\033[0m" 396s [4] "\033[38;2;31;42;4m++ ~~~~~~~\033[0m" 396s [5] "\033[38;2;31;42;4m++ boohayth\033[0m" 396s [6] "\033[38;2;31;42;4m++ ere~~~~~\033[0m" 396s 396s [[2]] 396s [1] "++ asdfasd" "++ fasdfasd" "++ f~~~~~~~" 396s 396s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, warn = FALSE, indent = 2, exdent = 1, 396s [[1]] 396s [1] ">> hello" 396s [2] "\033[91m++ world\033[0m" 396s [3] "\033[38;2;31;42;4m++ world\033[0m" 396s [4] "\033[38;2;31;42;4m++ boohaythere\033[0m" 396s 396s [[2]] 396s [1] "++ asdfasdfasdfasdf" 396s 396s 14/14 wrap.R: strwrap_sgr(hello.9e, 12, indent = 2, exdent = 1, prefix = "++", 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s [[1]] 396s [1] ">> hello" 396s [2] "\033[91m++ world\033[0m" 396s [3] "\033[38;2;31;42;4m++ world\033[0m" 396s [4] "\033[38;2;31;42;4m++ boohaythere\033[0m" 396s 396s [[2]] 396s [1] "++ asdfasdfasdfasdf" 396s 396s 14/14 wrap.R: unitizer_sect("long words", { 396s 14/14 wrap.R: hello.long <- "\033[31mhelloworld\033[mlongword" 396s 14/14 wrap.R: strwrap_ctl(hello.long, 8) 396s [1] "\033[31mhelloworld\033[mlongword" 396s 14/14 wrap.R: strwrap2_ctl(hello.long, 8, wrap.always = TRUE) 396s [1] "\033[31mhellowo\033[0m" "\033[31mrld\033[mlong" "word" 396s 14/14 wrap.R: unitizer_sect("rare escapes", { 396s 14/14 wrap.R: hello.border <- c("hello \033[51mworld woohoo\033[54m woohoo", 396s 14/14 wrap.R: strwrap_ctl(hello.border, 12) 396s [1] "hello \033[51mworld\033[0m" "\033[51mwoohoo\033[0m" 396s [3] "woohoo" "hello \033[52mworld\033[0m" 396s [5] "\033[52mwoohoo\033[0m" "woohoo" 396s [7] "hello \033[53mworld\033[0m" "\033[53mwoohoo\033[0m" 396s [9] "woohoo" 396s 14/14 wrap.R: strwrap_ctl(hello.border, 12, terminate = FALSE) 396s [1] "hello \033[51mworld" "woohoo" "\033[0mwoohoo" 396s [4] "hello \033[52mworld" "woohoo" "\033[0mwoohoo" 396s [7] "hello \033[53mworld" "woohoo" "\033[0mwoohoo" 396s 14/14 wrap.R: hello.ideogram <- c("hello \033[60mworld woohoo\033[65m woohoo", 396s 14/14 wrap.R: strwrap_ctl(hello.ideogram, 12, terminate = FALSE) 396s [1] "hello \033[60mworld" "woohoo" "\033[0mwoohoo" 396s [4] "hello \033[61mworld" "woohoo" "\033[0mwoohoo" 396s [7] "hello \033[62mworld" "woohoo" "\033[0mwoohoo" 396s [10] "hello \033[63mworld" "woohoo" "\033[0mwoohoo" 396s [13] "hello \033[64mworld" "woohoo" "\033[0mwoohoo" 396s 14/14 wrap.R: hello.font <- c("hello \033[10mworld woohoo\033[10m woohoo", 396s 14/14 wrap.R: strwrap_ctl(hello.font, 12, terminate = FALSE) 396s [1] "hello \033[10mworld" "woohoo" "woohoo" 396s [4] "hello \033[11mworld" "woohoo" "\033[0mwoohoo" 396s [7] "hello \033[12mworld" "woohoo" "\033[0mwoohoo" 396s [10] "hello \033[13mworld" "woohoo" "\033[0mwoohoo" 396s [13] "hello \033[14mworld" "woohoo" "\033[0mwoohoo" 396s [16] "hello \033[15mworld" "woohoo" "\033[0mwoohoo" 396s [19] "hello \033[16mworld" "woohoo" "\033[0mwoohoo" 396s [22] "hello \033[17mworld" "woohoo" "\033[0mwoohoo" 396s [25] "hello \033[18mworld" "woohoo" "\033[0mwoohoo" 396s [28] "hello \033[19mworld" "woohoo" "\033[0mwoohoo" 396s 14/14 wrap.R: unitizer_sect("term cap and bright", { 396s 14/14 wrap.R: getOption("fansi.term.cap", dflt_term_cap()) 396s [1] "bright" "256" 396s 14/14 wrap.R: hello.bright <- "\033[42mhello \033[103mworld wowza\033[49m" 396s 14/14 wrap.R: strwrap_ctl(hello.bright, 13) 396s [1] "\033[42mhello \033[103mworld\033[0m" "\033[103mwowza\033[0m" 396s 14/14 wrap.R: strwrap_ctl(hello.bright, 13, term.cap = character()) 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s [1] "\033[42mhello \033[103mworld\033[0m" "\033[103mwowza\033[0m" 396s 14/14 wrap.R: hello.255 <- "\033[42mhello \033[48;5;47mworld wowza\033[49m" 396s 14/14 wrap.R: strwrap_ctl(hello.255, 13) 396s [1] "\033[42mhello \033[48;5;47mworld\033[0m" 396s [2] "\033[48;5;47mwowza\033[0m" 396s 14/14 wrap.R: strwrap_ctl(hello.255, 13, term.cap = character()) 396s [1] "\033[42mhello \033[48;5;47mworld\033[0m" 396s [2] "\033[48;5;47mwowza\033[0m" 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s 14/14 wrap.R: hello.tru <- "\033[42mhello \033[48;2;7;41;4mworld wowza\033[m" 396s 14/14 wrap.R: strwrap_ctl(hello.tru, 13, term.cap = "truecolor") 396s [1] "\033[42mhello \033[48;2;7;41;4mworld\033[0m" 396s [2] "\033[48;2;7;41;4mwowza\033[0m" 396s 14/14 wrap.R: strwrap_ctl(hello.tru, 13) 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s [1] "\033[42mhello \033[48;2;7;41;4mworld\033[0m" 396s [2] "\033[48;2;7;41;4mwowza\033[0m" 396s 14/14 wrap.R: unitizer_sect("corner cases", { 396s 14/14 wrap.R: strwrap_ctl("a", -1) 396s [1] "a" 396s 14/14 wrap.R: strwrap2_ctl("a", -1) 396s [1] "a" 396s 14/14 wrap.R: strwrap2_ctl("a", Inf) 396s [1] "a" 396s 14/14 wrap.R: strwrap2_ctl("a", NA_real_) 396s Error in strwrap2_ctl("a", NA_real_) : 396s Argument `width` must be a positive scalar numeric representable as integer. 396s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 396s 14/14 wrap.R: strwrap2_ctl("a", NA_integer_) 396s Error in strwrap2_ctl("a", NA_integer_) : 396s Argument `width` must be a positive scalar numeric representable as integer. 396s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 396s Error in strwrap2_ctl("a", -1, wrap.always = TRUE) : 396s Width must be at least 2 in `wrap.always` mode. 396s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 396s 14/14 wrap.R: strwrap2_ctl("a", -1, wrap.always = TRUE) 396s 14/14 wrap.R: strwrap2_ctl("a", 0, wrap.always = TRUE) 396s Error in strwrap2_ctl("a", 0, wrap.always = TRUE) : 396s Width must be at least 2 in `wrap.always` mode. 396s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 396s 14/14 wrap.R: strwrap2_ctl("a", 1, wrap.always = TRUE) 396s Error in strwrap2_ctl("a", 1, wrap.always = TRUE) : 396s Width must be at least 2 in `wrap.always` mode. 396s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 396s 14/14 wrap.R: tryCatch(strwrap_ctl("hello world", 6, prefix = "\033p"), warning 396s [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." 396s 14/14 wrap.R: suppressWarnings(strwrap_ctl("hello world", 6, prefix = "\033p")) 396s [1] "\033phello" "\033pworld" 396s 14/14 wrap.R: tryCatch(strwrap2_ctl("hello world", 8, pad.end = "\t"), error = c 396s [1] "Argument `pad.end` must be an empty string or a single printable ASCII character." 396s 14/14 wrap.R: tryCatch(strwrap2_ctl("hello world", 8, pad.end = " "), error = c 396s [1] "Argument `pad.end` must be at most one byte long." 396s 14/14 wrap.R: strwrap2_ctl("goodbye moon", 8, indent = 5, prefix = "> hello >") 396s [1] "> hello > goodbye" "> hello >moon" 396s 14/14 wrap.R: strwrap2_ctl("goodbye moon", 16, indent = 5, prefix = "> hello >", 396s [1] "> hello > g" "> hello >oodbye" "> hello >moon" 396s 14/14 wrap.R: tryCatch(strwrap2_ctl("goodbye moon", 15, indent = 5, prefix = "> 396s [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`." 396s 14/14 wrap.R: strwrap_ctl("hello world\033[31m\033A", 12) 396s [1] "hello world\033[31m\033A\033[0m" 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s 14/14 wrap.R: strwrap_ctl("hello world\033A\033[31m", 12) 396s [1] "hello world\033A" 396s Warning in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 396s 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. 396s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 5) 396s [1] "hello" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 6) 396s [1] "hello" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 5, terminate = FALSE) 396s [1] "hello" "\033[44mworld" 396s 14/14 wrap.R: strwrap_ctl("hello \033[44m world", 6, terminate = FALSE) 396s [1] "hello" "\033[44mworld" 396s 14/14 wrap.R: strwrap_ctl("hello\n\033[44m\nworld", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \n\033[44m\n world", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \n \033[44m\n world", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44mworld", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44m world", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \n \n\033[44m\nworld", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap_ctl("hello \033[44m\n\n world", 5) 396s [1] "hello" "" "\033[44mworld\033[0m" 396s 14/14 wrap.R: strwrap("hello \n\n world", 5) 396s [1] "hello" "" "world" 396s 14/14 wrap.R: strwrap_ctl("\033[33mAB\033[44m CD", 3) 396s [1] "\033[33mAB\033[0m" "\033[33;44mCD\033[0m" 396s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE) 396s [1] "AB" "" "\033[44mCD\033[0m" 396s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE, pad.end = 396s [1] "AB" "\033[44m##\033[0m" "\033[44mCD\033[0m" 396s 14/14 wrap.R: strwrap2_ctl("AB\033[44m\n\nCD", 3, wrap.always = TRUE, terminate 396s [1] "AB" "\033[44m" "CD" 396s 14/14 wrap.R: strwrap2_ctl("AB\033[44m CD", 4, pad.end = "#") 396s [1] "AB\033[44m#\033[0m" "\033[44mCD#\033[0m" 396s 14/14 wrap.R: strwrap2_ctl("AB\033[44m CD", 3, pad.end = "#") 396s [1] "AB" "\033[44mCD\033[0m" 396s 14/14 wrap.R: strwrap2_sgr("\033[43mAB \033[34mCD", strip.spaces = FALSE, 4) 396s [1] "\033[43mAB \033[0m" "\033[34;43mCD\033[0m" 396s 14/14 wrap.R: strwrap_ctl("\033[31m\033[43m", 5) 396s [1] "" 396s 14/14 wrap.R: strwrap2_ctl("a\033[31mb", 2, wrap.always = TRUE) 396s [1] "a" "\033[31mb\033[0m" 396s 14/14 wrap.R: strwrap_ctl("A \033[31mB\033[39m", 3) 396s [1] "A" "\033[31mB\033[0m" 397s 14/14 wrap.R: strwrap2_ctl("\033[35phello \033[35p world", 5, strip.spaces = FAL 397s [1] "\033[35phello" " \033[35p " "world" 397s Warning in strwrap2_ctl("\033[35phello \033[35p world", 5, strip.spaces = FALSE) : 397s 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. 397s 14/14 wrap.R: identical(strwrap(c(NA, "a b"), 4, prefix = ">"), strwrap_ctl(c(NA 397s [1] TRUE 397s 14/14 wrap.R: identical(strwrap("a b", 4, prefix = NA), strwrap_ctl("a b", 397s [1] TRUE 397s 14/14 wrap.R: unitizer_sect("bad inputs", { 397s 14/14 wrap.R: strwrap_ctl(1:3) 397s [1] "1" "2" "3" 397s 14/14 wrap.R: strwrap_ctl(hello2.0, width = "35") 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `width` must be numeric. 397s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, width = NA_integer_) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `width` must be a positive scalar numeric representable as integer. 397s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, indent = NA_integer_) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `indent` must be a positive scalar numeric representable as integer. 397s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, indent = -3) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `indent` must be a positive scalar numeric representable as integer. 397s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, exdent = -3) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `exdent` must be a positive scalar numeric representable as integer. 397s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `exdent` must be a positive scalar numeric representable as integer. 397s Calls: unitize_dir ... strwrap2_ctl -> VAL_WRAP_IN_ENV -> is_scl_int_pos -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, exdent = 1:3) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `prefix` must be a scalar character. 397s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, prefix = 1:3) 397s 14/14 wrap.R: strwrap_ctl(hello2.0, initial = 1:3) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `initial` must be a scalar character. 397s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `warn` must be TRUE or FALSE. 397s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, warn = NULL) 397s 14/14 wrap.R: strwrap_ctl(hello2.0, term.cap = 1:3) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `term.cap` must be character. 397s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, term.cap = "bananas") 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `term.cap` may only contain values in c("all", "bright", "256", "truecolor", "old") 397s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `ctl` must be character. 397s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, ctl = 1:3) 397s 14/14 wrap.R: strwrap_ctl(hello2.0, ctl = "bananas") 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `ctl` may contain only values in `c("all", "nl", "c0", "sgr", "csi", "esc", "url", "osc")` 397s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, wrap.always = 1:3) 397s Error in strwrap2_ctl(hello2.0, wrap.always = 1:3) : 397s Argument `wrap.always` must be TRUE or FALSE. 397s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, wrap.always = NA) 397s Error in strwrap2_ctl(hello2.0, wrap.always = NA) : 397s Argument `wrap.always` must be TRUE or FALSE. 397s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = NA) 397s Error in strwrap2_ctl(hello2.0, tabs.as.spaces = NA) : 397s Argument `tabs.as.spaces` must be TRUE or FALSE. 397s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = 1) 397s [1] "hello \033[31mworld \033[42m this is a lovely\033[0mday." 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, tab.stops = -(1:3)) 397s Error in strwrap2_ctl(hello2.0, tab.stops = -(1:3)) : 397s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 397s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, tab.stops = 0) 397s Error in strwrap2_ctl(hello2.0, tab.stops = 0) : 397s Argument `tab.stops` must be numeric, strictly positive, and representable as an integer. 397s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s Error in strwrap2_ctl(hello2.0, strip.spaces = 1:3) : 397s Argument `strip.spaces` must be TRUE or FALSE. 397s Calls: unitize_dir ... eval -> withVisible -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, strip.spaces = 1:3) 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, tabs.as.spaces = TRUE, strip.spaces = TRUE) 397s Error in strwrap2_ctl(hello2.0, tabs.as.spaces = TRUE, strip.spaces = TRUE) : 397s `tabs.as.spaces` and `strip.spaces` should not both be TRUE. 397s Calls: unitize_dir ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, pad.end = letters) 397s Error in strwrap2_ctl(hello2.0, pad.end = letters) : 397s Argument `pad.end` must be a scalar character. 397s Calls: unitize_dir ... withVisible -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s 14/14 wrap.R: bytes <- "\360\343" 397s 14/14 wrap.R: Encoding(bytes) <- "bytes" 397s 14/14 wrap.R: strwrap_ctl(hello2.0, prefix = bytes) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `prefix` cannot be "bytes" encoded. 397s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(hello2.0, initial = bytes) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `initial` cannot be "bytes" encoded. 397s Calls: unitize_dir ... strwrap_ctl -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap2_ctl(hello2.0, pad.end = bytes) 397s Error in strwrap2_ctl(hello2.0, pad.end = bytes) : 397s Argument `pad.end` cannot be "bytes" encoded. 397s Calls: unitize_dir ... withVisible -> strwrap2_ctl -> VAL_WRAP_IN_ENV -> stop2 397s 14/14 wrap.R: strwrap_ctl(c(hello2.0, bytes)) 397s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 397s Argument `x` contains a "bytes" encoded string at index [2], which is disallowed. 397s Calls: unitize_dir ... withVisible -> strwrap_ctl -> strwrap2_ctl -> VAL_IN_ENV -> stop2 397s 397s Prepping Unitizers... 397s Warning in history_capt(history, interactive.mode) : 397s Unable to capture history in non-interactive mode. 399s 399s | Summary of files in common directory '.': 399s | 399s | Pass Fail 399s | 1. has.R 32 - 399s | 2. interactions.R 93 - 399s | 3. misc.R 107 - 399s | 4. nchar.R 48 - 399s | 5. normalize.R 47 - 399s | 6. overflow.R 56 - 399s | 7. strip.R 99 - 399s | 8. strsplit.R 38 - 399s | 9. substr.R 219 - 399s | 10. tabs.R 16 - 399s | 11. tohtml.R 68 - 399s | 12. trimws.R 12 - 399s | 13. url.R 50 - 399s | 14. wrap.R 141 - 399s | .............................. 399s | 1026 - 399s 399s | 1026/1026 tests passed; nothing to review. 399s 399s 399s Preloads... 399s Loading unitizer data... 399s Parsing tests... 399s Parsing special/utf8.R 399s Evaluating tests... 399s 399s library(fansi) 399s unitizer_sect("substr", { 399s term.cap <- c("bright", "256", "truecolor") 399s lorem.cn.pieces <- substr(rep(lorem.cn, 5), c(1, 11, 21, 31), 399s lorem.cn.col.1 <- paste0(red, lorem.cn.pieces[1], inv, lorem.cn.pieces[2], 399s lor.cn.c.1.5 <- rep(lorem.cn.col.1, 5) 399s starts <- seq(1, 17, 4) 399s ends <- starts + 3 399s substr2_ctl(lor.cn.c.1.5, starts, ends, term.cap = term.cap) 399s [1] "\033[31m\033[0m" 399s [2] "\033[31m\033[0m" 399s [3] "\033[31m\033[7m\033[0m" 399s [4] "\033[7;31m\033[42m\033[0m" 399s [5] "\033[7;31;42m\033[4;38;2;0;120;200m\033[0m" 399s lorem.cn.col.2 <- paste0(red, lorem.cn.pieces[1], "hello", inv, 399s lor.cn.c.2.5 <- rep(lorem.cn.col.2, 5) 399s starts <- seq(1, by = 6, length.out = 5) 399s ends <- starts + 5 399s substr2_ctl(lor.cn.c.2.5, starts, ends, term.cap = term.cap) 399s [1] "\033[31m\033[0m" 399s [2] "\033[31mhe\033[0m" 399s [3] "\033[31mllo\033[7m\033[0m" 399s [4] "\033[7;31m the\033[0m" 399s [5] "\033[7;31mre \033[42m\033[4;38;2;0;120;200m\033[0m" 399s substr2_sgr(lor.cn.c.2.5, starts, ends, term.cap = term.cap) 399s [1] "\033[31m\033[0m" 399s [2] "\033[31mhe\033[0m" 399s [3] "\033[31mllo\033[7m\033[0m" 399s [4] "\033[7;31m the\033[0m" 399s [5] "\033[7;31mre \033[42m\033[4;38;2;0;120;200m\033[0m" 399s starts <- seq(1, by = 12, length.out = 5) 399s ends <- starts + 11 399s substr2_ctl(lor.cn.c.2.5, starts, ends, type = "width", term.cap = term.cap) 399s [1] "\033[31m\033[0m" 399s [2] "\033[31mhell\033[0m" 399s [3] "\033[31mo\033[7m \033[0m" 399s [4] "\033[7;31mthere \033[42m\033[4;38;2;0;120;200m\033[0m" 399s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 399s lorem.cn.col.4 <- paste0(red, lorem.cn.pieces[1], "hello", inv, 399s lor.cn.c.4.5 <- rep(lorem.cn.col.4, 5) 399s substr2_ctl(lor.cn.c.4.5, starts, ends, type = "width") 399s [1] "\033[31m\033[0m" 399s [2] "\033[31mhell\033[0m" 399s [3] "\033[31mo\033[7m \033[0m" 399s [4] "\033[7;31mthere \033[42m\033[4;38;5;141m\033[0m" 399s [5] "\033[4;7;38;5;141;42m\033[0m" 399s lorem.cn.col.3 <- paste0(red, lorem.cn.pieces[1], "helloo", inv, 399s lor.cn.c.3.5 <- rep(lorem.cn.col.3, 5) 399s starts <- seq(1, by = 12, length.out = 5) 399s ends <- starts + 10 399s ends[2] <- 24 399s substr2_ctl(lor.cn.c.3.5, starts, ends, type = "width", term.cap = term.cap) 399s [1] "\033[31m\033[0m" 399s [2] "\033[31mhell\033[0m" 399s [3] "\033[31moo\033[7m\033[0m" 399s [4] "\033[7;31m world! \033[42m\033[0m" 399s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 399s substr2_ctl(lor.cn.c.3.5, starts, ends, type = "width", round = "both", 399s [1] "\033[31m\033[0m" 399s [2] "\033[31mhell\033[0m" 399s [3] "\033[31moo\033[7m\033[0m" 399s [4] "\033[7;31m world! \033[42m\033[0m" 399s [5] "\033[4;7;38;2;0;120;200;42m\033[0m" 399s starts <- seq(1, by = 7, length.out = 5) 399s ends <- starts + 8 399s substr2_ctl(lor.cn.c.1.5, starts, ends, type = "width", term.cap = term.cap) 399s [1] "\033[31m\033[0m" 399s [2] "\033[31m\033[0m" 399s [3] "\033[31m\033[7m\033[0m" 399s [4] "\033[7;31m\033[0m" 399s [5] "\033[7;31m\033[42m\033[4;38;2;0;120;200m\033[0m" 399s substr2_ctl(lor.cn.c.1.5, starts, ends, type = "width", round = "stop", 399s [1] "\033[31m\033[0m" 399s [2] "\033[31m\033[0m" 399s [3] "\033[31m\033[7m\033[0m" 399s [4] "\033[7;31m\033[0m" 399s [5] "\033[7;31m\033[42m\033[4;38;2;0;120;200m\033[0m" 399s bytes <- "\300\261\360\261\300\261\300\261" 399s Encoding(bytes) <- "bytes" 399s tce(substr_ctl(bytes, 2, 3)) 399s [1] "Argument `x` contains a \"bytes\" encoded string at index [1], which is disallowed." 399s latin <- "H\351llo W\326rld!" 399s Encoding(latin) <- "latin1" 399s latin.utf8 <- substr_ctl(latin, 1, 9) 399s latin.utf8 399s [1] "Hllo Wr" 399s Encoding(latin.utf8) 399s [1] "UTF-8" 399s rnd.1 <- "\357\274\255n\357\274\267" 399s Encoding(rnd.1) <- "UTF-8" 399s substr2_ctl(rnd.1, 2, 4, type = "width", round = "start") 399s [1] "n" 399s substr2_ctl(rnd.1, 2, 4, type = "width", round = "stop") 399s [1] "n" 399s substr2_ctl(rnd.1, 2, 4, type = "width", round = "neither") 399s [1] "n" 399s substr2_ctl(rnd.1, 2, 4, type = "width", round = "both") 399s [1] "n" 399s rnd.2 <- "\357\274\255\357\274\267" 399s Encoding(rnd.2) <- "UTF-8" 399s substr2_ctl(rnd.2, 2, 3, type = "width", round = "start") 399s [1] "" 399s substr2_ctl(rnd.2, 2, 3, type = "width", round = "stop") 399s [1] "" 399s substr2_ctl(rnd.2, 1, 2, type = "width", round = "start") 399s [1] "" 399s substr2_ctl(rnd.2, 1, 2, type = "width", round = "stop") 399s [1] "" 399s substr2_ctl(rnd.2, 3, 4, type = "width", round = "start") 399s [1] "" 399s substr2_ctl(rnd.2, 3, 4, type = "width", round = "stop") 399s [1] "" 399s unitizer_sect("rounding", { 399s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "stop") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "stop") 399s [1] "\033[31m\033[0m" 399s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "stop") 399s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "stop") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "stop") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "both") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "both") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "both") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "both") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "both") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 1, 2, type = "width", round = "neither") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 1, 3, type = "width", round = "neither") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "neither") 400s [1] "" 400s substr2_ctl(lorem.cn.col.2, 2, 4, type = "width", round = "neither") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 3, 4, type = "width", round = "neither") 400s [1] "\033[31m\033[0m" 400s substr2_ctl(lorem.cn.col.2, 2, 3, type = "width", round = "neither", 400s [1] "\033[31m" 400s unitizer_sect("multi-elem", { 400s lor.cn.2.2 <- rep(lorem.cn.col.2, 2) 400s substr2_ctl(lor.cn.2.2, c(1, 3), c(2, 4), type = "width") 400s [1] "\033[31m\033[0m" "\033[31m\033[0m" 400s substr2_ctl(lor.cn.2.2, c(2, 4), c(2, 4), type = "width") 400s [1] "\033[31m\033[0m" "\033[31m\033[0m" 400s unitizer_sect("zero width combining", { 400s combo <- "hello world" 400s Encoding(combo) <- "UTF-8" 400s substr2_ctl(combo, 1, 5, type = "width") 400s [1] "hello" 400s substr2_ctl(combo, 5, 8, type = "width") 400s [1] "o wo" 400s substr2_ctl(rep(combo, 2), c(1, 5), c(5, 8), type = "width") 400s [1] "hello" "o wo" 400s nchar_ctl(combo, type = "width") 400s [1] 11 400s nchar_ctl(combo, type = "graphemes") 400s [1] 11 400s combo3 <- paste0(substr(lorem.cn.pieces[1], 1, 2), "") 400s Encoding(combo3) <- "UTF-8" 400s substr2_ctl(combo3, 3, 4, type = "width") 400s [1] "" 400s substr2_ctl(combo3, 2, 4, type = "width") 400s [1] "" 400s substr2_ctl(combo3, 4, 4, type = "width") 400s [1] "" 400s substr2_ctl(combo3, 4, 5, type = "width") 400s [1] "" 400s combo4 <- paste0("hello") 400s substr2_ctl(combo4, 1, 1, type = "width") 400s [1] "h" 400s substr2_ctl(combo4, 1, 1) 400s [1] "" 400s substr2_ctl(combo4, 0, 1, type = "width") 400s [1] "h" 400s substr2_ctl(combo4, 0, 0, type = "width") 400s [1] "" 400s unitizer_sect("Corner cases", { 400s utf8.bad <- "hello \360 world, goodnight moon" 400s Encoding(utf8.bad) <- "UTF-8" 400s substr_ctl(utf8.bad, 1, 7) 400s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 400s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 400s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 400s substr_ctl(utf8.bad, 5, 10) 400s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 400s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 400s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 400s tce(substr2_ctl(utf8.bad, 1, 7, type = "width")) 400s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 400s tce(substr2_ctl(utf8.bad, 5, 10, type = "width")) 400s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 400s chrs.2 <- "hello\356" 400s Encoding(chrs.2) <- "UTF-8" 400s tce(substr2_ctl(chrs.2, 1, 10, type = "width")) 400s [1] "Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`." 400s bad.u <- c("A\033[31;\200mB", "A\033[31;\200pB") 400s Encoding(bad.u) <- "UTF-8" 400s substr_ctl(bad.u[1], 0, 3) 400s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 400s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 400s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 400s substr_ctl(bad.u[2], 0, 3) 400s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 400s Argument `x` contains an illegal non-ASCII byte at index [1], see `?unhandled_ctl`. 400s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 400s b.test <- c("", ("a"), ("a"), 400s identical(substr_ctl(b.test, 0, 3), substr(b.test, 0, 3)) 400s [1] TRUE 400s identical(substr_ctl(b.test, 0, 2), substr(b.test, 0, 2)) 400s [1] TRUE 400s identical(substr_ctl(b.test, 1, 2), substr(b.test, 1, 2)) 400s [1] TRUE 400s identical(substr_ctl(b.test, 0, 4), substr(b.test, 0, 4)) 400s [1] TRUE 400s identical(substr_ctl(b.test, 4, 4), substr(b.test, 4, 4)) 400s [1] TRUE 400s b.t.c <- sprintf("\033[43m%s\033[49m", b.test) 400s substr_ctl(b.t.c, 0, 0) 400s [1] "" "" "" "" 400s substr_ctl(b.t.c, 0, 2) 400s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 400s [3] "\033[43m\033[0m" "\033[43ma\033[0m" 400s substr_ctl(b.t.c, 1, 2) 400s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 400s [3] "\033[43m\033[0m" "\033[43ma\033[0m" 400s substr_ctl(b.t.c, 0, 4) 400s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 400s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 400s substr_ctl(b.t.c, 4, 4) 400s [1] "" "" "" "" 400s substr2_ctl(b.t.c, 0, 0, type = "width") 400s [1] "" "" "" "" 400s substr2_ctl(b.t.c, 0, 2, type = "width") 400s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 400s [3] "\033[43m\033[0m" "\033[43m\033[0m" 400s substr2_ctl(b.t.c, 1, 4, type = "width") 400s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 400s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 400s substr2_ctl(b.t.c, 0, 5, type = "width") 400s [1] "\033[43m\033[0m" "\033[43ma\033[0m" 400s [3] "\033[43ma\033[0m" "\033[43ma\033[0m" 400s substr2_ctl(b.t.c, 5, 5, type = "width") 400s [1] "" "" "" "" 400s substr_ctl(b.t.c, 0, 4, terminate = FALSE) 400s [1] "\033[43m\033[49m" "\033[43ma\033[49m" 400s [3] "\033[43ma\033[49m" "\033[43ma\033[49m" 400s substr2_ctl(b.t.c, 1, 4, terminate = FALSE, type = "width") 400s [1] "\033[43m" "\033[43ma\033[49m" 400s [3] "\033[43ma\033[49m" "\033[43ma\033[49m" 400s unitizer_sect("nchar", { 400s chr.dia <- "A" 400s nchar_ctl(chr.dia) 400s [1] 2 400s nchar(chr.dia) 400s [1] 2 400s nchar_ctl(chr.dia, type = "width") 400s [1] 1 400s w1 <- "" 400s w2 <- "" 400s nchar_ctl(w1) 400s [1] 3 400s nchar_ctl(w2, type = "width") 400s [1] 6 400s nchar_ctl(w2, type = "graphemes") 400s [1] 3 400s nchar_ctl(w2, type = "bytes") 400s [1] 9 400s hello.illegal <- c("hello", "\360", "\360aaaa") 400s Encoding(hello.illegal) <- "UTF-8" 400s Error in nchar_ctl_internal(x = x, type.int = TYPE.INT, allowNA = allowNA, : 400s Argument `x` contains a malformed UTF-8 sequence at index [2], see `?unhandled_ctl`. 400s Calls: unitize ... eval -> withVisible -> nchar_ctl -> nchar_ctl_internal 400s nchar_ctl(hello.illegal) 400s nchar_ctl(hello.illegal, allowNA = TRUE) 400s [1] 5 NA NA 400s nzchar_ctl(hello.illegal) 400s [1] TRUE TRUE TRUE 400s esc.1 <- sprintf("hello \033[31mworld\033[m%s\033[48;5;123m blahs \033[m%s", 400s Encoding(esc.1) <- "UTF-8" 400s nchar_ctl(esc.1) 400s [1] 23 400s nchar_ctl(esc.1, type = "width") 400s [1] 28 400s nchar_ctl(esc.1, type = "bytes") 400s [1] 33 400s nzchar_ctl(esc.1) 400s [1] TRUE 400s esc.2 <- "\n\r\033P\033[31m\a" 400s nchar_ctl(c(esc.1, esc.2, "hello"), warn = FALSE) 400s [1] 23 0 5 400s esc.4 <- c(sprintf("\033[31m%shello", w1), NA, hello.illegal) 400s nchar_sgr(esc.4, type = "width", keepNA = FALSE, warn = FALSE, 400s [1] 11 2 5 NA NA 400s nzchar_sgr(esc.4, keepNA = FALSE, warn = FALSE) 400s [1] TRUE TRUE TRUE TRUE TRUE 400s nchar_sgr("\033[31m\thello", type = "width") >= nchar_ctl("\033[31m\thello", 400s [1] TRUE 400s ncb <- c("123\033[31\200m123", "123\033\200123") 400s Encoding(ncb) <- "UTF-8" 400s nchar_ctl(ncb) 400s [1] 6 6 400s unitizer_sect("unhandled", { 400s utf8.bad.0 <- "hello\033\033\033[45p \360how wor\ald" 400s Encoding(utf8.bad.0) <- "UTF-8" 400s unhandled_ctl(utf8.bad.0) 400s index start stop error translated esc 400s 1 1 6 7 malformed-ESC FALSE \033\033 400s 2 1 8 12 non-SGR/hyperlink FALSE \033[45p 400s 3 1 14 14 malformed-UTF8 FALSE 400s 4 1 22 22 C0 FALSE \a 401s utf8.bad.1 <- "hello \360ho" 401s Encoding(utf8.bad.1) <- "UTF-8" 401s unhandled_ctl(utf8.bad.1) 401s index start stop error translated esc 401s 1 1 7 7 malformed-UTF8 FALSE 401s unitizer_sect("utf8clen", { 401s chrs <- c("\302\200", "\337\277", "\340\240\200", "\340\277\277", 401s Encoding(chrs) <- "UTF-8" 401s nchar(chrs, allowNA = TRUE) 401s [1] 1 1 1 1 1 1 1 1 1 1 1 1 NA NA NA NA 401s nchar_ctl(chrs, allowNA = TRUE) 401s [1] 1 1 1 1 1 1 1 1 1 1 1 1 NA NA NA NA 401s utf8.bad.2 <- "\277aaaaaa" 401s Encoding(utf8.bad.2) <- "UTF-8" 401s nchar(utf8.bad.2, allowNA = TRUE) 401s [1] NA 401s nchar_ctl(utf8.bad.2, allowNA = TRUE) 401s [1] NA 401s substr_ctl(utf8.bad.2, 1, 1) 401s Error in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 401s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 401s Calls: unitize ... withVisible -> substr_ctl -> substr2_ctl -> substr_ctl_internal 401s unitizer_sect("wrap corner cases", { 401s pre.2 <- "\033[32m\320\237 \033[0m" 401s ini.2 <- "\033[33m\321\200 \033[0m" 401s hello.8c <- "hello \320\237\321\200\320\270\320\262\320\265\321\202 world" 401s Encoding(pre.2) <- "UTF-8" 401s Encoding(ini.2) <- "UTF-8" 401s Encoding(hello.8c) <- "UTF-8" 401s pre.3 <- "\320\237 " 401s ini.3 <- "\321\200 " 401s Encoding(pre.3) <- "UTF-8" 401s Encoding(ini.3) <- "UTF-8" 401s wrap.csi.4 <- strwrap_ctl(hello.8c, 15, prefix = pre.2, initial = ini.2) 401s wrap.csi.4 401s [1] "\033[33m \033[0mhello " 401s [2] "\033[32m \033[0mworld" 401s utf8.chr <- "" 401s Error in strwrap2_ctl(utf8.chr, 1, wrap.always = TRUE) : 401s Width must be at least 2 in `wrap.always` mode. 401s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 401s strwrap2_ctl(utf8.chr, 1, wrap.always = TRUE) 401s strwrap2_ctl(utf8.chr, 2, wrap.always = TRUE) 401s Error in strwrap2_ctl(utf8.chr, 2, wrap.always = TRUE) : 401s Wrap error: trying to wrap to width narrower than character width; set `wrap.always=FALSE` to resolve. 401s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> strwrap2_ctl 401s strwrap2_ctl(utf8.chr, 3, wrap.always = TRUE) 401s [1] "" 401s strwrap_ctl("lovelyday.", 10) 401s [1] "lovelyday." 401s strwrap2_ctl("lovelyday.", 10, wrap.always = TRUE) 401s [1] "lovelyday" "." 401s utf8.bad <- "hello \360 world, goodnight moon" 401s Encoding(utf8.bad) <- "UTF-8" 401s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 401s Argument `x` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 401s Calls: unitize ... eval -> eval -> withVisible -> strwrap_ctl -> strwrap2_ctl 401s strwrap_ctl(utf8.bad, 10) 401s utf8.bad.2 <- "\360" 401s Encoding(utf8.bad.2) <- "UTF-8" 401s tcw(strwrap_ctl("hello world", 6, prefix = utf8.bad.2)) 401s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 401s Argument `prefix` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 401s Calls: unitize ... tryCatchOne -> doTryCatch -> strwrap_ctl -> strwrap2_ctl 401s suppressWarnings(strwrap_ctl("hello world", 6, prefix = utf8.bad.2)) 401s Error in strwrap2_ctl(x = x, width = width, indent = indent, exdent = exdent, : 401s Argument `prefix` contains a malformed UTF-8 sequence at index [1], see `?unhandled_ctl`. 401s Calls: unitize ... doWithOneRestart -> withCallingHandlers -> eval -> eval -> withVisible 401s bytes <- "\300\261\360\261\300\261\300\261" 401s Encoding(bytes) <- "bytes" 401s tce(strwrap_ctl(bytes)) 401s [1] "Argument `x` contains a \"bytes\" encoded string at index [1], which is disallowed." 401s encstrings <- c("hell world", "hello wrld") 401s Encoding(strwrap_ctl(encstrings, 5)) 401s [1] "UTF-8" "unknown" "unknown" "UTF-8" 401s str.inf <- " " 401s strwrap2_ctl(str.inf, 2) 401s [1] "" "" 401s unitizer_sect("wrap with wide UTF8 and ESC", { 401s wrap.mix <- strwrap_ctl(lorem.mix, 25) 401s wrap.mix 401s [1] "lorem ipsum dolor" 401s [2] "\033[32m \033[0m" 401s [3] "\033[1;7;32msit amet consectetur\033[0m" 401s [4] "\033[1;7;32madipiscing elit sed do\033[0m" 401s [5] "" 401s [6] "\033[1;7;38;5;105meiusmod tempor\033[0m" 401s [7] "\033[1;7;38;5;105mincididunt ut labore et\033[0m" 401s [8] "\033[1;7;38;5;105mdolore magna aliqua ut\033[0m" 401s [9] "" 401s [10] " " 401s [11] "\033[34;43menim ad minim veniam\033[0m" 401s [12] "\033[34;43mquis\033[49mnostrud exercitation\033[0m" 401s [13] "\033[34mullamco laboris nisi\033[0m" 401s [14] "\033[4m \033[0m" 401s [15] "" 401s [16] "\033[4m \033[0m" 401s [17] "\033[4mut aliquip ex ea commodo\033[0m" 401s [18] "\033[4mconsequat\033[0m" 401s string <- "\033[37;48;5;32m\345\234\213\345\256\230\346\226\271\350\252\215\345\ 401s Encoding(string) <- "UTF-8" 401s strwrap2_ctl(string, 24, wrap.always = TRUE, pad.end = " ") 401s [1] "\033[37;48;5;32m56 \033[0m" 401s [2] "\033[37;48;5;32m\033[39;49m " 401s unitizer_sect("issue 54 ctd", { 401s string3 <- c("\033[38;5;246m# \342\200\246 with 5 more variables: total_time \03 401s Encoding(string3) <- "UTF-8" 401s fansi::sgr_to_html(html_esc(string3)) 401s [1] "# with 5 more variables: total_time <bch:tm>, result <list>, memory <list>," 401s [2] "# time <list>, gc <list>" 401s string4 <- c("wow \033[31m then", "hello\033[\200;wow", "yo \033[m there", 401s Encoding(string4) <- "UTF-8" 401s sgr_to_html(string4) 401s Error in to_html_int(x = x, warn = warn, term.cap = term.cap, classes = classes, : 401s Argument `x` contains an illegal non-ASCII byte at index [2], see `?unhandled_ctl`. 401s Calls: unitize ... eval -> eval -> withVisible -> sgr_to_html -> to_html_int 401s unitizer_sect("html_esc", { 401s x <- "" 401s html_esc(c("h&e'l\"lo", "wors", NA, ""), x) 401s Error in html_esc(c("h&e'l\"lo", "wors", NA, ""), x) : 401s Argument `what` may only contain ASCII characters "&", "<", ">", "'", or "\"". 401s Calls: unitize ... withCallingHandlers -> eval -> eval -> withVisible -> html_esc 401s 401s Prepping Unitizers... 401s Warning in history_capt(history, interactive.mode) : 401s Unable to capture history in non-interactive mode. 401s 401s | 125/125 tests passed; nothing to review. 401s 401s 401s Preloads... 401s Loading unitizer data... 401s Parsing tests... 401s Parsing special/emo-graph.R 402s Evaluating tests... 402s 402s library(fansi) 402s unitizer_sect("Emoji combining", { 402s flags <- " \033[0m" 402s [2] "\033[44m \033[0m" 402s [3] "\033[44m \033[0m" 402s strwrap2_ctl(flags, 7, wrap.always = TRUE, pad.end = " ", carry = "\033[44m") 402s [1] "\033[44m\033[0m" 402s [2] "\033[44m\033[0m" 402s flags.1 <- paste0("a", flags) 402s strwrap2_ctl(flags.1, 7, wrap.always = TRUE, pad.end = " ", carry = "\033[44m") 402s [1] "\033[44ma \033[0m" 402s [2] "\033[44m\033[0m" 402s [3] "\033[44m \033[0m" 402s substr2_ctl(flags, 1, 1, type = "width") 402s [1] "" 402s substr2_ctl(flags, 1, 1, type = "width", round = "stop") 402s [1] "" 402s substr2_ctl(flags, 1, 2, type = "width", round = "neither") 402s [1] "" 402s substr2_ctl(flags, 2, 3, type = "width", round = "stop") 402s [1] "" 402s substr2_ctl(flags, 2, 3, type = "width", round = "start") 402s [1] "" 402s substr2_ctl(flags, 2, 3, type = "width", round = "both") 402s [1] "" 402s substr2_ctl(flags, 2, 3, type = "width", round = "neither") 402s [1] "" 402s emo.0 <- "_B" 402s emo.2 <- "" 402s emo.2a <- paste0("_", emo.2, "^", emo.2) 402s nchar_ctl(c(emo.0, emo.1, emo.2), type = "width") 402s [1] 6 6 2 402s nchar_ctl(c(emo.0, emo.1, emo.2), type = "graphemes") 402s [1] 3 5 1 402s substr2_ctl(emo.0, 1, 1, type = "width") 402s [1] "" 402s substr2_ctl(emo.0, 1, 1, type = "width", round = "stop") 402s [1] "" 402s substr2_ctl(emo.0, 1, 2, type = "width", round = "stop") 402s [1] "" 402s substr2_ctl(emo.0, 2, 3, type = "width", round = "stop") 402s [1] "" 402s substr2_ctl(emo.0, 2, 3, type = "width", round = "start") 402s [1] "" 402s substr2_ctl(emo.0, 2, 3, type = "width", round = "both") 402s [1] "" 402s substr2_ctl(emo.0, 2, 3, type = "width", round = "neither") 402s [1] "" 402s substr2_ctl(emo.1, 1, 3, type = "width") 402s [1] "A_" 402s substr2_ctl(emo.1, 1, 3, type = "width", round = "stop") 402s [1] "A_" 402s substr2_ctl(emo.1, 3, 5, type = "width") 402s [1] "_" 402s substr2_ctl(emo.1, 4, 5, type = "width") 402s [1] "_" 402s emo.3 <- "" 402s emo.4 <- " \033[0m" 402s [4] "\033[44m \033[0m" 402s [5] "\033[44mthere was\033[0m" 402s [6] "\033[44ma humpty \033[0m" 402s [7] "\033[44m \033[0m" 402s [8] "\033[44m \033[0m" 402s [9] "\033[44mdumpty \033[0m" 402s [10] "\033[44mA__B on\033[0m" 402s [11] "\033[44mthe wall \033[0m" 402s [12] "\033[44mand he \033[0m" 402s [13] "\033[44mhad a \033[0m" 402s [14] "\033[44m big \033[0m" 402s [15] "\033[44mfall \033[0m" 402s [16] "\033[44moh no \033[0m" 402s [17] "\033[44monce upon\033[0m" 402s [18] "\033[44ma time \033[0m" 402s [19] "\033[44m \033[0m" 402s [20] "\033[44m \033[0m" 402s [21] "\033[44mthere was\033[0m" 402s [22] "\033[44ma humpty \033[0m" 402s [23] "\033[44m \033[0m" 402s [24] "\033[44m \033[0m" 402s [25] "\033[44mdumpty \033[0m" 402s [26] "\033[44mA__B on\033[0m" 402s [27] "\033[44mthe wall \033[0m" 402s [28] "\033[44mand he \033[0m" 402s [29] "\033[44mhad a \033[0m" 402s [30] "\033[44m big \033[0m" 402s [31] "\033[44mfall \033[0m" 402s [32] "\033[44moh no \033[0m" 402s emo.6 <- c(emo.0, emo.2a, emo.4) 402s substr2_ctl(emo.6, 1, 2, type = "graphemes") 402s [1] "" 402s [2] "_" 402s [3] "" 402s substr2_ctl(emo.6, 1, 3, type = "graphemes") 402s [1] "" 402s [2] "_^" 402s [3] "" 402s substr2_ctl(emo.6, 2, 3, type = "graphemes") 402s [1] "" 402s [2] "^" 402s [3] "" 402s substr2_ctl(emo.6, 3, 3, type = "graphemes") 402s [1] "" "^" "" 402s emo.5 <- "\360\237\221\266\033[43m\360\237\217\275###\033[m" 402s Encoding(emo.5) <- "UTF-8" 402s substr2_ctl(emo.5, 1, 2, type = "width") 402s [1] "\033[43m\033[0m" 402s substr2_ctl(emo.5, 2, 3, type = "width") 402s [1] "\033[43m#\033[0m" 402s nchar_ctl(emo.5, type = "width") 402s [1] 5 402s nchar_ctl(emo.5, type = "grapheme") 402s [1] 4 402s emo.0.1 <- paste0("\033[33m", substr2_ctl(emo.0, 1, 1, type = "graphemes"), 402s substr2_ctl(emo.0.1, 2, 2, type = "width") 402s [1] "\033[33m\033[0m" 402s substr2_ctl(emo.0.1, 2, 2, type = "width", terminate = FALSE) 402s [1] "\033[33m" 402s substr2_ctl(emo.0.1, 1, 1, type = "width", round = "stop") 402s [1] "\033[33m\033[0m" 402s substr2_ctl(emo.0.1, 1, 3, type = "width") 402s [1] "\033[33m\033[0m" 402s substr2_ctl(emo.0.1, 1, 3, type = "width", terminate = FALSE) 402s [1] "\033[33m\033[45m" 402s substr2_ctl(emo.0.1, 1, 3, type = "width", round = "stop") 402s [1] "\033[33m\033[0m" 402s emo.0.2 <- paste0(emo.0.1, "\a") 402s substr2_ctl(emo.0.2, 1, 3, type = "width", round = "start") 402s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 402s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 402s [1] "\033[33m\033[45m\a\033[0m" 402s emo.0.3 <- paste0(emo.0.1, "\a\033]8;;x.yz\033\\") 402s substr2_ctl(emo.0.3, 1, 3, type = "width", round = "start") 402s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 402s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 402s [1] "\033[33m\033[45m\a\033[0m" 402s emo.0.4 <- paste0("\033]8;;x.yz\033\\", substr2_ctl(emo.0, 1, 402s substr2_ctl(emo.0.4, 1, 3, type = "width") 402s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 402s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 402s [1] "\033]8;;x.yz\033\\\033]8;;w.ww\033\\\a\033]8;;\033\\" 402s substr2_ctl(emo.0.4, 1, 3, type = "width", terminate = FALSE) 402s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 402s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 402s [1] "\033]8;;x.yz\033\\\033]8;;w.ww\033\\\a\033[42m" 402s substr2_ctl(emo.0.4, 1, 2, type = "width", terminate = FALSE) 402s [1] "\033]8;;x.yz\033\\" 402s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 402s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 402s substr2_ctl(emo.0.4, 1, 2, type = "width") 402s Warning in substr_ctl_internal(x, start = start, stop = stop, type.int = TYPE.INT, : 402s Argument `x` contains a C0 control character at index [1], see `?unhandled_ctl`; you can use `warn=FALSE` to turn off these warnings. 402s [1] "\033]8;;x.yz\033\\\033]8;;\033\\" 402s unitizer_sect("replacement and width", { 402s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0) 402s [1] "A__B" 402s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0, type = "width") 402s [1] "A__B" 402s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width") 402s [1] "A__B" 402s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "stop") 402s [1] "A__B" 402s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "neither") 402s [1] "A__B" 402s `substr2_ctl<-`(emo.1, 4, 4, value = "#", type = "width") 402s [1] "A_#_B" 402s `substr2_ctl<-`(emo.1, 4, 5, value = emo.0, type = "width") 402s [1] "A__B" 402s x <- "ABCDEF" 402s `substr2_ctl<-`(x, 2, 4, value = emo.0, type = "width") 402s [1] "ADEF" 402s `substr2_ctl<-`(x, 2, 4, value = emo.0, type = "width", round = "stop") 402s [1] "ADEF" 402s `substr2_ctl<-`(x, 2, 5, value = emo.0, type = "width") 402s [1] "AF" 402s `substr2_ctl<-`(emo.1, 3, 4, value = emo.0, type = "width", round = "both") 402s [1] "A__B" 402s `substr2_ctl<-`(emo.1, 4, 4, value = emo.0, type = "width", round = "both") 402s [1] "A__B" 402s a <- c(rep(emo.1, 4), rep(x, 2)) 402s b <- c(emo.0, "#", rep(emo.0, 4)) 402s starts <- c(3, 4, 4, 4, 2, 2) 402s stops <- c(4, 4, 4, 5, 4, 5) 402s x <- a 402s substr2_ctl(x, starts, stops, type = "width") <- b 402s x 402s [1] "A__B" 402s [2] "A_#_B" 402s [3] "A__B" 402s [4] "A__B" 402s [5] "ADEF" 402s [6] "AF" 402s starts <- c(3, 4, 2, 3, 4, 2) 402s ends <- c(8, 9, 7, 7, 8, 6) 402s emo.3 <- rep(paste0("", 402s emo.4 <- "" 402s [2] "" 402s [3] "" 402s [4] "" 402s [5] "" 402s [6] "" 402s substr2_ctl(x1, starts, ends, type = "width", round = "stop") <- emo.4 402s x1 402s [1] "" 402s [2] "" 402s [3] "" 402s [4] "" 402s [5] "" 402s [6] "" 402s emo.7 <- "_" 402s emo.7a <- "" 402s `substr2_ctl<-`(emo.7, 3, 3, type = "width", round = "stop", 402s [1] "_" 402s `substr2_ctl<-`(emo.7, 3, 3, type = "width", round = "stop", 402s [1] "#" 402s `substr2_ctl<-`(emo.7a, 2, 1, type = "width", round = "both", 402s [1] "" 402s 402s Prepping Unitizers... 402s Warning in history_capt(history, interactive.mode) : 402s Unable to capture history in non-interactive mode. 403s 403s | 68/68 tests passed; nothing to review. 403s 403s > 403s autopkgtest [16:13:06]: test run-unit-test: -----------------------] 407s run-unit-test PASS 407s autopkgtest [16:13:10]: test run-unit-test: - - - - - - - - - - results - - - - - - - - - - 413s autopkgtest [16:13:16]: test pkg-r-autopkgtest: preparing testbed 416s Reading package lists... 416s Building dependency tree... 416s Reading state information... 417s Starting pkgProblemResolver with broken count: 0 418s Starting 2 pkgProblemResolver with broken count: 0 418s Done 420s The following NEW packages will be installed: 420s build-essential cpp cpp-14 cpp-14-arm-linux-gnueabihf 420s cpp-arm-linux-gnueabihf dctrl-tools g++ g++-14 g++-14-arm-linux-gnueabihf 420s g++-arm-linux-gnueabihf gcc gcc-14 gcc-14-arm-linux-gnueabihf 420s gcc-arm-linux-gnueabihf gfortran gfortran-14 gfortran-14-arm-linux-gnueabihf 420s gfortran-arm-linux-gnueabihf icu-devtools libasan8 libblas-dev libbz2-dev 420s libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libdeflate-dev libgcc-14-dev 420s libgfortran-14-dev libicu-dev libisl23 libjpeg-dev libjpeg-turbo8-dev 420s libjpeg8-dev liblapack-dev liblzma-dev libmpc3 libncurses-dev libpcre2-16-0 420s libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpkgconf3 libpng-dev 420s libreadline-dev libstdc++-14-dev libtirpc-dev libubsan1 linux-libc-dev 420s pkg-r-autopkgtest pkgconf pkgconf-bin r-base-dev rpcsvc-proto zlib1g-dev 420s 0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded. 420s Need to get 78.1 MB of archives. 420s After this operation, 243 MB of additional disk space will be used. 420s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf libc-dev-bin armhf 2.41-1ubuntu2 [23.0 kB] 420s Get:2 http://ftpmaster.internal/ubuntu plucky/main armhf linux-libc-dev armhf 6.14.0-10.10 [1683 kB] 422s Get:3 http://ftpmaster.internal/ubuntu plucky/main armhf libcrypt-dev armhf 1:4.4.38-1 [120 kB] 422s Get:4 http://ftpmaster.internal/ubuntu plucky/main armhf rpcsvc-proto armhf 1.4.2-0ubuntu7 [62.2 kB] 422s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/main armhf libc6-dev armhf 2.41-1ubuntu2 [1396 kB] 424s Get:6 http://ftpmaster.internal/ubuntu plucky/main armhf libisl23 armhf 0.27-1 [546 kB] 424s Get:7 http://ftpmaster.internal/ubuntu plucky/main armhf libmpc3 armhf 1.3.1-1build2 [47.1 kB] 424s Get:8 http://ftpmaster.internal/ubuntu plucky/main armhf cpp-14-arm-linux-gnueabihf armhf 14.2.0-17ubuntu3 [9220 kB] 434s Get:9 http://ftpmaster.internal/ubuntu plucky/main armhf cpp-14 armhf 14.2.0-17ubuntu3 [1030 B] 434s Get:10 http://ftpmaster.internal/ubuntu plucky/main armhf cpp-arm-linux-gnueabihf armhf 4:14.2.0-1ubuntu1 [5578 B] 434s Get:11 http://ftpmaster.internal/ubuntu plucky/main armhf cpp armhf 4:14.2.0-1ubuntu1 [22.4 kB] 434s Get:12 http://ftpmaster.internal/ubuntu plucky/main armhf libcc1-0 armhf 15-20250222-0ubuntu1 [38.9 kB] 434s Get:13 http://ftpmaster.internal/ubuntu plucky/main armhf libasan8 armhf 15-20250222-0ubuntu1 [2955 kB] 437s Get:14 http://ftpmaster.internal/ubuntu plucky/main armhf libubsan1 armhf 15-20250222-0ubuntu1 [1191 kB] 439s Get:15 http://ftpmaster.internal/ubuntu plucky/main armhf libgcc-14-dev armhf 14.2.0-17ubuntu3 [897 kB] 440s Get:16 http://ftpmaster.internal/ubuntu plucky/main armhf gcc-14-arm-linux-gnueabihf armhf 14.2.0-17ubuntu3 [18.0 MB] 459s Get:17 http://ftpmaster.internal/ubuntu plucky/main armhf gcc-14 armhf 14.2.0-17ubuntu3 [506 kB] 460s Get:18 http://ftpmaster.internal/ubuntu plucky/main armhf gcc-arm-linux-gnueabihf armhf 4:14.2.0-1ubuntu1 [1218 B] 460s Get:19 http://ftpmaster.internal/ubuntu plucky/main armhf gcc armhf 4:14.2.0-1ubuntu1 [5004 B] 460s Get:20 http://ftpmaster.internal/ubuntu plucky/main armhf libstdc++-14-dev armhf 14.2.0-17ubuntu3 [2573 kB] 463s Get:21 http://ftpmaster.internal/ubuntu plucky/main armhf g++-14-arm-linux-gnueabihf armhf 14.2.0-17ubuntu3 [10.5 MB] 474s Get:22 http://ftpmaster.internal/ubuntu plucky/main armhf g++-14 armhf 14.2.0-17ubuntu3 [21.8 kB] 474s Get:23 http://ftpmaster.internal/ubuntu plucky/main armhf g++-arm-linux-gnueabihf armhf 4:14.2.0-1ubuntu1 [966 B] 474s Get:24 http://ftpmaster.internal/ubuntu plucky/main armhf g++ armhf 4:14.2.0-1ubuntu1 [1084 B] 474s Get:25 http://ftpmaster.internal/ubuntu plucky/main armhf build-essential armhf 12.10ubuntu1 [4928 B] 474s Get:26 http://ftpmaster.internal/ubuntu plucky/main armhf dctrl-tools armhf 2.24-3build3 [94.7 kB] 474s Get:27 http://ftpmaster.internal/ubuntu plucky/main armhf libgfortran-14-dev armhf 14.2.0-17ubuntu3 [370 kB] 474s Get:28 http://ftpmaster.internal/ubuntu plucky/main armhf gfortran-14-arm-linux-gnueabihf armhf 14.2.0-17ubuntu3 [9763 kB] 485s Get:29 http://ftpmaster.internal/ubuntu plucky/main armhf gfortran-14 armhf 14.2.0-17ubuntu3 [13.6 kB] 485s Get:30 http://ftpmaster.internal/ubuntu plucky/main armhf gfortran-arm-linux-gnueabihf armhf 4:14.2.0-1ubuntu1 [1026 B] 485s Get:31 http://ftpmaster.internal/ubuntu plucky/main armhf gfortran armhf 4:14.2.0-1ubuntu1 [1166 B] 485s Get:32 http://ftpmaster.internal/ubuntu plucky/main armhf icu-devtools armhf 76.1-1ubuntu2 [206 kB] 485s Get:33 http://ftpmaster.internal/ubuntu plucky/main armhf libblas-dev armhf 3.12.1-2 [141 kB] 485s Get:34 http://ftpmaster.internal/ubuntu plucky/main armhf libbz2-dev armhf 1.0.8-6 [30.9 kB] 485s Get:35 http://ftpmaster.internal/ubuntu plucky/main armhf libdeflate-dev armhf 1.23-1 [45.0 kB] 485s Get:36 http://ftpmaster.internal/ubuntu plucky/main armhf libicu-dev armhf 76.1-1ubuntu2 [12.0 MB] 498s Get:37 http://ftpmaster.internal/ubuntu plucky/main armhf libjpeg-turbo8-dev armhf 2.1.5-3ubuntu2 [265 kB] 498s Get:38 http://ftpmaster.internal/ubuntu plucky/main armhf libjpeg8-dev armhf 8c-2ubuntu11 [1484 B] 498s Get:39 http://ftpmaster.internal/ubuntu plucky/main armhf libjpeg-dev armhf 8c-2ubuntu11 [1482 B] 498s Get:40 http://ftpmaster.internal/ubuntu plucky/main armhf liblapack-dev armhf 3.12.1-2 [2207 kB] 501s Get:41 http://ftpmaster.internal/ubuntu plucky/main armhf libncurses-dev armhf 6.5+20250216-2 [345 kB] 501s Get:42 http://ftpmaster.internal/ubuntu plucky/main armhf libpcre2-16-0 armhf 10.45-1 [207 kB] 501s Get:43 http://ftpmaster.internal/ubuntu plucky/main armhf libpcre2-32-0 armhf 10.45-1 [197 kB] 501s Get:44 http://ftpmaster.internal/ubuntu plucky/main armhf libpcre2-posix3 armhf 10.45-1 [6300 B] 501s Get:45 http://ftpmaster.internal/ubuntu plucky/main armhf libpcre2-dev armhf 10.45-1 [752 kB] 502s Get:46 http://ftpmaster.internal/ubuntu plucky/main armhf libpkgconf3 armhf 1.8.1-4 [26.6 kB] 502s Get:47 http://ftpmaster.internal/ubuntu plucky/main armhf zlib1g-dev armhf 1:1.3.dfsg+really1.3.1-1ubuntu1 [880 kB] 503s Get:48 http://ftpmaster.internal/ubuntu plucky/main armhf libpng-dev armhf 1.6.47-1 [251 kB] 503s Get:49 http://ftpmaster.internal/ubuntu plucky/main armhf libreadline-dev armhf 8.2-6 [153 kB] 503s Get:50 http://ftpmaster.internal/ubuntu plucky/main armhf liblzma-dev armhf 5.6.4-1 [166 kB] 504s Get:51 http://ftpmaster.internal/ubuntu plucky/main armhf pkgconf-bin armhf 1.8.1-4 [21.2 kB] 504s Get:52 http://ftpmaster.internal/ubuntu plucky/main armhf pkgconf armhf 1.8.1-4 [16.8 kB] 504s Get:53 http://ftpmaster.internal/ubuntu plucky/main armhf libtirpc-dev armhf 1.3.4+ds-1.3 [184 kB] 504s Get:54 http://ftpmaster.internal/ubuntu plucky/universe armhf r-base-dev all 4.4.3-1 [4176 B] 504s Get:55 http://ftpmaster.internal/ubuntu plucky/universe armhf pkg-r-autopkgtest all 20231212ubuntu1 [6448 B] 505s Fetched 78.1 MB in 1min 24s (929 kB/s) 505s Selecting previously unselected package libc-dev-bin. 505s (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 ... 78485 files and directories currently installed.) 505s Preparing to unpack .../00-libc-dev-bin_2.41-1ubuntu2_armhf.deb ... 505s Unpacking libc-dev-bin (2.41-1ubuntu2) ... 505s Selecting previously unselected package linux-libc-dev:armhf. 505s Preparing to unpack .../01-linux-libc-dev_6.14.0-10.10_armhf.deb ... 505s Unpacking linux-libc-dev:armhf (6.14.0-10.10) ... 505s Selecting previously unselected package libcrypt-dev:armhf. 505s Preparing to unpack .../02-libcrypt-dev_1%3a4.4.38-1_armhf.deb ... 505s Unpacking libcrypt-dev:armhf (1:4.4.38-1) ... 505s Selecting previously unselected package rpcsvc-proto. 505s Preparing to unpack .../03-rpcsvc-proto_1.4.2-0ubuntu7_armhf.deb ... 505s Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ... 505s Selecting previously unselected package libc6-dev:armhf. 505s Preparing to unpack .../04-libc6-dev_2.41-1ubuntu2_armhf.deb ... 505s Unpacking libc6-dev:armhf (2.41-1ubuntu2) ... 505s Selecting previously unselected package libisl23:armhf. 505s Preparing to unpack .../05-libisl23_0.27-1_armhf.deb ... 505s Unpacking libisl23:armhf (0.27-1) ... 505s Selecting previously unselected package libmpc3:armhf. 505s Preparing to unpack .../06-libmpc3_1.3.1-1build2_armhf.deb ... 505s Unpacking libmpc3:armhf (1.3.1-1build2) ... 505s Selecting previously unselected package cpp-14-arm-linux-gnueabihf. 505s Preparing to unpack .../07-cpp-14-arm-linux-gnueabihf_14.2.0-17ubuntu3_armhf.deb ... 505s Unpacking cpp-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 505s Selecting previously unselected package cpp-14. 505s Preparing to unpack .../08-cpp-14_14.2.0-17ubuntu3_armhf.deb ... 505s Unpacking cpp-14 (14.2.0-17ubuntu3) ... 505s Selecting previously unselected package cpp-arm-linux-gnueabihf. 505s Preparing to unpack .../09-cpp-arm-linux-gnueabihf_4%3a14.2.0-1ubuntu1_armhf.deb ... 505s Unpacking cpp-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 505s Selecting previously unselected package cpp. 506s Preparing to unpack .../10-cpp_4%3a14.2.0-1ubuntu1_armhf.deb ... 506s Unpacking cpp (4:14.2.0-1ubuntu1) ... 506s Selecting previously unselected package libcc1-0:armhf. 506s Preparing to unpack .../11-libcc1-0_15-20250222-0ubuntu1_armhf.deb ... 506s Unpacking libcc1-0:armhf (15-20250222-0ubuntu1) ... 506s Selecting previously unselected package libasan8:armhf. 506s Preparing to unpack .../12-libasan8_15-20250222-0ubuntu1_armhf.deb ... 506s Unpacking libasan8:armhf (15-20250222-0ubuntu1) ... 506s Selecting previously unselected package libubsan1:armhf. 506s Preparing to unpack .../13-libubsan1_15-20250222-0ubuntu1_armhf.deb ... 506s Unpacking libubsan1:armhf (15-20250222-0ubuntu1) ... 506s Selecting previously unselected package libgcc-14-dev:armhf. 506s Preparing to unpack .../14-libgcc-14-dev_14.2.0-17ubuntu3_armhf.deb ... 506s Unpacking libgcc-14-dev:armhf (14.2.0-17ubuntu3) ... 506s Selecting previously unselected package gcc-14-arm-linux-gnueabihf. 506s Preparing to unpack .../15-gcc-14-arm-linux-gnueabihf_14.2.0-17ubuntu3_armhf.deb ... 506s Unpacking gcc-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 506s Selecting previously unselected package gcc-14. 506s Preparing to unpack .../16-gcc-14_14.2.0-17ubuntu3_armhf.deb ... 506s Unpacking gcc-14 (14.2.0-17ubuntu3) ... 506s Selecting previously unselected package gcc-arm-linux-gnueabihf. 506s Preparing to unpack .../17-gcc-arm-linux-gnueabihf_4%3a14.2.0-1ubuntu1_armhf.deb ... 506s Unpacking gcc-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 506s Selecting previously unselected package gcc. 506s Preparing to unpack .../18-gcc_4%3a14.2.0-1ubuntu1_armhf.deb ... 506s Unpacking gcc (4:14.2.0-1ubuntu1) ... 506s Selecting previously unselected package libstdc++-14-dev:armhf. 506s Preparing to unpack .../19-libstdc++-14-dev_14.2.0-17ubuntu3_armhf.deb ... 506s Unpacking libstdc++-14-dev:armhf (14.2.0-17ubuntu3) ... 507s Selecting previously unselected package g++-14-arm-linux-gnueabihf. 507s Preparing to unpack .../20-g++-14-arm-linux-gnueabihf_14.2.0-17ubuntu3_armhf.deb ... 507s Unpacking g++-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 507s Selecting previously unselected package g++-14. 507s Preparing to unpack .../21-g++-14_14.2.0-17ubuntu3_armhf.deb ... 507s Unpacking g++-14 (14.2.0-17ubuntu3) ... 507s Selecting previously unselected package g++-arm-linux-gnueabihf. 507s Preparing to unpack .../22-g++-arm-linux-gnueabihf_4%3a14.2.0-1ubuntu1_armhf.deb ... 507s Unpacking g++-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 507s Selecting previously unselected package g++. 507s Preparing to unpack .../23-g++_4%3a14.2.0-1ubuntu1_armhf.deb ... 507s Unpacking g++ (4:14.2.0-1ubuntu1) ... 507s Selecting previously unselected package build-essential. 507s Preparing to unpack .../24-build-essential_12.10ubuntu1_armhf.deb ... 507s Unpacking build-essential (12.10ubuntu1) ... 507s Selecting previously unselected package dctrl-tools. 507s Preparing to unpack .../25-dctrl-tools_2.24-3build3_armhf.deb ... 507s Unpacking dctrl-tools (2.24-3build3) ... 507s Selecting previously unselected package libgfortran-14-dev:armhf. 507s Preparing to unpack .../26-libgfortran-14-dev_14.2.0-17ubuntu3_armhf.deb ... 507s Unpacking libgfortran-14-dev:armhf (14.2.0-17ubuntu3) ... 507s Selecting previously unselected package gfortran-14-arm-linux-gnueabihf. 507s Preparing to unpack .../27-gfortran-14-arm-linux-gnueabihf_14.2.0-17ubuntu3_armhf.deb ... 507s Unpacking gfortran-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 508s Selecting previously unselected package gfortran-14. 508s Preparing to unpack .../28-gfortran-14_14.2.0-17ubuntu3_armhf.deb ... 508s Unpacking gfortran-14 (14.2.0-17ubuntu3) ... 508s Selecting previously unselected package gfortran-arm-linux-gnueabihf. 508s Preparing to unpack .../29-gfortran-arm-linux-gnueabihf_4%3a14.2.0-1ubuntu1_armhf.deb ... 508s Unpacking gfortran-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 508s Selecting previously unselected package gfortran. 508s Preparing to unpack .../30-gfortran_4%3a14.2.0-1ubuntu1_armhf.deb ... 508s Unpacking gfortran (4:14.2.0-1ubuntu1) ... 508s Selecting previously unselected package icu-devtools. 508s Preparing to unpack .../31-icu-devtools_76.1-1ubuntu2_armhf.deb ... 508s Unpacking icu-devtools (76.1-1ubuntu2) ... 508s Selecting previously unselected package libblas-dev:armhf. 508s Preparing to unpack .../32-libblas-dev_3.12.1-2_armhf.deb ... 508s Unpacking libblas-dev:armhf (3.12.1-2) ... 508s Selecting previously unselected package libbz2-dev:armhf. 508s Preparing to unpack .../33-libbz2-dev_1.0.8-6_armhf.deb ... 508s Unpacking libbz2-dev:armhf (1.0.8-6) ... 508s Selecting previously unselected package libdeflate-dev:armhf. 508s Preparing to unpack .../34-libdeflate-dev_1.23-1_armhf.deb ... 508s Unpacking libdeflate-dev:armhf (1.23-1) ... 508s Selecting previously unselected package libicu-dev:armhf. 508s Preparing to unpack .../35-libicu-dev_76.1-1ubuntu2_armhf.deb ... 508s Unpacking libicu-dev:armhf (76.1-1ubuntu2) ... 508s Selecting previously unselected package libjpeg-turbo8-dev:armhf. 508s Preparing to unpack .../36-libjpeg-turbo8-dev_2.1.5-3ubuntu2_armhf.deb ... 508s Unpacking libjpeg-turbo8-dev:armhf (2.1.5-3ubuntu2) ... 508s Selecting previously unselected package libjpeg8-dev:armhf. 508s Preparing to unpack .../37-libjpeg8-dev_8c-2ubuntu11_armhf.deb ... 508s Unpacking libjpeg8-dev:armhf (8c-2ubuntu11) ... 508s Selecting previously unselected package libjpeg-dev:armhf. 508s Preparing to unpack .../38-libjpeg-dev_8c-2ubuntu11_armhf.deb ... 508s Unpacking libjpeg-dev:armhf (8c-2ubuntu11) ... 508s Selecting previously unselected package liblapack-dev:armhf. 508s Preparing to unpack .../39-liblapack-dev_3.12.1-2_armhf.deb ... 508s Unpacking liblapack-dev:armhf (3.12.1-2) ... 509s Selecting previously unselected package libncurses-dev:armhf. 509s Preparing to unpack .../40-libncurses-dev_6.5+20250216-2_armhf.deb ... 509s Unpacking libncurses-dev:armhf (6.5+20250216-2) ... 509s Selecting previously unselected package libpcre2-16-0:armhf. 509s Preparing to unpack .../41-libpcre2-16-0_10.45-1_armhf.deb ... 509s Unpacking libpcre2-16-0:armhf (10.45-1) ... 509s Selecting previously unselected package libpcre2-32-0:armhf. 509s Preparing to unpack .../42-libpcre2-32-0_10.45-1_armhf.deb ... 509s Unpacking libpcre2-32-0:armhf (10.45-1) ... 509s Selecting previously unselected package libpcre2-posix3:armhf. 509s Preparing to unpack .../43-libpcre2-posix3_10.45-1_armhf.deb ... 509s Unpacking libpcre2-posix3:armhf (10.45-1) ... 509s Selecting previously unselected package libpcre2-dev:armhf. 509s Preparing to unpack .../44-libpcre2-dev_10.45-1_armhf.deb ... 509s Unpacking libpcre2-dev:armhf (10.45-1) ... 509s Selecting previously unselected package libpkgconf3:armhf. 509s Preparing to unpack .../45-libpkgconf3_1.8.1-4_armhf.deb ... 509s Unpacking libpkgconf3:armhf (1.8.1-4) ... 509s Selecting previously unselected package zlib1g-dev:armhf. 509s Preparing to unpack .../46-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1ubuntu1_armhf.deb ... 509s Unpacking zlib1g-dev:armhf (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 509s Selecting previously unselected package libpng-dev:armhf. 509s Preparing to unpack .../47-libpng-dev_1.6.47-1_armhf.deb ... 509s Unpacking libpng-dev:armhf (1.6.47-1) ... 509s Selecting previously unselected package libreadline-dev:armhf. 509s Preparing to unpack .../48-libreadline-dev_8.2-6_armhf.deb ... 509s Unpacking libreadline-dev:armhf (8.2-6) ... 509s Selecting previously unselected package liblzma-dev:armhf. 509s Preparing to unpack .../49-liblzma-dev_5.6.4-1_armhf.deb ... 509s Unpacking liblzma-dev:armhf (5.6.4-1) ... 509s Selecting previously unselected package pkgconf-bin. 509s Preparing to unpack .../50-pkgconf-bin_1.8.1-4_armhf.deb ... 509s Unpacking pkgconf-bin (1.8.1-4) ... 509s Selecting previously unselected package pkgconf:armhf. 509s Preparing to unpack .../51-pkgconf_1.8.1-4_armhf.deb ... 509s Unpacking pkgconf:armhf (1.8.1-4) ... 509s Selecting previously unselected package libtirpc-dev:armhf. 509s Preparing to unpack .../52-libtirpc-dev_1.3.4+ds-1.3_armhf.deb ... 509s Unpacking libtirpc-dev:armhf (1.3.4+ds-1.3) ... 509s Selecting previously unselected package r-base-dev. 509s Preparing to unpack .../53-r-base-dev_4.4.3-1_all.deb ... 509s Unpacking r-base-dev (4.4.3-1) ... 509s Selecting previously unselected package pkg-r-autopkgtest. 509s Preparing to unpack .../54-pkg-r-autopkgtest_20231212ubuntu1_all.deb ... 509s Unpacking pkg-r-autopkgtest (20231212ubuntu1) ... 509s Setting up linux-libc-dev:armhf (6.14.0-10.10) ... 509s Setting up libpcre2-16-0:armhf (10.45-1) ... 509s Setting up libpcre2-32-0:armhf (10.45-1) ... 509s Setting up libtirpc-dev:armhf (1.3.4+ds-1.3) ... 509s Setting up libpkgconf3:armhf (1.8.1-4) ... 509s Setting up rpcsvc-proto (1.4.2-0ubuntu7) ... 509s Setting up libmpc3:armhf (1.3.1-1build2) ... 509s Setting up icu-devtools (76.1-1ubuntu2) ... 509s Setting up pkgconf-bin (1.8.1-4) ... 509s Setting up liblzma-dev:armhf (5.6.4-1) ... 509s Setting up libubsan1:armhf (15-20250222-0ubuntu1) ... 509s Setting up libpcre2-posix3:armhf (10.45-1) ... 509s Setting up libcrypt-dev:armhf (1:4.4.38-1) ... 509s Setting up libasan8:armhf (15-20250222-0ubuntu1) ... 509s Setting up libgcc-14-dev:armhf (14.2.0-17ubuntu3) ... 509s Setting up libisl23:armhf (0.27-1) ... 509s Setting up libc-dev-bin (2.41-1ubuntu2) ... 509s Setting up libdeflate-dev:armhf (1.23-1) ... 509s Setting up libcc1-0:armhf (15-20250222-0ubuntu1) ... 509s Setting up libblas-dev:armhf (3.12.1-2) ... 509s update-alternatives: using /usr/lib/arm-linux-gnueabihf/blas/libblas.so to provide /usr/lib/arm-linux-gnueabihf/libblas.so (libblas.so-arm-linux-gnueabihf) in auto mode 509s Setting up dctrl-tools (2.24-3build3) ... 509s Setting up cpp-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 509s Setting up libgfortran-14-dev:armhf (14.2.0-17ubuntu3) ... 509s Setting up gcc-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 509s Setting up pkgconf:armhf (1.8.1-4) ... 509s Setting up liblapack-dev:armhf (3.12.1-2) ... 509s update-alternatives: using /usr/lib/arm-linux-gnueabihf/lapack/liblapack.so to provide /usr/lib/arm-linux-gnueabihf/liblapack.so (liblapack.so-arm-linux-gnueabihf) in auto mode 509s Setting up cpp-14 (14.2.0-17ubuntu3) ... 509s Setting up libc6-dev:armhf (2.41-1ubuntu2) ... 509s Setting up libstdc++-14-dev:armhf (14.2.0-17ubuntu3) ... 509s Setting up libicu-dev:armhf (76.1-1ubuntu2) ... 509s Setting up cpp-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 509s Setting up gfortran-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 509s Setting up libbz2-dev:armhf (1.0.8-6) ... 509s Setting up gcc-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 509s Setting up g++-14-arm-linux-gnueabihf (14.2.0-17ubuntu3) ... 509s Setting up libjpeg-turbo8-dev:armhf (2.1.5-3ubuntu2) ... 509s Setting up libncurses-dev:armhf (6.5+20250216-2) ... 509s Setting up libpcre2-dev:armhf (10.45-1) ... 509s Setting up libreadline-dev:armhf (8.2-6) ... 509s Setting up gcc-14 (14.2.0-17ubuntu3) ... 509s Setting up gfortran-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 509s Setting up zlib1g-dev:armhf (1:1.3.dfsg+really1.3.1-1ubuntu1) ... 509s Setting up cpp (4:14.2.0-1ubuntu1) ... 509s Setting up g++-14 (14.2.0-17ubuntu3) ... 509s Setting up libjpeg8-dev:armhf (8c-2ubuntu11) ... 509s Setting up gfortran-14 (14.2.0-17ubuntu3) ... 509s Setting up g++-arm-linux-gnueabihf (4:14.2.0-1ubuntu1) ... 509s Setting up libpng-dev:armhf (1.6.47-1) ... 509s Setting up libjpeg-dev:armhf (8c-2ubuntu11) ... 509s Setting up gcc (4:14.2.0-1ubuntu1) ... 509s Setting up g++ (4:14.2.0-1ubuntu1) ... 509s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 509s Setting up build-essential (12.10ubuntu1) ... 509s Setting up gfortran (4:14.2.0-1ubuntu1) ... 509s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode 509s 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 509s update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode 509s 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 509s Setting up r-base-dev (4.4.3-1) ... 509s Setting up pkg-r-autopkgtest (20231212ubuntu1) ... 509s Processing triggers for libc-bin (2.41-1ubuntu2) ... 509s Processing triggers for man-db (2.13.0-1) ... 511s Processing triggers for install-info (7.1.1-1) ... 518s autopkgtest [16:15:01]: test pkg-r-autopkgtest: /usr/share/dh-r/pkg-r-autopkgtest 518s autopkgtest [16:15:01]: test pkg-r-autopkgtest: [----------------------- 521s Test: Try to load the R library fansi 521s 521s R version 4.4.3 (2025-02-28) -- "Trophy Case" 521s Copyright (C) 2025 The R Foundation for Statistical Computing 521s Platform: arm-unknown-linux-gnueabihf (32-bit) 521s 521s R is free software and comes with ABSOLUTELY NO WARRANTY. 521s You are welcome to redistribute it under certain conditions. 521s Type 'license()' or 'licence()' for distribution details. 521s 521s R is a collaborative project with many contributors. 521s Type 'contributors()' for more information and 521s 'citation()' on how to cite R or R packages in publications. 521s 521s Type 'demo()' for some demos, 'help()' for on-line help, or 521s 'help.start()' for an HTML browser interface to help. 521s Type 'q()' to quit R. 521s 521s > library('fansi') 521s > 521s > 521s Other tests are currently unsupported! 521s They will be progressively added. 521s autopkgtest [16:15:04]: test pkg-r-autopkgtest: -----------------------] 525s autopkgtest [16:15:08]: test pkg-r-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 525s pkg-r-autopkgtest PASS 529s autopkgtest [16:15:12]: @@@@@@@@@@@@@@@@@@@@ summary 529s run-unit-test PASS 529s pkg-r-autopkgtest PASS