From 1cfe37610253c20a4fcb0d937c29e70894ecc4f5 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Fri, 22 Nov 2024 16:59:07 +0300 Subject: the search mode and current radix are mapped to __local__ Q-Registers ^X and ^R now (refs #17) * This way the search mode and radix are local to the current macro frame, unless the macro was invoked with :Mq. If colon-modified, you can reproduce the same effect by calling [.^X 0^X ... ].^X * The radix register is cached in the Q-Reg table as an optimization. This could be done with the other "special" registers as well, but at the cost of larger stack frames. * In order to allow constructs like [.^X typed with upcarets, the Q-Register specification syntax has been extended: ^c is the corresponding control code instead of the register "^". --- tests/testsuite.at | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests') diff --git a/tests/testsuite.at b/tests/testsuite.at index e7d50da..22f14e2 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -75,6 +75,7 @@ AT_CLEANUP AT_SETUP([Q-Register definitions]) AT_CHECK([$SCITECO -e '0Ua'], 0, ignore, ignore) AT_CHECK([$SCITECO -e '0U.a'], 0, ignore, ignore) +AT_CHECK([$SCITECO -e '0U.^X'], 0, ignore, ignore) AT_CHECK([$SCITECO -e '0U#ab'], 0, ignore, ignore) AT_CHECK([$SCITECO -e '0U.#ab'], 0, ignore, ignore) AT_CHECK([$SCITECO -e '0U[[AB]]'], 0, ignore, ignore) @@ -97,6 +98,8 @@ AT_SETUP([Searches]) AT_CHECK([$SCITECO -e "@I/^Q\05/ J @:S/^Q^Q^Q\05/\"F(0/0)'"], 0, ignore, ignore) # Canse-sensitive search AT_CHECK([$SCITECO -e "@I/XXX/J -^X @:S/xxx/\"S(0/0)'"], 0, ignore, ignore) +# Search mode should be local to the macro frame. +AT_CHECK([$SCITECO -e "-^X @^Um{^X} Mm-0\"N(0/0)'"], 0, ignore, ignore) AT_CLEANUP AT_SETUP([Editing local registers in macro calls]) -- cgit v1.2.3