changeset 50292:24db6dc3fc9e

Rework last change so C-x C-SPC C-SPC does not repeat pop-global-mark by default. (pop-global-mark-quick-repeat): New user option. (set-mark-command): Use it.
author Kim F. Storm <storm@cua.dk>
date Mon, 24 Mar 2003 10:58:17 +0000
parents 4e360b30cf60
children 9c4d944f4104
files lisp/simple.el
diffstat 1 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Mon Mar 24 10:57:09 2003 +0000
+++ b/lisp/simple.el	Mon Mar 24 10:58:17 2003 +0000
@@ -2424,6 +2424,15 @@
   :type 'integer
   :group 'editing-basics)
 
+(defcustom pop-global-mark-quick-repeat nil
+  "*When non-nil, `pop-global-mark' can be repeated without the prefix key.
+E.g. \\[pop-global-mark] \\[set-mark-command] \\[set-mark-command] \
+pops to the third mark off the global mark ring.
+To cycle through the marks in the target buffer, \
+use \\[universal-argument] \\[set-mark-command] \\[set-mark-command]..."
+  :type 'boolean
+  :group 'editing-basics)
+
 (defun pop-to-mark-command ()
   "Jump to mark, and pop a new position for mark off the ring
 \(does not affect global mark ring\)."
@@ -2457,8 +2466,10 @@
 for mark off the local mark ring \(this does not affect the global
 mark ring\).  Use \\[pop-global-mark] to jump to a mark off the global
 mark ring \(see `pop-global-mark'\).
+
 Repeating the \\[set-mark-command] command without the prefix jumps to the next
-position off the local (or global) mark ring.
+position off the local mark ring.  See `pop-global-mark-quick-repeat' if you
+want the same effect for \\[pop-global-mark].
 
 With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument] \
 \\[universal-argument] \\[set-mark-command], unconditionally
@@ -2470,16 +2481,17 @@
   (if (eq transient-mark-mode 'lambda)
       (setq transient-mark-mode nil))
   (cond
+   ((and (consp arg) (> (prefix-numeric-value arg) 4))
+    (push-mark-command nil))
    ((not (eq this-command 'set-mark-command))
     (if arg
 	(pop-to-mark-command)
       (push-mark-command t)))
-   ((and (consp arg) (> (prefix-numeric-value arg) 4))
-    (push-mark-command nil))
    ((eq last-command 'pop-to-mark-command)
     (setq this-command 'pop-to-mark-command)
     (pop-to-mark-command))
-   ((and (eq last-command 'pop-global-mark) (not arg))
+   ((and pop-global-mark-quick-repeat
+	 (eq last-command 'pop-global-mark) (not arg))
     (setq this-command 'pop-global-mark)
     (pop-global-mark))
    (arg