;;; cus-edit.el --- tools for customizing Emacs and Lisp packages
;;
-;; Copyright (C) 1996-1997, 1999-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 1999-2013 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
:group 'editing)
(defgroup mode-line nil
- "Content of the modeline."
+ "Contents of the mode line."
:group 'environment)
(defgroup editing-basics nil
(define-key map [remap self-insert-command] 'Custom-no-edit)
(define-key map "\^m" 'Custom-newline)
(define-key map " " 'scroll-up-command)
+ (define-key map [?\S-\ ] 'scroll-down-command)
(define-key map "\177" 'scroll-down-command)
(define-key map "\C-c\C-c" 'Custom-set)
(define-key map "\C-x\C-s" 'Custom-save)
:type 'boolean)
(defcustom custom-unlispify-remove-prefixes nil
- "Non-nil means remove group prefixes from option names in buffer."
+ "Non-nil means remove group prefixes from option names in buffer.
+Discarding prefixes often leads to confusing names for options
+and faces in Customize buffers, so do not set this to a non-nil
+value unless you are sure you know what it does."
:group 'custom-menu
:group 'custom-buffer
:type 'boolean)
(unless (eq symbol basevar)
(message "`%s' is an alias for `%s'" symbol basevar))))
-(defvar customize-changed-options-previous-release "23.1"
+(defvar customize-changed-options-previous-release "24.1"
"Version for `customize-changed-options' to refer back to by default.")
;; Packages will update this variable, so make it available.
This button will have a menu with all three reset operations."
:type 'boolean
:group 'custom-buffer
- :version "24.2")
+ :version "24.3")
(defcustom custom-buffer-verbose-help t
"If non-nil, include explanatory text in the customization buffer."
:group 'custom-buffer)
(defface custom-invalid '((((class color))
- (:foreground "yellow1" :background "red1"))
- (t
- (:weight bold :slant italic :underline t)))
+ :foreground "yellow1" :background "red1")
+ (t :weight bold :slant italic :underline t))
"Face used when the customize item is invalid."
:group 'custom-magic-faces)
-(define-obsolete-face-alias 'custom-invalid-face 'custom-invalid "22.1")
(defface custom-rogue '((((class color))
- (:foreground "pink" :background "black"))
- (t
- (:underline t)))
+ :foreground "pink" :background "black")
+ (t :underline t))
"Face used when the customize item is not defined for customization."
:group 'custom-magic-faces)
-(define-obsolete-face-alias 'custom-rogue-face 'custom-rogue "22.1")
(defface custom-modified '((((min-colors 88) (class color))
- (:foreground "white" :background "blue1"))
+ :foreground "white" :background "blue1")
(((class color))
- (:foreground "white" :background "blue"))
- (t
- (:slant italic :bold)))
+ :foreground "white" :background "blue")
+ (t :slant italic))
"Face used when the customize item has been modified."
:group 'custom-magic-faces)
-(define-obsolete-face-alias 'custom-modified-face 'custom-modified "22.1")
(defface custom-set '((((min-colors 88) (class color))
- (:foreground "blue1" :background "white"))
+ :foreground "blue1" :background "white")
(((class color))
- (:foreground "blue" :background "white"))
- (t
- (:slant italic)))
+ :foreground "blue" :background "white")
+ (t :slant italic))
"Face used when the customize item has been set."
:group 'custom-magic-faces)
-(define-obsolete-face-alias 'custom-set-face 'custom-set "22.1")
(defface custom-changed '((((min-colors 88) (class color))
- (:foreground "white" :background "blue1"))
+ :foreground "white" :background "blue1")
(((class color))
- (:foreground "white" :background "blue"))
- (t
- (:slant italic)))
+ :foreground "white" :background "blue")
+ (t :slant italic))
"Face used when the customize item has been changed."
:group 'custom-magic-faces)
-(define-obsolete-face-alias 'custom-changed-face 'custom-changed "22.1")
(defface custom-themed '((((min-colors 88) (class color))
- (:foreground "white" :background "blue1"))
- (((class color))
- (:foreground "white" :background "blue"))
- (t
- (:slant italic)))
+ :foreground "white" :background "blue1")
+ (((class color))
+ :foreground "white" :background "blue")
+ (t :slant italic))
"Face used when the customize item has been set by a theme."
:group 'custom-magic-faces)
-(defface custom-saved '((t (:underline t)))
+(defface custom-saved '((t :underline t))
"Face used when the customize item has been saved."
:group 'custom-magic-faces)
-(define-obsolete-face-alias 'custom-saved-face 'custom-saved "22.1")
(defconst custom-magic-alist
'((nil "#" underline "\
;;; The `custom' Widget.
(defface custom-button
- '((((type x w32 ns) (class color)) ; Like default modeline
- (:box (:line-width 2 :style released-button)
- :background "lightgrey" :foreground "black"))
- (t
- nil))
+ '((((type x w32 ns) (class color)) ; Like default mode line
+ :box (:line-width 2 :style released-button)
+ :background "lightgrey" :foreground "black"))
"Face for custom buffer buttons if `custom-raised-buttons' is non-nil."
:version "21.1"
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-button-face 'custom-button "22.1")
(defface custom-button-mouse
'((((type x w32 ns) (class color))
- (:box (:line-width 2 :style released-button)
- :background "grey90" :foreground "black"))
+ :box (:line-width 2 :style released-button)
+ :background "grey90" :foreground "black")
(t
;; This is for text terminals that support mouse, like GPM mouse
;; or the MS-DOS terminal: inverse-video makes the button stand
;; out on mouse-over.
- (:inverse-video t)))
+ :inverse-video t))
"Mouse face for custom buffer buttons if `custom-raised-buttons' is non-nil."
:version "22.1"
:group 'custom-faces)
(defface custom-button-pressed
'((((type x w32 ns) (class color))
- (:box (:line-width 2 :style pressed-button)
- :background "lightgrey" :foreground "black"))
- (t
- (:inverse-video t)))
+ :box (:line-width 2 :style pressed-button)
+ :background "lightgrey" :foreground "black")
+ (t :inverse-video t))
"Face for pressed custom buttons if `custom-raised-buttons' is non-nil."
:version "21.1"
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-button-pressed-face
- 'custom-button-pressed "22.1")
(defface custom-button-pressed-unraised
'((default :inherit custom-button-unraised)
(defface custom-documentation '((t nil))
"Face used for documentation strings in customization buffers."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-documentation-face
- 'custom-documentation "22.1")
-
-(defface custom-state '((((class color)
- (background dark))
- (:foreground "lime green"))
- (((class color)
- (background light))
- (:foreground "dark green"))
- (t nil))
+
+(defface custom-state '((((class color) (background dark))
+ :foreground "lime green")
+ (((class color) (background light))
+ :foreground "dark green"))
"Face used for State descriptions in the customize buffer."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-state-face 'custom-state "22.1")
-(defface custom-link
- '((t :inherit link))
+(defface custom-link '((t :inherit link))
"Face for links in customization buffers."
:version "22.1"
:group 'custom-faces)
(setq widget nil)))))
(widget-setup))
-(make-obsolete 'custom-show "this widget type is no longer supported." "24.1")
(defun custom-show (widget value)
"Non-nil if WIDGET should be shown with VALUE by default."
+ (declare (obsolete "this widget type is no longer supported." "24.1"))
(let ((show (widget-get widget :custom-show)))
(if (functionp show)
(funcall show widget value)
"Face used for comments on variables or faces."
:version "21.1"
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-comment-face 'custom-comment "22.1")
;; like font-lock-comment-face
(defface custom-comment-tag
- '((((class color) (background dark)) (:foreground "gray80"))
- (((class color) (background light)) (:foreground "blue4"))
+ '((((class color) (background dark)) :foreground "gray80")
+ (((class color) (background light)) :foreground "blue4")
(((class grayscale) (background light))
- (:foreground "DimGray" :weight bold :slant italic))
+ :foreground "DimGray" :weight bold :slant italic)
(((class grayscale) (background dark))
- (:foreground "LightGray" :weight bold :slant italic))
- (t (:weight bold)))
+ :foreground "LightGray" :weight bold :slant italic)
+ (t :weight bold))
"Face used for the comment tag on variables or faces."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-comment-tag-face 'custom-comment-tag "22.1")
(define-widget 'custom-comment 'string
"User comment."
;;; The `custom-variable' Widget.
(defface custom-variable-tag
- `((((class color)
- (background dark))
- (:foreground "light blue" :weight bold))
- (((min-colors 88) (class color)
- (background light))
- (:foreground "blue1" :weight bold))
- (((class color)
- (background light))
- (:foreground "blue" :weight bold))
- (t (:weight bold)))
+ `((((class color) (background dark))
+ :foreground "light blue" :weight bold)
+ (((min-colors 88) (class color) (background light))
+ :foreground "blue1" :weight bold)
+ (((class color) (background light))
+ :foreground "blue" :weight bold)
+ (t :weight bold))
"Face used for unpushable variable tags."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-variable-tag-face
- 'custom-variable-tag "22.1")
-(defface custom-variable-button '((t (:underline t :weight bold)))
+(defface custom-variable-button '((t :underline t :weight bold))
"Face used for pushable variable tags."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-variable-button-face
- 'custom-variable-button "22.1")
(defcustom custom-variable-default-form 'edit
"Default form of displaying variable values."
;;; The `custom-face' Widget.
(defface custom-face-tag
- `((t :inherit custom-variable-tag))
+ '((t :inherit custom-variable-tag))
"Face used for face tags."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-face-tag-face 'custom-face-tag "22.1")
(defcustom custom-face-default-form 'selected
"Default form of displaying face definition."
(setq comment nil)
;; Make the comment invisible by hand if it's empty
(custom-comment-hide comment-widget))
- (put symbol 'customized-face value)
(custom-push-theme 'theme-face symbol 'user 'set value)
- (if (face-spec-choose value)
- (face-spec-set symbol value t)
- ;; face-set-spec ignores empty attribute lists, so just give it
- ;; something harmless instead.
- (face-spec-set symbol '((t :foreground unspecified)) t))
- (put symbol 'customized-face-comment comment)
+ (face-spec-set symbol value 'customized-face)
(put symbol 'face-comment comment)
+ (put symbol 'customized-face-comment comment)
(custom-face-state-set widget)
(custom-redraw-magic widget)))
(let* ((symbol (widget-value widget))
(value (custom-face-widget-to-spec widget))
(comment-widget (widget-get widget :comment-widget))
- (comment (widget-value comment-widget)))
+ (comment (widget-value comment-widget))
+ (standard (eq (widget-get widget :custom-state) 'standard)))
(when (equal comment "")
(setq comment nil)
;; Make the comment invisible by hand if it's empty
(custom-comment-hide comment-widget))
(custom-push-theme 'theme-face symbol 'user 'set value)
- (if (face-spec-choose value)
- (face-spec-set symbol value t)
- ;; face-set-spec ignores empty attribute lists, so just give it
- ;; something harmless instead.
- (face-spec-set symbol '((t :foreground unspecified)) t))
- (unless (eq (widget-get widget :custom-state) 'standard)
- (put symbol 'saved-face value))
- (put symbol 'customized-face nil)
+ (face-spec-set symbol value (if standard 'reset 'saved-face))
(put symbol 'face-comment comment)
(put symbol 'customized-face-comment nil)
(put symbol 'saved-face-comment comment)))
(saved-face (get face 'saved-face))
(comment (get face 'saved-face-comment))
(comment-widget (widget-get widget :comment-widget)))
- (put face 'customized-face nil)
- (put face 'customized-face-comment nil)
(custom-push-theme 'theme-face face 'user
(if saved-face 'set 'reset)
saved-face)
- (face-spec-set face saved-face t)
+ (face-spec-set face saved-face 'saved-face)
(put face 'face-comment comment)
+ (put face 'customized-face-comment nil)
(widget-value-set child saved-face)
;; This call manages the comment visibility
(widget-value-set comment-widget (or comment ""))
(comment-widget (widget-get widget :comment-widget)))
(unless value
(user-error "No standard setting for this face"))
- (put symbol 'customized-face nil)
- (put symbol 'customized-face-comment nil)
(custom-push-theme 'theme-face symbol 'user 'reset)
- (face-spec-set symbol value t)
- (custom-theme-recalc-face symbol)
+ (face-spec-set symbol value 'reset)
+ (put symbol 'face-comment nil)
+ (put symbol 'customized-face-comment nil)
(if (and custom-reset-standard-faces-list
(or (get symbol 'saved-face) (get symbol 'saved-face-comment)))
;; Do this later.
(put symbol 'saved-face nil)
(put symbol 'saved-face-comment nil)
(custom-save-all))
- (put symbol 'face-comment nil)
(widget-value-set child
(custom-pre-filter-face-spec
(list (list t (custom-face-attributes-get
:group 'custom-faces)
(defface custom-group-tag-1
- `((((class color)
- (background dark))
- (:foreground "pink" :weight bold :height 1.2 :inherit variable-pitch))
- (((min-colors 88) (class color)
- (background light))
- (:foreground "red1" :weight bold :height 1.2 :inherit variable-pitch))
- (((class color)
- (background light))
- (:foreground "red" :weight bold :height 1.2 :inherit variable-pitch))
- (t (:weight bold)))
- "Face used for group tags."
+ '((default :weight bold :height 1.2 :inherit variable-pitch)
+ (((class color) (background dark)) :foreground "pink")
+ (((min-colors 88) (class color) (background light)) :foreground "red1")
+ (((class color) (background light)) :foreground "red"))
+ "Face for group tags."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-group-tag-face-1 'custom-group-tag-1 "22.1")
(defface custom-group-tag
- `((((class color)
- (background dark))
- (:foreground "light blue" :weight bold :height 1.2 :inherit variable-pitch))
- (((min-colors 88) (class color)
- (background light))
- (:foreground "blue1" :weight bold :height 1.2 :inherit variable-pitch))
- (((class color)
- (background light))
- (:foreground "blue" :weight bold :height 1.2 :inherit variable-pitch))
- (t (:weight bold)))
- "Face used for low level group tags."
+ '((default :weight bold :height 1.2 :inherit variable-pitch)
+ (((class color) (background dark)) :foreground "light blue")
+ (((min-colors 88) (class color) (background light)) :foreground "blue1")
+ (((class color) (background light)) :foreground "blue")
+ (t :weight bold))
+ "Face for low level group tags."
:group 'custom-faces)
-(define-obsolete-face-alias 'custom-group-tag-face 'custom-group-tag "22.1")
(defface custom-group-subtitle
- `((t (:weight bold)))
+ '((t :weight bold))
"Face for the \"Subgroups:\" subtitle in Custom buffers."
:group 'custom-faces)
(set (make-local-variable 'widget-link-suffix) ""))
(setq show-trailing-whitespace nil))
+(define-obsolete-variable-alias 'custom-mode-hook 'Custom-mode-hook "23.1")
(define-derived-mode Custom-mode nil "Custom"
"Major mode for editing customization buffers.
(put 'Custom-mode 'mode-class 'special)
-;; backward-compatibility
-(defun custom-mode ()
- "Non-interactive variant of `Custom-mode'."
- (Custom-mode))
-(make-obsolete 'custom-mode 'Custom-mode "23.1")
-(put 'custom-mode 'mode-class 'special)
-(define-obsolete-variable-alias 'custom-mode-hook 'Custom-mode-hook "23.1")
+(define-obsolete-function-alias 'custom-mode 'Custom-mode "23.1")
(add-to-list 'debug-ignored-errors "^Invalid face:? ")