Commit ad03cafc authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(delete-selection-mode): Use define-minor-mode.

parent 42664031
......@@ -56,7 +56,7 @@
(defalias 'pending-delete-mode 'delete-selection-mode)
;;;###autoload
(defun delete-selection-mode (&optional arg)
(define-minor-mode delete-selection-mode
"Toggle Delete Selection mode.
With prefix ARG, turn Delete Selection mode on if and only if ARG is
positive.
......@@ -65,28 +65,12 @@ When Delete Selection mode is enabled, Transient Mark mode is also
enabled and typed text replaces the selection if the selection is
active. Otherwise, typed text is just inserted at point regardless of
any selection."
(interactive "P")
(setq delete-selection-mode (if arg
(> (prefix-numeric-value arg) 0)
(not delete-selection-mode)))
nil nil nil :global t :group 'editing-basics
(if (not delete-selection-mode)
(remove-hook 'pre-command-hook 'delete-selection-pre-hook)
(add-hook 'pre-command-hook 'delete-selection-pre-hook)
(transient-mark-mode t)))
;;;###autoload
(defcustom delete-selection-mode nil
"Toggle Delete Selection mode.
See command `delete-selection-mode'.
Setting this variable directly does not take effect;
use either \\[customize] or the function `delete-selection-mode'."
:set (lambda (symbol value)
(delete-selection-mode (or value 0)))
:initialize 'custom-initialize-default
:type 'boolean
:group 'editing-basics
:require 'delsel)
(defun delete-active-region (&optional killp)
(if killp
(kill-region (point) (mark))
......@@ -160,10 +144,4 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(provide 'delsel)
;; This is the standard way to put the mode into effect
;; if delete-selection-mode has already been set to t
;; when this file is loaded.
(when delete-selection-mode
(delete-selection-mode t))
;;; delsel.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment