diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2025-02-24 04:04:47 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2025-02-24 04:04:47 +0300 |
commit | 376da1ea68879229d43704ebe70874020d0e8fd6 (patch) | |
tree | 9439709306f26395949c173287220b78697448a4 | |
parent | 00dd53661570996c637d0d4b28188427e04f22bc (diff) | |
download | sciteco-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-- | TODO | 5 | ||||
-rw-r--r-- | src/help.c | 4 | ||||
-rw-r--r-- | tests/testsuite.at | 6 |
3 files changed, 11 insertions, 4 deletions
@@ -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: @@ -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]) |