On 26/08/2025 03:24, Collin Funk wrote:
Bruno Haible via GNU coreutils Bug Reports <bug-coreutils@gnu.org>
writes:
Today's CI run reports
FAIL: tests/fold/fold-nbsp
on NetBSD 10 and Solaris 11.4.
The log output in both cases is:
FAIL: tests/fold/fold-nbsp
==========================
--- exp1 2025-08-24 06:57:52.605590760 +0000
+++ out1 2025-08-24 06:57:52.607333160 +0000
@@ -1,3 +1,3 @@
abcdefghij
-klmnop qrs
-tuvwxyz
+klmnop
+qrstuvwxyz
--- exp2 2025-08-24 06:57:52.613841250 +0000
+++ out2 2025-08-24 06:57:52.615577504 +0000
@@ -1,3 +1,3 @@
abcdefghij
-klmnop qr
-stuvwxyz
+klmnop
+qrstuvwxyz
FAIL tests/fold/fold-nbsp.sh (exit status: 1)
It looks like the character has been treated like a space.
If you need a correction at the Gnulib level (in the functions iswblank,
iswspace, c32isblank, or c32isspace), please report this to bug-gnulib.
Alternatively, you may declare this a "quality of implementation" issue
and simply disable the test on NetBSD and Solaris.
Thanks.
My initial idea was to check if U+2007 FIGURE SPACE and U+00A0 NO-BREAK
SPACE are blank using grep. But apparently Solaris grep does not handle
multibyte characters. Therefore, FIGURE SPACE cannot be checked. :(
Perhaps the techniques from tests/wc/wc-nbsp.sh could be used?
Maybe something like:
check_space() {
char="$1"
# Use -L to determine whether NBSP is printable.
# FreeBSD 11 and OS X treat NBSP as non printable ?
test "$(env printf "=$char=" | wc -L)" = 3 &&
test $(env printf "=$char=" | wc -w) = 2
}
if check_space '\u2007'; then
...
fi
cheers,
Padraig