Mercurial > emacs
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.