branch: elpa/multiple-cursors
commit 038c9a7f03116f016a129981cdaa4094d89bedd8
Author: Marco Baringer <[email protected]>
Commit: Marco Baringer <[email protected]>
Added stop as a possible value for mc/cycle-looping-behaviour.
Simply disables looping (no warning either).
---
mc-cycle-cursors.el | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/mc-cycle-cursors.el b/mc-cycle-cursors.el
index 9dea266..3fe44bd 100644
--- a/mc-cycle-cursors.el
+++ b/mc-cycle-cursors.el
@@ -58,13 +58,15 @@
"What to do if asked to cycle beyond the last cursor or before the first
cursor."
:type '(radio (const :tag "Loop around to beginning/end of document."
continue)
(const :tag "Warn and then loop around." warn)
- (const :tag "Signal an error." error)))
+ (const :tag "Signal an error." error)
+ (const :tag "Don't loop." stop)))
(defun mc/handle-loop-condition (error-message)
(ecase mc/cycle-looping-behaviour
(error (error error-message))
(warn (message error-message))
- (continue nil)))
+ (continue 'continue)
+ (stop 'stop)))
(defun mc/first-cursor-after (point)
"Very similar to mc/furthest-cursor-before-point, but ignores (mark) and
(point)."
@@ -84,9 +86,10 @@
(cursors-in-order (sort* cursors-before-point '> :key
'mc/cursor-end)))
(first cursors-in-order)))
-(defun mc/cycle (next-cursor fallback-cursor loop-message)
+(defun* mc/cycle (next-cursor fallback-cursor loop-message)
(when (null next-cursor)
- (mc/handle-loop-condition loop-message)
+ (when (eql 'stop (mc/handle-loop-condition loop-message))
+ (return-from mc/cycle nil))
(setf next-cursor fallback-cursor))
(mc/create-fake-cursor-at-point)
(mc/pop-state-from-overlay next-cursor)