Support commands with multiple read-chars

This change fixes commands that read-chars multiple times. Previously, two
stage commands like embrace-change would read the same char twice immediately
and avy-goto-char-timer would never stop reading input as a cached value was
always provided during the timer. Instead, the read-char prompt is included in
the cache key so that multiple different calls are cached separately and
accessible by the fake cursors.
This commit is contained in:
Andrew Scott
2023-07-27 12:37:50 +01:00
parent 6956e8e12e
commit 25b98b940c
3 changed files with 30 additions and 24 deletions

View File

@@ -130,6 +130,11 @@
(defun mc-test-temp-command-2 () (interactive) (insert ins))
(global-set-key (kbd "C-!") 'mc-test-temp-command-2))))
(Given "^I have bound C-! to a new command that inserts two read-chars$"
(lambda ()
(defun mc-test-temp-command-3 () (interactive) (insert (read-char "first: ")) (insert (read-char "second: ")))
(global-set-key (kbd "C-!") 'mc-test-temp-command-3)))
(Given "^I have bound C-! to a keyboard macro that insert \"_\"$"
(lambda ()
(fset 'mc-test-temp-kmacro "\C-q_")