aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/qreg-commands.c
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-10-18 14:28:08 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-10-18 14:40:13 +0300
commit8fedd523deb07a33fc6ef786d57fd904ffecc8f5 (patch)
tree07cf57385ffc3f06fb328a2e9b827813773a6fb3 /src/qreg-commands.c
parent70019f624a8d188cf30dcc8b1eb9440a6cffb49c (diff)
downloadsciteco-8fedd523deb07a33fc6ef786d57fd904ffecc8f5.tar.gz
fixed the "Editing local registers in macro calls" check
* The previous check could result in false positives if you are editing a local Q-Register, that will be destroyed at the end of the current macro frame, and call another non-colon modified macro. * It must instead be invalid to keep the register edited only if it belongs to the local Q-Registers that are about to be freed. In other words, the table that the currently edited Q-Register belongs to, must be the one we're about to destroy. * This fixes the solarized.toggle (F5) macro when using the Solarized color scheme.
Diffstat (limited to 'src/qreg-commands.c')
-rw-r--r--src/qreg-commands.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qreg-commands.c b/src/qreg-commands.c
index cff4c84..5b80d15 100644
--- a/src/qreg-commands.c
+++ b/src/qreg-commands.c
@@ -658,8 +658,8 @@ teco_state_macro_got_register(teco_machine_main_t *ctx, teco_qreg_t *qreg,
if (!teco_qreg_execute(qreg, &table, error))
return NULL;
- if (teco_qreg_current && !teco_qreg_current->must_undo) {
- /* currently editing local Q-Register */
+ if (teco_qreg_table_current == &table) {
+ /* currently editing local Q-Register that's about to be freed */
teco_error_editinglocalqreg_set(error, teco_qreg_current->head.name.data,
teco_qreg_current->head.name.len);
return NULL;