aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2025-02-24 04:04:47 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2025-02-24 04:04:47 +0300
commit376da1ea68879229d43704ebe70874020d0e8fd6 (patch)
tree9439709306f26395949c173287220b78697448a4
parent00dd53661570996c637d0d4b28188427e04f22bc (diff)
downloadsciteco-376da1ea68879229d43704ebe70874020d0e8fd6.tar.gz
fixed rubbing out `?` (help) after editing a Q-Register
* Test case: @EQa// @?/EX/ -- Rubout should return you to the Q-Register view. * The test suite has been extended. Unfortunately we cannot currently directly check whether we're editing a Q-Register. But we add a magic number of characters to the Q-Register, that we can check afterwards.
-rw-r--r--TODO5
-rw-r--r--src/help.c4
-rw-r--r--tests/testsuite.at6
3 files changed, 11 insertions, 4 deletions
diff --git a/TODO b/TODO
index a47a7f4..cbe1714 100644
--- a/TODO
+++ b/TODO
@@ -4,8 +4,9 @@ Tasks:
"edit" hook.
Known Bugs:
- * ?^E$ does not scroll automatically
- * Rubout EQ{$ ?^E$ -- Q-reg view is not restored
+ * ?^E$ does not scroll automatically on GTK.
+ This is apparently since the buffer is newly added to the ring
+ and the view is not yet realized.
* PDCurses/WinGUI: There is still some flickering, but it got better
since key macros update the command line only once.
Could already be fixed upstream, see:
diff --git a/src/help.c b/src/help.c
index a093032..07acb86 100644
--- a/src/help.c
+++ b/src/help.c
@@ -289,13 +289,13 @@ teco_state_help_done(teco_machine_main_t *ctx, const teco_string_t *str, GError
return NULL;
}
- teco_ring_undo_edit();
/*
* ED hooks with the default lexer framework
* will usually load the styling SciTECO script
* when editing the buffer for the first time.
*/
- if (!teco_ring_edit(topic->filename, error))
+ if (!teco_current_doc_undo_edit(error) ||
+ !teco_ring_edit(topic->filename, error))
return NULL;
/*
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 3f0b7e5..eb71689 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -301,6 +301,12 @@ AT_CHECK([$SCITECO_CMDLINE "@^Um{:@S/XXX/} :Mm\"S(0/0)' Mm\"S(0/0)'"], 0, ignore
AT_FAIL_IF([$GREP "^Error:" stderr])
AT_CLEANUP
+AT_SETUP([Rub out help command])
+# Should restore the Q-Register view. But we cannot test this directly.
+AT_CHECK([$SCITECO_CMDLINE "@EQa// 23<@I/x/> @?/EX/{-6D} Z-23\"N(0/0)'"], 0, ignore, stderr)
+AT_FAIL_IF([$GREP "^Error:" stderr])
+AT_CLEANUP
+
AT_BANNER([Known Bugs])
AT_SETUP([Number stack])