diff --git a/features/multiple-cursors-core.feature b/features/multiple-cursors-core.feature index cd308cd..0a6e8b9 100644 --- a/features/multiple-cursors-core.feature +++ b/features/multiple-cursors-core.feature @@ -166,9 +166,23 @@ Feature: Multiple cursors core And I press "C-v" Then the cursor should be at point "8" + Scenario: Looping forwards around cursors including one at point-max + Given I have cursors at "_" in "1_34_67_" + And I press "C-f" + And I press "C-v" + And I press "C-v" + And I press "C-v" + Then the cursor should be at point "3" + Scenario: Looping backwards around cursors Given I have cursors at "_" in "1_34567_9" And I press "M-v" And I press "M-v" Then the cursor should be at point "2" + Scenario: Looping backwards around cursors including one at point-min + Given I have cursors at "_" in "_234_67_9" + And I press "M-v" + And I press "M-v" + And I press "M-v" + Then the cursor should be at point "1" diff --git a/mc-cycle-cursors.el b/mc-cycle-cursors.el index 4c93dc7..bb86aaa 100644 --- a/mc-cycle-cursors.el +++ b/mc-cycle-cursors.el @@ -32,7 +32,7 @@ (defun mc/next-fake-cursor-after-point () (let ((pos (point)) - (next-pos (point-max)) + (next-pos (1+ (point-max))) next) (mc/for-each-fake-cursor (let ((cursor-pos (overlay-get cursor 'point))) @@ -44,7 +44,7 @@ (defun mc/prev-fake-cursor-before-point () (let ((pos (point)) - (prev-pos (point-min)) + (prev-pos (1- (point-min))) prev) (mc/for-each-fake-cursor (let ((cursor-pos (overlay-get cursor 'point)))