Klammertext runs natively on Windows; a Windows source-install guide; the bundled sh for @eval :shell

Assembled from klammertext-dev f344a37d0f6e. The commands, the library,
the Standard Klammer Set, the reflection klammerset and the Python
binding build and run natively on Windows (MSYS2 UCRT64 gcc, python.org
Python), and both test tiers pass there. doc/install/windows_source_install.md
is the fifth install guide: a source install parallel to the Linux and
macOS ones, verified by following it on a pristine Windows 11.

Behaviour on every system: paths Klammertext prints use forward slashes;
output is LF; the command line is UTF-8 on Windows; @eval :shell is a
POSIX shell command everywhere -- on Windows it runs the sh Klammertext
ships, BusyBox for Windows (win/busybox/, GPLv2, with its licence and the
source pointer). KLAMMERTEXT_FONTS and KLAMMERTEXT_KLAMMERSETS are lists in
the system's PATH convention (';' on Windows). On Linux and macOS nothing
observable changes.
This commit is contained in:
ack committed 2026-09-25 00:32:55 +02:00
1 parent f9af1ff869
commit fe475e774a
55 files changed
+1182 -153

No files matched your search

+8 -1
View File
@@ -59,7 +59,7 @@ fi
# string subscript then evaluates to 0, so all five fixtures overwrote one
# slot and the whole suite compared the wrong report against the wrong test.
# Files have no such floor and read the same on both systems.
REPORTS=$(mktemp -d /tmp/coverage_reports.XXXXXX)
REPORTS=$(mktemp -d "${TMPDIR:-/tmp}"/coverage_reports.XXXXXX)
trap 'rm -rf "$REPORTS"' EXIT
for f in basic undecidable cycle split clean; do
@@ -296,6 +296,12 @@ echo "-- the file column survives a symlinked KLAMMERTEXT_HOME --"
link=$(mktemp -u)/kt_home_link
mkdir -p "$(dirname "$link")"
ln -s "$K" "$link"
if [ ! -L "$link" ]; then
# MSYS2 on Windows makes ln -s a COPY unless winsymlinks is configured;
# a copy has no second spelling to test, so the case does not apply.
echo "SKIP 58. a symlinked KLAMMERTEXT_HOME still shortens the path (ln -s made a copy, not a link)"
rm -rf "$link"
else
out=$(KLAMMERTEXT_HOME="$link" "$link/bin/kdesc" --klammersets none \
-i "$link/tst/coverage/basic.k" --coverage all 2>&1 \
| grep -E '^ +@ab ')
@@ -308,6 +314,7 @@ case "$out" in
echo " got: [$out]"
FAIL=$((FAIL+1));;
esac
fi
echo
echo "====================="