diff lisp/emacs-lisp/lisp.el @ 43384:cc3ba2d0d471

* emacs-lisp/lisp.el (mark-defun): Don't leave multiple marks when repeated. * textmodes/paragraphs.el (mark-paragraph): Ditto.
author Kai Großjohann <kgrossjo@eu.uu.net>
date Sun, 17 Feb 2002 15:07:35 +0000
parents 898b4b31410f
children d9a861a5b9d6
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp.el	Sun Feb 17 12:15:17 2002 +0000
+++ b/lisp/emacs-lisp/lisp.el	Sun Feb 17 15:07:35 2002 +0000
@@ -259,17 +259,18 @@
 If this command is repeated, marks more defuns after the ones
 already marked."
   (interactive)
-  (let (here)
-    (when (and (eq last-command this-command) (mark t))
-      (setq here (point))
-      (goto-char (mark)))
-    (push-mark (point))
-    (end-of-defun)
-    (push-mark (point) nil t)
-    (if here
-	(goto-char here)
-      (beginning-of-defun)
-      (re-search-backward "^\n" (- (point) 1) t))))
+  (cond ((and (eq last-command this-command) (mark t))
+	 (set-mark
+	  (save-excursion
+	    (goto-char (mark))
+	    (end-of-defun)
+	    (point))))
+	(t
+	 (push-mark (point))
+	 (end-of-defun)
+	 (push-mark (point) nil t)
+	 (beginning-of-defun)
+	 (re-search-backward "^\n" (- (point) 1) t))))
 
 (defun narrow-to-defun (&optional arg)
   "Make text outside current defun invisible.