From 21028c4fb0ccb5ab2e13e302ef8cfae719fefbd4 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 8 May 2026 09:32:44 +0000 Subject: [PATCH] =?UTF-8?q?tcl:=20rename=20tcl-vwait-lookup=20=E2=86=92=20?= =?UTF-8?q?tcl-var-lookup-or-nil;=20use=20in=20info=20exists?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generalized helper for var-lookup-with-:: so info exists also works on ::-prefixed names. Co-Authored-By: Claude Sonnet 4.6 --- lib/tcl/runtime.sx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/tcl/runtime.sx b/lib/tcl/runtime.sx index b1665224..666e92d7 100644 --- a/lib/tcl/runtime.sx +++ b/lib/tcl/runtime.sx @@ -3096,7 +3096,7 @@ (let ((varname (first rest-args))) (let - ((val (frame-lookup (get interp :frame) varname))) + ((val (tcl-var-lookup-or-nil interp varname))) (assoc interp :result (if (nil? val) "0" "1"))))) ((equal? sub "hostname") (assoc interp :result "localhost")) ((equal? sub "script") (assoc interp :result "")) @@ -3547,7 +3547,7 @@ ; Look up a Tcl var by name, returning nil instead of erroring if missing. ; Handles `::var` global-prefix routing the same way tcl-var-get does. (define - tcl-vwait-lookup + tcl-var-lookup-or-nil (fn (interp name) (if @@ -3570,7 +3570,7 @@ (let ((name (first args))) (let - ((initial (tcl-vwait-lookup interp name))) + ((initial (tcl-var-lookup-or-nil interp name))) (assoc (tcl-vwait-loop interp name initial) :result "")))))) (define @@ -3578,7 +3578,7 @@ (fn (interp name initial) (let - ((cur (tcl-vwait-lookup interp name))) + ((cur (tcl-var-lookup-or-nil interp name))) (if (and (not (nil? cur)) (not (equal? cur initial))) interp