Mercurial > emacs
diff lisp/emacs-lisp/lisp.el @ 90066:fb79180b618d
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-78
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-719
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-732
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-733
Update from CVS: man/calc.texi: Fix some TeX definitions.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-734
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-75
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-76
- miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-77
Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 14 Dec 2004 07:34:55 +0000 |
parents | ff0e824afa37 2ee970dcd072 |
children | eac554634bfa |
line wrap: on
line diff
--- a/lisp/emacs-lisp/lisp.el Sat Dec 11 02:29:07 2004 +0000 +++ b/lisp/emacs-lisp/lisp.el Tue Dec 14 07:34:55 2004 +0000 @@ -73,17 +73,18 @@ "Set mark ARG sexps from point. The place mark goes is the same place \\[forward-sexp] would move to with the same argument. -If this command is repeated, it marks the next ARG sexps after the ones -already marked." +If this command is repeated or mark is active in Transient Mark mode, +it marks the next ARG sexps after the ones already marked." (interactive "P") - (cond ((and (eq last-command this-command) (mark t)) + (cond ((or (and (eq last-command this-command) (mark t)) + (and transient-mark-mode mark-active)) (setq arg (if arg (prefix-numeric-value arg) - (if (> (mark) (point)) 1 -1))) + (if (< (mark) (point)) -1 1))) (set-mark (save-excursion - (goto-char (mark)) - (forward-sexp arg) - (point)))) + (goto-char (mark)) + (forward-sexp arg) + (point)))) (t (push-mark (save-excursion @@ -191,9 +192,11 @@ If variable `beginning-of-defun-function' is non-nil, its value is called as a function to find the defun's beginning." (interactive "p") - (and (eq this-command 'beginning-of-defun) - (or inhibit-mark-movement (eq last-command 'beginning-of-defun) - (push-mark))) + (or inhibit-mark-movement + (not (eq this-command 'beginning-of-defun)) + (eq last-command 'beginning-of-defun) + (and transient-mark-mode mark-active) + (push-mark)) (and (beginning-of-defun-raw arg) (progn (beginning-of-line) t))) @@ -242,9 +245,11 @@ If variable `end-of-defun-function' is non-nil, its value is called as a function to find the defun's end." (interactive "p") - (and (eq this-command 'end-of-defun) - (or inhibit-mark-movement (eq last-command 'end-of-defun) - (push-mark))) + (or inhibit-mark-movement + (not (eq this-command 'end-of-defun)) + (eq last-command 'end-of-defun) + (and transient-mark-mode mark-active) + (push-mark)) (if (or (null arg) (= arg 0)) (setq arg 1)) (if end-of-defun-function (if (> arg 0) @@ -289,10 +294,11 @@ (defun mark-defun () "Put mark at end of this defun, point at beginning. 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." +If this command is repeated or mark is active in Transient Mark mode, +it marks more defuns after the ones already marked." (interactive) - (cond ((and (eq last-command this-command) (mark t)) + (cond ((or (and (eq last-command this-command) (mark t)) + (and transient-mark-mode mark-active)) (set-mark (save-excursion (goto-char (mark))