[BRLTTY] Tcl 8.6.15 and newer uses colon as the separator in the TCL_PACKAGE_PATH

Dave Mielke Dave at mielke.cc
Mon Dec 9 21:42:52 UTC 2024


[quoted lines by Jaroslav Škarvada on 2024/12/09 at 18:21 +0100]

>the change was introduced by [1], bug report [2]. As a result the
>brltty m4 Tcl binding macro needs to be changed. Attached is the patch
>we used in Fedora, but it's bash specific and doesn't handle paths
>with embedded spaces which are now supported

Please verify that the (updated) patch attached to this message works. It should now support blanks within a directory's path if the (newer) colon paradigm is being used.

-- 
I believe the Bible to be the very Word of God: http://Mielke.cc/bible/
Dave Mielke            | 2213 Fox Crescent | WebHome: http://Mielke.cc/
EMail: Dave at Mielke.cc  | Ottawa, Ontario   | Twitter: @Dave_Mielke
Phone: +1 613 726 0014 | Canada  K2A 1H7   |

http://mielke.cc/xmother.html (Letter from a Feminist ex-Mother)
-------------- next part --------------
diff --git a/Bindings/Tcl/bindings.m4 b/Bindings/Tcl/bindings.m4
index edb59a72e..e5563c483 100644
--- a/Bindings/Tcl/bindings.m4
+++ b/Bindings/Tcl/bindings.m4
@@ -51,8 +51,20 @@ fi
 
 ${TCL_OK} && {
    test -n "${TCL_PACKAGE_PATH}" && {
-      for directory in ${TCL_PACKAGE_PATH}
+      directories="${TCL_PACKAGE_PATH}"
+
+      test "${directories#*:}" = "${directories}" && {
+         # There's no colon so it's an old-style (pre tcl-) path.
+         # Replace each sequence of one or more spaces with a single colon.
+         directories="${directories// /:}"
+      }
+
+      while test "${#directories}" -gt 0
       do
+         directory="${directories%%:*}"
+         directories="${directories#*:}"
+         test "${#directory}" -eq 0 && continue
+
          test `expr "${directory}" : '.*/lib'` -eq 0 || {
             TCL_DIR="${directory}"
             break


More information about the BRLTTY mailing list