From: Kim F. Storm Date: Mon, 15 Aug 2005 14:10:39 +0000 (+0000) Subject: (cua-delete-region): Return t if X-Git-Tag: emacs-pretest-22.0.90~7569 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ecd6106722bb32fe7c25879e9ba45223edba9276;p=emacs.git (cua-delete-region): Return t if deleted region was non-empty. (cua-replace-region): Inhibit overwrite-mode for self-insert-command if replaced region was non-empty. (cua--explicit-region-start, cua--status-string): Make them buffer-local at top-level... (cua-mode): ...rather than when mode is enabled. --- diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index beb30d500d4..0e60e60b4c4 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el @@ -575,6 +575,7 @@ a cons (TYPE . COLOR), then both properties are affected." ;; Current region was started using cua-set-mark. (defvar cua--explicit-region-start nil) +(make-variable-buffer-local 'cua--explicit-region-start) ;; Latest region was started using shifted movement command. (defvar cua--last-region-shifted nil) @@ -585,6 +586,7 @@ a cons (TYPE . COLOR), then both properties are affected." ;; status string for mode line indications (defvar cua--status-string nil) +(make-variable-buffer-local 'cua--status-string) (defvar cua--debug nil) @@ -759,14 +761,19 @@ Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil." (cons (current-buffer) (and (consp buffer-undo-list) (car buffer-undo-list)))) - (cua--deactivate))) + (cua--deactivate) + (/= start end))) (defun cua-replace-region () "Replace the active region with the character you type." (interactive) - (cua-delete-region) - (unless (eq this-original-command this-command) - (cua--fallback))) + (let ((not-empty (cua-delete-region))) + (unless (eq this-original-command this-command) + (let ((overwrite-mode + (and overwrite-mode + not-empty + (not (eq this-original-command 'self-insert-command))))) + (cua--fallback))))) (defun cua-copy-region (arg) "Copy the region to the kill ring. @@ -1359,8 +1366,6 @@ the prefix fallback behavior." :link '(emacs-commentary-link "cua-base.el") (setq mark-even-if-inactive t) (setq highlight-nonselected-windows nil) - (make-variable-buffer-local 'cua--explicit-region-start) - (make-variable-buffer-local 'cua--status-string) (unless cua--keymaps-initalized (cua--init-keymaps)