From be0d25b6863857a290fba53006df20f28e26a2a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kai=20Gro=C3=9Fjohann?= Date: Sun, 17 Feb 2002 15:08:31 +0000 Subject: [PATCH] * emacs-lisp/lisp.el (mark-defun): Don't leave multiple marks when repeated. * textmodes/paragraphs.el (mark-paragraph): Ditto. --- lisp/ChangeLog | 6 ++++++ lisp/emacs-lisp/lisp.el | 23 ++++++++++++----------- lisp/textmodes/paragraphs.el | 25 +++++++++++++------------ 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 47307871181..0dd8ee7c470 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2002-02-17 Kai Gro,A_(Bjohann + + * emacs-lisp/lisp.el (mark-defun): Don't leave multiple marks + when repeated. + * textmodes/paragraphs.el (mark-paragraph): Ditto. + 2002-02-17 Per Abrahamsen * menu-bar.el (menu-bar-showhide-menu): Added speedbar. diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index a815eddfd78..57e507e4f67 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. diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el index 91d9b1699f9..bc4cac2a088 100644 --- a/lisp/textmodes/paragraphs.el +++ b/lisp/textmodes/paragraphs.el @@ -330,18 +330,19 @@ at beginning of this or a previous paragraph. If this command is repeated, it marks the next ARG paragraphs after (or before, if arg is negative) the ones already marked." (interactive "p") - (let (here) - (unless arg (setq arg 1)) - (when (zerop arg) - (error "Cannot mark zero paragraphs")) - (when (and (eq last-command this-command) (mark t)) - (setq here (point)) - (goto-char (mark))) - (forward-paragraph arg) - (push-mark nil t t) - (if here - (goto-char here) - (backward-paragraph arg)))) + (unless arg (setq arg 1)) + (when (zerop arg) + (error "Cannot mark zero paragraphs")) + (cond ((and (eq last-command this-command) (mark t)) + (set-mark + (save-excursion + (goto-char (mark)) + (forward-paragraph arg) + (point)))) + (t + (forward-paragraph arg) + (push-mark nil t t) + (backward-paragraph arg)))) (defun kill-paragraph (arg) "Kill forward to end of paragraph. -- 2.39.2