diff options
author | Kai Großjohann <[email protected]> | 2002-02-17 15:08:31 +0000 |
---|---|---|
committer | Kai Großjohann <[email protected]> | 2002-02-17 15:08:31 +0000 |
commit | be0d25b6863857a290fba53006df20f28e26a2a2 (patch) | |
tree | e062e1fba64f5934b04629e39bb33083993f9455 /lisp/emacs-lisp | |
parent | a9c6d330d55b3c79780146346de165bb96ddfaba (diff) |
* emacs-lisp/lisp.el (mark-defun): Don't leave multiple marks
when repeated.
* textmodes/paragraphs.el (mark-paragraph): Ditto.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/lisp.el | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index a815eddfd7..57e507e4f6 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -259,17 +259,18 @@ The defun marked is the one that contains point or follows point. 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. |