aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Dalziel <tom_dl@hotmail.com>2024-03-24 18:28:02 +0100
committerTom Dalziel <33435574+tomdl89@users.noreply.github.com>2024-03-24 18:31:56 +0100
commit64a07c7aca2933ed1feec80704db49dc2c3476b3 (patch)
tree418c8a75a2a10a7fcf8dc02d2dd88b1041634e36
parenta7ffa73bbdc523c0e473d79c0ded7c6457bcb65c (diff)
Handle args-out-of-range error in evil-repeat-start
Fixes #1110
-rw-r--r--evil-repeat.el2
-rw-r--r--evil-tests.el14
2 files changed, 13 insertions, 3 deletions
diff --git a/evil-repeat.el b/evil-repeat.el
index df00d8f..f840fb1 100644
--- a/evil-repeat.el
+++ b/evil-repeat.el
@@ -141,7 +141,7 @@
(when (evil-visual-state-p)
(let* ((range (evil-visual-range))
(beg (evil-range-beginning range))
- (end (1- (evil-range-end range)))
+ (end (max 1 (1- (evil-range-end range))))
(nfwdlines (evil-count-lines beg end)))
(evil-repeat-record
(cond
diff --git a/evil-tests.el b/evil-tests.el
index 8dfaf1d..8004633 100644
--- a/evil-tests.el
+++ b/evil-tests.el
@@ -1310,7 +1310,12 @@ evil\nrulz\nevil\nrulz\nevil\nrulz\nevil\nrulz\nevil\nrul[z]
("10IABC" [escape])
"ABCABCABCABCABCABCABCABCABCAB[C];; This buffer is for notes"
("11.")
- "ABCABCABCABCABCABCABCABCABCABCAB[C]ABCABCABCABCABCABCABCABCABCABC;; This buffer is for notes")))
+ "ABCABCABCABCABCABCABCABCABCABCAB[C]ABCABCABCABCABCABCABCABCABCABC;; This buffer is for notes"))
+ (ert-info ("Repeat insert over empty lines")
+ (evil-test-buffer
+ ""
+ ("i" [return] [return] [return] [return] [return] [return] [escape] "gg\C-vGIX" [escape])
+ "X\nX\nX\nX\nX\nX\n")))
(ert-deftest evil-test-insert-line-vcount ()
"Test `evil-insert-line' with vertical repeating"
@@ -1370,7 +1375,12 @@ ABCABC{
("10AABC" [escape])
";; This buffer is for notes.ABCABCABCABCABCABCABCABCABCAB[C]"
("11.")
- ";; This buffer is for notes.ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCAB[C]")))
+ ";; This buffer is for notes.ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCAB[C]"))
+ (ert-info ("Repeat append over empty lines")
+ (evil-test-buffer
+ ""
+ ("i" [return] [return] [return] [return] [return] [return] [escape] "gg\C-vGAX" [escape])
+ "X\nX\nX\nX\nX\nX\n")))
(ert-deftest evil-test-append-line-vcount ()
"Test `evil-append-line' with vertical repeating"