]> code.delx.au - gnu-emacs/blobdiff - lisp/delsel.el
* lisp/progmodes/compile.el (compilation-always-kill): New var.
[gnu-emacs] / lisp / delsel.el
index 82a8eba3504230348178c608f490610db3381685..a6435672201866ac4e6467adcbccfa0642508dea 100644 (file)
@@ -1,7 +1,6 @@
 ;;; delsel.el --- delete selection if you insert
 
-;; Copyright (C) 1992, 1997, 1998, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1997-1998, 2001-2012 Free Software Foundation, Inc.
 
 ;; Author: Matthieu Devin <devin@lucid.com>
 ;; Maintainer: FSF
@@ -57,8 +56,9 @@
 ;;;###autoload
 (define-minor-mode delete-selection-mode
   "Toggle Delete Selection mode.
-With prefix ARG, turn Delete Selection mode on if ARG is
-positive, off if ARG is not positive.
+With a prefix argument ARG, enable Delete Selection mode if ARG
+is positive, and disable it otherwise.  If called from Lisp,
+enable the mode if ARG is omitted or nil.
 
 When Delete Selection mode is enabled, Transient Mark mode is also
 enabled and typed text replaces the selection if the selection is
@@ -89,7 +89,8 @@ any selection."
                 ;; head of the kill-ring that really comes from the
                 ;; currently active region we are going to delete.
                 ;; That would make yank a no-op.
-                (when (and (string= (buffer-substring-no-properties (point) (mark))
+                (when (and (string= (buffer-substring-no-properties
+                                      (point) (mark))
                                     (car kill-ring))
                            (fboundp 'mouse-region-match)
                            (mouse-region-match))
@@ -102,16 +103,15 @@ any selection."
                     (setq this-command 'ignore))))
                (type
                 (delete-active-region)
-                (if (and overwrite-mode (eq this-command 'self-insert-command))
+                (if (and overwrite-mode
+                          (eq this-command 'self-insert-command))
                   (let ((overwrite-mode nil))
-                    (self-insert-command (prefix-numeric-value current-prefix-arg))
+                    (self-insert-command
+                      (prefix-numeric-value current-prefix-arg))
                     (setq this-command 'ignore)))))
-       (file-supersession
         ;; If ask-user-about-supersession-threat signals an error,
         ;; stop safe_run_hooks from clearing out pre-command-hook.
-        (and (eq inhibit-quit 'pre-command-hook)
-             (setq inhibit-quit 'delete-selection-dummy))
-        (signal 'file-supersession (cdr data)))
+       (file-supersession (message "%s" (cadr data)) (ding))
        (text-read-only
         ;; This signal may come either from `delete-active-region' or
         ;; `self-insert-command' (when `overwrite-mode' is non-nil).
@@ -144,7 +144,7 @@ any selection."
 (put 'newline 'delete-selection t)
 (put 'open-line 'delete-selection 'kill)
 
-;; This is very useful for cancelling a selection in the minibuffer without
+;; This is very useful for canceling a selection in the minibuffer without
 ;; aborting the minibuffer.
 (defun minibuffer-keyboard-quit ()
   "Abort recursive edit.
@@ -177,5 +177,4 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
 
 (provide 'delsel)
 
-;; arch-tag: 1e388890-1b50-4ed0-9347-763b1343b6ed
 ;;; delsel.el ends here