Mercurial > emacs
annotate lisp/custom.el @ 51151:fe11e703042b
Summary: MIME support added for e-mail processing that
skips encoded regions. Allow user to skip saving Fcc messages with
large attachments. Fixed region skipping bug with multi-line
comments - e.g. tex $ regions spanning multiple lines.
Added support for postscript and uuencoded regions.
Redundant dictionary file names purged.
Dictionary definition field name changed from "Character Set"
to "Coding System". Fixed bug in reloading dictionaries.
Modified headers to reflect new version. XEmacs menu now adds
customize item.
(ispell-check-version): No longer an aliased function.
Returns library path if not called interactively.
Variable `temporary-file-directory' protected if not loaded.
(check-ispell-version): Now the alias for `ispell-check-version'.
(ispell-message-fcc-skip): New variable that determines if and when
to query about saving Fcc copy of message if an attachment is large.
(ispell-skip-html): Declared buffer-local.
(ispell-local-dictionary-alist): Docstring expanded.
Tag name changed from "Character Set" to "Coding System".
(ispell-dictionary-alist-1): Removed redundant command-line option to
load brasileiro, british, and castellano dictionary files.
(ispell-dictionary-alist-2): Removed redundant command-line option to
load czech dictionary file.
(ispell-dictionary-alist-3): Moved francais-tex here.
(ispell-dictionary-alist-4): Removed german and german8 dictionaries.
The deutsch ones are the correct definitions. `nederlands'
and `nederlands8' dictionaries moved here.
(ispell-dictionary-alist-5): `polish' and `portugues' dictionaries
moved here. Removed redundant command-line option to `norsk'
and `portugues'.
(ispell-dictionary-alist-6): Removed redundant command-line option to
load `russian' and `slovak' dictionary files.
(ispell-dictionary-alist): Tag name changed from "Character Set" to
"Coding System".
(ispell-version): Updated to 3.6.
(ispell-library-directory): Calls non-deprecated function.
(ispell-valid-dictionary-list): New function returning all valid
dictionaries on machine.
(ispell-checking-message): Documentation string improved.
(ispell-skip-region-alist): Added uuencoded and postscript region
skipping. Improved http/e-mail/file regexp to not match `/.\w'.
(ispell-html-skip-alists): New variable for html region support.
(ispell-send-string): Removed redundant xemacs check.
(ispell-word): Fix spelling error in documentation string, added
extent information to support highlighting in ispell-minor-mode.
(ispell-command-loop): Disable horizontal scrollbar in XEmacs
choices buffer.
(ispell-show-choices): Directly select `choices-window'.
(ispell-help): Use default buffer size for electric help.
(ispell-adjusted-window-height): Correct for xemacs detection.
(ispell-start-process): Don't double specify dictionary file name.
(ispell-init-process): Set `ispell-library-path' each call.
(ispell-change-dictionary): Now only completes valid dictionaries.
(ispell-region): Add support for MIME region skipping and Fcc
message query for large attachments.
(ispell-begin-skip-region-regexp): Add documentation string.
Added message support and cleaned up code for generic and html regions.
(ispell-begin-skip-region): Function is now requires alist argument.
(ispell-begin-tex-skip-regexp): Added comments and support
improved html and message regions.
(ispell-skip-region-list): New function for MIME and region skipping.
(ispell-tex-arg-end): Add documentation string.
(ispell-ignore-fcc): New function to query saving Fcc message.
(ispell-skip-region): Calculate alist for key match dynamically,
html skipping pushed to alists.
(ispell-get-line): Add support for multi-line comment regions.
(ispell): Check that variables to continue spelling are bound.
(ispell-message-text-end): Postscript and uuencoded regions now
supported as MIME regions, rather than as end-of-message region.
(ispell-mime-multipartp): New function supporting MIME.
(ispell-mime-skip-part): New function supporting MIME.
(ispell-message): Add MIME support.
(ispell-buffer-local-parsing): Variable `ispell-skip-html' now local.
(ispell-buffer-local-dict): Fixed bug for detecting and reloading
new dictionary.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 22 May 2003 21:34:00 +0000 |
parents | 7c924263658d |
children | c26f56efcd5d |
rev | line source |
---|---|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
36902
diff
changeset
|
1 ;;; custom.el --- tools for declaring and initializing options |
17334 | 2 ;; |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
3 ;; Copyright (C) 1996, 1997, 1999, 2001, 2002 Free Software Foundation, Inc. |
17334 | 4 ;; |
5 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | |
26582
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
6 ;; Maintainer: FSF |
17334 | 7 ;; Keywords: help, faces |
8 | |
17520 | 9 ;; This file is part of GNU Emacs. |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
25 | |
17334 | 26 ;;; Commentary: |
27 ;; | |
48238
b6f8e90bc592
Fix typos in Commentary section.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47822
diff
changeset
|
28 ;; This file only contains the code needed to declare and initialize |
17334 | 29 ;; user options. The code to customize options is autoloaded from |
25683 | 30 ;; `cus-edit.el' and is documented in the Emacs Lisp Reference manual. |
17334 | 31 |
48238
b6f8e90bc592
Fix typos in Commentary section.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47822
diff
changeset
|
32 ;; The code implementing face declarations is in `cus-face.el'. |
17334 | 33 |
34 ;;; Code: | |
35 | |
36 (require 'widget) | |
37 | |
17415 | 38 (defvar custom-define-hook nil |
39 ;; Customize information for this option is in `cus-edit.el'. | |
40 "Hook called after defining each customize option.") | |
41 | |
47570
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
42 (defvar custom-dont-initialize nil |
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
43 "Non-nil means `defcustom' should not initialize the variable. |
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
44 That is used for the sake of `custom-make-dependencies'. |
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
45 Users should not set it.") |
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
46 |
41224
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
47 (defvar custom-current-group-alist nil |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
48 "Alist of (FILE . GROUP) indicating the current group to use for FILE.") |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
49 |
17334 | 50 ;;; The `defcustom' Macro. |
51 | |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
52 (defun custom-initialize-default (symbol value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
53 "Initialize SYMBOL with VALUE. |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
54 This will do nothing if symbol already has a default binding. |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
55 Otherwise, if symbol has a `saved-value' property, it will evaluate |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
56 the car of that and used as the default binding for symbol. |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
57 Otherwise, VALUE will be evaluated and used as the default binding for |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
58 symbol." |
17415 | 59 (unless (default-boundp symbol) |
18033
bccd356a3b7c
Synched with version 1.9900.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17949
diff
changeset
|
60 ;; Use the saved value if it exists, otherwise the standard setting. |
17334 | 61 (set-default symbol (if (get symbol 'saved-value) |
62 (eval (car (get symbol 'saved-value))) | |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
63 (eval value))))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
64 |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
65 (defun custom-initialize-set (symbol value) |
19535
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
66 "Initialize SYMBOL based on VALUE. |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
67 If the symbol doesn't have a default binding already, |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
68 then set it using its `:set' function (or `set-default' if it has none). |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
69 The value is either the value in the symbol's `saved-value' property, |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
70 if any, or VALUE." |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
71 (unless (default-boundp symbol) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
72 (funcall (or (get symbol 'custom-set) 'set-default) |
25683 | 73 symbol |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
74 (if (get symbol 'saved-value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
75 (eval (car (get symbol 'saved-value))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
76 (eval value))))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
77 |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
78 (defun custom-initialize-reset (symbol value) |
19535
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
79 "Initialize SYMBOL based on VALUE. |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
80 Set the symbol, using its `:set' function (or `set-default' if it has none). |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
81 The value is either the symbol's current value |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
82 \(as obtained using the `:get' function), if any, |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
83 or the value in the symbol's `saved-value' property if any, |
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
84 or (last of all) VALUE." |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
85 (funcall (or (get symbol 'custom-set) 'set-default) |
25683 | 86 symbol |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
87 (cond ((default-boundp symbol) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
88 (funcall (or (get symbol 'custom-get) 'default-value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
89 symbol)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
90 ((get symbol 'saved-value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
91 (eval (car (get symbol 'saved-value)))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
92 (t |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
93 (eval value))))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
94 |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
95 (defun custom-initialize-changed (symbol value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
96 "Initialize SYMBOL with VALUE. |
36269
9a470a7db563
(custom-initialize-changed, defcustom): Doc fix.
Dave Love <fx@gnu.org>
parents:
33027
diff
changeset
|
97 Like `custom-initialize-reset', but only use the `:set' function if |
19535
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
98 not using the standard setting. |
36269
9a470a7db563
(custom-initialize-changed, defcustom): Doc fix.
Dave Love <fx@gnu.org>
parents:
33027
diff
changeset
|
99 For the standard setting, use `set-default'." |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
100 (cond ((default-boundp symbol) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
101 (funcall (or (get symbol 'custom-set) 'set-default) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
102 symbol |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
103 (funcall (or (get symbol 'custom-get) 'default-value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
104 symbol))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
105 ((get symbol 'saved-value) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
106 (funcall (or (get symbol 'custom-set) 'set-default) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
107 symbol |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
108 (eval (car (get symbol 'saved-value))))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
109 (t |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
110 (set-default symbol (eval value))))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
111 |
19516
6591f294b265
(custom-declare-variable): Rename 2nd arg to DEFAULT.
Richard M. Stallman <rms@gnu.org>
parents:
18882
diff
changeset
|
112 (defun custom-declare-variable (symbol default doc &rest args) |
6591f294b265
(custom-declare-variable): Rename 2nd arg to DEFAULT.
Richard M. Stallman <rms@gnu.org>
parents:
18882
diff
changeset
|
113 "Like `defcustom', but SYMBOL and DEFAULT are evaluated as normal arguments. |
6591f294b265
(custom-declare-variable): Rename 2nd arg to DEFAULT.
Richard M. Stallman <rms@gnu.org>
parents:
18882
diff
changeset
|
114 DEFAULT should be an expression to evaluate to compute the default value, |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
115 not the default value itself. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
116 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
117 DEFAULT is stored as SYMBOL's value in the standard theme. See |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
118 `custom-known-themes' for a list of known themes. For backwards |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
119 compatibility, DEFAULT is also stored in SYMBOL's property |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
120 `standard-value'. At the same time, SYMBOL's property `force-value' is |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
121 set to nil, as the value is no longer rogue." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
122 ;; Remember the standard setting. The value should be in the standard |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
123 ;; theme, not in this property. However, his would require changeing |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
124 ;; the C source of defvar and others as well... |
19516
6591f294b265
(custom-declare-variable): Rename 2nd arg to DEFAULT.
Richard M. Stallman <rms@gnu.org>
parents:
18882
diff
changeset
|
125 (put symbol 'standard-value (list default)) |
17415 | 126 ;; Maybe this option was rogue in an earlier version. It no longer is. |
127 (when (get symbol 'force-value) | |
128 (put symbol 'force-value nil)) | |
17334 | 129 (when doc |
130 (put symbol 'variable-documentation doc)) | |
19535
e9d8fcec9843
(custom-declare-variable): Use custom-initialize-reset
Richard M. Stallman <rms@gnu.org>
parents:
19516
diff
changeset
|
131 (let ((initialize 'custom-initialize-reset) |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
132 (requests nil)) |
41224
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
133 (unless (memq :group args) |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
134 (custom-add-to-group (custom-current-group) symbol 'custom-variable)) |
25683 | 135 (while args |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
136 (let ((arg (car args))) |
17334 | 137 (setq args (cdr args)) |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
138 (unless (symbolp arg) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
139 (error "Junk in args %S" args)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
140 (let ((keyword arg) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
141 (value (car args))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
142 (unless args |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
143 (error "Keyword %s is missing an argument" keyword)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
144 (setq args (cdr args)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
145 (cond ((eq keyword :initialize) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
146 (setq initialize value)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
147 ((eq keyword :set) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
148 (put symbol 'custom-set value)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
149 ((eq keyword :get) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
150 (put symbol 'custom-get value)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
151 ((eq keyword :require) |
48476
29e63846608d
(custom-declare-variable): Use push.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48334
diff
changeset
|
152 (push value requests)) |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
153 ((eq keyword :type) |
26928
755f54893c1f
(custom-declare-variable): Purecopy value.
Dave Love <fx@gnu.org>
parents:
26831
diff
changeset
|
154 (put symbol 'custom-type (purecopy value))) |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
155 ((eq keyword :options) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
156 (if (get symbol 'custom-options) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
157 ;; Slow safe code to avoid duplicates. |
32225
15a7324321bb
(custom-declare-variable, custom-set-variables): Use mapc.
Dave Love <fx@gnu.org>
parents:
31362
diff
changeset
|
158 (mapc (lambda (option) |
15a7324321bb
(custom-declare-variable, custom-set-variables): Use mapc.
Dave Love <fx@gnu.org>
parents:
31362
diff
changeset
|
159 (custom-add-option symbol option)) |
48476
29e63846608d
(custom-declare-variable): Use push.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48334
diff
changeset
|
160 value) |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
161 ;; Fast code for the common case. |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
162 (put symbol 'custom-options (copy-sequence value)))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
163 (t |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
164 (custom-handle-keyword symbol keyword value |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
165 'custom-variable)))))) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
166 (put symbol 'custom-requests requests) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
167 ;; Do the actual initialization. |
47570
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
168 (unless custom-dont-initialize |
b65cc673fb00
(custom-dont-initialize): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45366
diff
changeset
|
169 (funcall initialize symbol default))) |
48476
29e63846608d
(custom-declare-variable): Use push.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48334
diff
changeset
|
170 (push (cons 'defvar symbol) current-load-list) |
17334 | 171 (run-hooks 'custom-define-hook) |
172 symbol) | |
173 | |
174 (defmacro defcustom (symbol value doc &rest args) | |
175 "Declare SYMBOL as a customizable variable that defaults to VALUE. | |
176 DOC is the variable documentation. | |
177 | |
178 Neither SYMBOL nor VALUE needs to be quoted. | |
179 If SYMBOL is not already bound, initialize it to VALUE. | |
180 The remaining arguments should have the form | |
181 | |
25683 | 182 [KEYWORD VALUE]... |
17334 | 183 |
22141 | 184 The following keywords are meaningful: |
17334 | 185 |
47677 | 186 :type VALUE should be a widget type for editing the symbol's value. |
17334 | 187 :options VALUE should be a list of valid members of the widget type. |
25683 | 188 :group VALUE should be a customization group. |
17334 | 189 Add SYMBOL to that group. |
42508
37d771fc6685
(defcustom): Fix syntax of previous change.
Richard M. Stallman <rms@gnu.org>
parents:
42503
diff
changeset
|
190 :link LINK-DATA |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
191 Include an external link after the documentation string for this |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
192 item. This is a sentence containing an active field which |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
193 references some other documentation. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
194 |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
195 There are three alternatives you can use for LINK-DATA: |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
196 |
42508
37d771fc6685
(defcustom): Fix syntax of previous change.
Richard M. Stallman <rms@gnu.org>
parents:
42503
diff
changeset
|
197 (custom-manual INFO-NODE) |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
198 Link to an Info node; INFO-NODE is a string which specifies |
42508
37d771fc6685
(defcustom): Fix syntax of previous change.
Richard M. Stallman <rms@gnu.org>
parents:
42503
diff
changeset
|
199 the node name, as in \"(emacs)Top\". The link appears as |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
200 `[manual]' in the customization buffer. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
201 |
42508
37d771fc6685
(defcustom): Fix syntax of previous change.
Richard M. Stallman <rms@gnu.org>
parents:
42503
diff
changeset
|
202 (info-link INFO-NODE) |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
203 Like `custom-manual' except that the link appears in the |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
204 customization buffer with the Info node name. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
205 |
42508
37d771fc6685
(defcustom): Fix syntax of previous change.
Richard M. Stallman <rms@gnu.org>
parents:
42503
diff
changeset
|
206 (url-link URL) |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
207 Link to a web page; URL is a string which specifies the URL. |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
208 The link appears in the customization buffer as URL. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
209 |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
210 You can specify the text to use in the customization buffer by |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
211 adding `:tag NAME' after the first element of the LINK-DATA; for |
42508
37d771fc6685
(defcustom): Fix syntax of previous change.
Richard M. Stallman <rms@gnu.org>
parents:
42503
diff
changeset
|
212 example, (info-link :tag \"foo\" \"(emacs)Top\") makes a link to the |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
213 Emacs manual which appears in the buffer as `foo'. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
214 |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
215 An item can have more than one external link; however, most items |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
216 have none at all. |
22141 | 217 :initialize |
218 VALUE should be a function used to initialize the | |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
219 variable. It takes two arguments, the symbol and value |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
220 given in the `defcustom' call. The default is |
41821 | 221 `custom-initialize-reset'. |
25683 | 222 :set VALUE should be a function to set the value of the symbol. |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
223 It takes two arguments, the symbol to set and the value to |
22606
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
224 give it. The default choice of function is `custom-set-default'. |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
225 :get VALUE should be a function to extract the value of symbol. |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
226 The function takes one argument, a symbol, and should return |
22141 | 227 the current value for that symbol. The default choice of function |
25683 | 228 is `custom-default-value'. |
22141 | 229 :require |
230 VALUE should be a feature symbol. If you save a value | |
231 for this option, then when your `.emacs' file loads the value, | |
232 it does (require VALUE) first. | |
29761 | 233 :version |
234 VALUE should be a string specifying that the variable was | |
235 first introduced, or its default value was changed, in Emacs | |
236 version VERSION. | |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
237 :tag LABEL |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
238 Use LABEL, a string, instead of the item's name, to label the item |
42556 | 239 in customization menus and buffers. |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
240 :load FILE |
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
241 Load file FILE (a string) before displaying this customization |
47822
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
242 item. Loading is done with `load', and only if the file is |
42503
e95910976840
(defcustom): Documented :tag, :link and :load.
Eli Zaretskii <eliz@gnu.org>
parents:
41821
diff
changeset
|
243 not already loaded. |
48821
d886606b4f3a
(defcustom, custom-set-variables): Doc fix.
Dave Love <fx@gnu.org>
parents:
48476
diff
changeset
|
244 :set-after VARIABLES |
d886606b4f3a
(defcustom, custom-set-variables): Doc fix.
Dave Love <fx@gnu.org>
parents:
48476
diff
changeset
|
245 Specifies that SYMBOL should be set after the list of variables |
d886606b4f3a
(defcustom, custom-set-variables): Doc fix.
Dave Love <fx@gnu.org>
parents:
48476
diff
changeset
|
246 VARIABLES when both have been customized. |
17334 | 247 |
17442 | 248 Read the section about customization in the Emacs Lisp manual for more |
17334 | 249 information." |
21703
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
250 ;; It is better not to use backquote in this file, |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
251 ;; because that makes a bootstrapping problem |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
252 ;; if you need to recompile all the Lisp files using interpreted code. |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
253 (nconc (list 'custom-declare-variable |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
254 (list 'quote symbol) |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
255 (list 'quote value) |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
256 doc) |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
257 args)) |
17334 | 258 |
259 ;;; The `defface' Macro. | |
260 | |
261 (defmacro defface (face spec doc &rest args) | |
262 "Declare FACE as a customizable face that defaults to SPEC. | |
263 FACE does not need to be quoted. | |
264 | |
265 Third argument DOC is the face documentation. | |
266 | |
267 If FACE has been set with `custom-set-face', set the face attributes | |
268 as specified by that function, otherwise set the face attributes | |
269 according to SPEC. | |
270 | |
271 The remaining arguments should have the form | |
272 | |
273 [KEYWORD VALUE]... | |
274 | |
17949 | 275 The following KEYWORDs are defined: |
17334 | 276 |
277 :group VALUE should be a customization group. | |
278 Add FACE to that group. | |
279 | |
280 SPEC should be an alist of the form ((DISPLAY ATTS)...). | |
281 | |
17949 | 282 The first element of SPEC where the DISPLAY matches the frame |
283 is the one that takes effect in that frame. The ATTRs in this | |
284 element take effect; the other elements are ignored, on that frame. | |
17334 | 285 |
17949 | 286 ATTS is a list of face attributes followed by their values: |
287 (ATTR VALUE ATTR VALUE...) | |
24986
cf6d86af7374
(defface): Extend documentation to include new
Gerd Moellmann <gerd@gnu.org>
parents:
24872
diff
changeset
|
288 |
cf6d86af7374
(defface): Extend documentation to include new
Gerd Moellmann <gerd@gnu.org>
parents:
24872
diff
changeset
|
289 The possible attributes are `:family', `:width', `:height', `:weight', |
cf6d86af7374
(defface): Extend documentation to include new
Gerd Moellmann <gerd@gnu.org>
parents:
24872
diff
changeset
|
290 `:slant', `:underline', `:overline', `:strike-through', `:box', |
39981
c576f3427825
(defface): Mention `:inherit' in doc-string.
Miles Bader <miles@gnu.org>
parents:
38857
diff
changeset
|
291 `:foreground', `:background', `:stipple', `:inverse-video', and `:inherit'. |
17334 | 292 |
17949 | 293 DISPLAY can either be the symbol t, which will match all frames, or an |
294 alist of the form \((REQ ITEM...)...). For the DISPLAY to match a | |
295 FRAME, the REQ property of the frame must match one of the ITEM. The | |
296 following REQ are defined: | |
17334 | 297 |
298 `type' (the value of `window-system') | |
25888
7144668076c7
(defface): Extend documentation for new values of `type'.
Gerd Moellmann <gerd@gnu.org>
parents:
25683
diff
changeset
|
299 Under X, in addition to the values `window-system' can take, |
7144668076c7
(defface): Extend documentation for new values of `type'.
Gerd Moellmann <gerd@gnu.org>
parents:
25683
diff
changeset
|
300 `motif', `lucid' and `x-toolkit' are allowed, and match when |
7144668076c7
(defface): Extend documentation for new values of `type'.
Gerd Moellmann <gerd@gnu.org>
parents:
25683
diff
changeset
|
301 the Motif toolkit, Lucid toolkit, or any X toolkit is in use. |
17334 | 302 |
303 `class' (the frame's color support) | |
304 Should be one of `color', `grayscale', or `mono'. | |
305 | |
306 `background' (what color is used for the background text) | |
307 Should be one of `light' or `dark'. | |
308 | |
17442 | 309 Read the section about customization in the Emacs Lisp manual for more |
17334 | 310 information." |
21703
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
311 ;; It is better not to use backquote in this file, |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
312 ;; because that makes a bootstrapping problem |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
313 ;; if you need to recompile all the Lisp files using interpreted code. |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
314 (nconc (list 'custom-declare-face (list 'quote face) spec doc) args)) |
17334 | 315 |
316 ;;; The `defgroup' Macro. | |
317 | |
41224
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
318 (defun custom-current-group () |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
319 (cdr (assoc load-file-name custom-current-group-alist))) |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
320 |
17334 | 321 (defun custom-declare-group (symbol members doc &rest args) |
322 "Like `defgroup', but SYMBOL is evaluated as a normal argument." | |
25683 | 323 (while members |
17550
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
324 (apply 'custom-add-to-group symbol (car members)) |
d6545cfb6c5a
Synched with custom 1.90.
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
17529
diff
changeset
|
325 (setq members (cdr members))) |
17334 | 326 (when doc |
26582
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
327 ;; This text doesn't get into DOC. |
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
328 (put symbol 'group-documentation (purecopy doc))) |
25683 | 329 (while args |
17334 | 330 (let ((arg (car args))) |
331 (setq args (cdr args)) | |
332 (unless (symbolp arg) | |
333 (error "Junk in args %S" args)) | |
334 (let ((keyword arg) | |
335 (value (car args))) | |
336 (unless args | |
337 (error "Keyword %s is missing an argument" keyword)) | |
338 (setq args (cdr args)) | |
339 (cond ((eq keyword :prefix) | |
340 (put symbol 'custom-prefix value)) | |
341 (t | |
342 (custom-handle-keyword symbol keyword value | |
343 'custom-group)))))) | |
41224
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
344 ;; Record the group on the `current' list. |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
345 (let ((elt (assoc load-file-name custom-current-group-alist))) |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
346 (if elt (setcdr elt symbol) |
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
347 (push (cons load-file-name symbol) custom-current-group-alist))) |
17334 | 348 (run-hooks 'custom-define-hook) |
349 symbol) | |
350 | |
351 (defmacro defgroup (symbol members doc &rest args) | |
352 "Declare SYMBOL as a customization group containing MEMBERS. | |
353 SYMBOL does not need to be quoted. | |
354 | |
355 Third arg DOC is the group documentation. | |
356 | |
357 MEMBERS should be an alist of the form ((NAME WIDGET)...) where | |
20599 | 358 NAME is a symbol and WIDGET is a widget for editing that symbol. |
359 Useful widgets are `custom-variable' for editing variables, | |
17334 | 360 `custom-face' for edit faces, and `custom-group' for editing groups. |
361 | |
362 The remaining arguments should have the form | |
363 | |
25683 | 364 [KEYWORD VALUE]... |
17334 | 365 |
29761 | 366 The following KEYWORDs are defined: |
17334 | 367 |
29761 | 368 :group VALUE should be a customization group. |
369 Add SYMBOL to that group. | |
370 | |
371 :version VALUE should be a string specifying that the group was introduced | |
372 in Emacs version VERSION. | |
17334 | 373 |
17442 | 374 Read the section about customization in the Emacs Lisp manual for more |
17334 | 375 information." |
21703
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
376 ;; It is better not to use backquote in this file, |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
377 ;; because that makes a bootstrapping problem |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
378 ;; if you need to recompile all the Lisp files using interpreted code. |
aea35bf72489
(defcustom, defgroup, defface): Don't use backquote.
Richard M. Stallman <rms@gnu.org>
parents:
20599
diff
changeset
|
379 (nconc (list 'custom-declare-group (list 'quote symbol) members doc) args)) |
17334 | 380 |
381 (defun custom-add-to-group (group option widget) | |
382 "To existing GROUP add a new OPTION of type WIDGET. | |
33025
9559a9aeff3c
(custom-add-to-group): Allow multiple entries for a given value OPTION,
Miles Bader <miles@gnu.org>
parents:
32225
diff
changeset
|
383 If there already is an entry for OPTION and WIDGET, nothing is done." |
9559a9aeff3c
(custom-add-to-group): Allow multiple entries for a given value OPTION,
Miles Bader <miles@gnu.org>
parents:
32225
diff
changeset
|
384 (let ((members (get group 'custom-group)) |
9559a9aeff3c
(custom-add-to-group): Allow multiple entries for a given value OPTION,
Miles Bader <miles@gnu.org>
parents:
32225
diff
changeset
|
385 (entry (list option widget))) |
9559a9aeff3c
(custom-add-to-group): Allow multiple entries for a given value OPTION,
Miles Bader <miles@gnu.org>
parents:
32225
diff
changeset
|
386 (unless (member entry members) |
9559a9aeff3c
(custom-add-to-group): Allow multiple entries for a given value OPTION,
Miles Bader <miles@gnu.org>
parents:
32225
diff
changeset
|
387 (put group 'custom-group (nconc members (list entry)))))) |
17334 | 388 |
47822
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
389 (defun custom-group-of-mode (mode) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
390 "Return the custom group corresponding to the major or minor MODE. |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
391 If no such group is found, return nil." |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
392 (or (get mode 'custom-mode-group) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
393 (if (or (get mode 'custom-group) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
394 (and (string-match "-mode\\'" (symbol-name mode)) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
395 (get (setq mode (intern (substring (symbol-name mode) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
396 0 (match-beginning 0)))) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
397 'custom-group))) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
398 mode))) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
399 |
17334 | 400 ;;; Properties. |
401 | |
402 (defun custom-handle-all-keywords (symbol args type) | |
403 "For customization option SYMBOL, handle keyword arguments ARGS. | |
404 Third argument TYPE is the custom option type." | |
41224
fc0e6d3f905d
(custom-current-group-alist): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39981
diff
changeset
|
405 (unless (memq :group args) |
48272
8555178ad8a0
(custom-handle-all-keywords): Fix arg passed to custom-add-to-group.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48238
diff
changeset
|
406 (custom-add-to-group (custom-current-group) symbol type)) |
25683 | 407 (while args |
17334 | 408 (let ((arg (car args))) |
409 (setq args (cdr args)) | |
410 (unless (symbolp arg) | |
411 (error "Junk in args %S" args)) | |
412 (let ((keyword arg) | |
413 (value (car args))) | |
414 (unless args | |
415 (error "Keyword %s is missing an argument" keyword)) | |
416 (setq args (cdr args)) | |
25683 | 417 (custom-handle-keyword symbol keyword value type))))) |
17334 | 418 |
419 (defun custom-handle-keyword (symbol keyword value type) | |
420 "For customization option SYMBOL, handle KEYWORD with VALUE. | |
421 Fourth argument TYPE is the custom option type." | |
26582
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
422 (if purify-flag |
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
423 (setq value (purecopy value))) |
17334 | 424 (cond ((eq keyword :group) |
425 (custom-add-to-group value symbol type)) | |
20445
20ff88ac8cc2
(custom-add-version): New function.
Karl Heuer <kwzh@gnu.org>
parents:
19535
diff
changeset
|
426 ((eq keyword :version) |
20ff88ac8cc2
(custom-add-version): New function.
Karl Heuer <kwzh@gnu.org>
parents:
19535
diff
changeset
|
427 (custom-add-version symbol value)) |
17334 | 428 ((eq keyword :link) |
429 (custom-add-link symbol value)) | |
430 ((eq keyword :load) | |
431 (custom-add-load symbol value)) | |
432 ((eq keyword :tag) | |
433 (put symbol 'custom-tag value)) | |
26831
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
434 ((eq keyword :set-after) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
435 (custom-add-dependencies symbol value)) |
17334 | 436 (t |
24872
9db8a7ed814e
(custom-handle-keyword): Fix error message.
Karl Heuer <kwzh@gnu.org>
parents:
24438
diff
changeset
|
437 (error "Unknown keyword %s" keyword)))) |
17334 | 438 |
26831
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
439 (defun custom-add-dependencies (symbol value) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
440 "To the custom option SYMBOL, add dependencies specified by VALUE. |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
441 VALUE should be a list of symbols. For each symbol in that list, |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
442 this specifies that SYMBOL should be set after the specified symbol, if |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
443 both appear in constructs like `custom-set-variables'." |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
444 (unless (listp value) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
445 (error "Invalid custom dependency `%s'" value)) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
446 (let* ((deps (get symbol 'custom-dependencies)) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
447 (new-deps deps)) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
448 (while value |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
449 (let ((dep (car value))) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
450 (unless (symbolp dep) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
451 (error "Invalid custom dependency `%s'" dep)) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
452 (unless (memq dep new-deps) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
453 (setq new-deps (cons dep new-deps))) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
454 (setq value (cdr value)))) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
455 (unless (eq deps new-deps) |
ddaafb816c3e
(custom-handle-keyword): Add :set-after.
Gerd Moellmann <gerd@gnu.org>
parents:
26582
diff
changeset
|
456 (put symbol 'custom-dependencies new-deps)))) |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
457 |
17334 | 458 (defun custom-add-option (symbol option) |
459 "To the variable SYMBOL add OPTION. | |
460 | |
461 If SYMBOL is a hook variable, OPTION should be a hook member. | |
462 For other types variables, the effect is undefined." | |
463 (let ((options (get symbol 'custom-options))) | |
464 (unless (member option options) | |
465 (put symbol 'custom-options (cons option options))))) | |
466 | |
467 (defun custom-add-link (symbol widget) | |
468 "To the custom option SYMBOL add the link WIDGET." | |
469 (let ((links (get symbol 'custom-links))) | |
470 (unless (member widget links) | |
26582
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
471 (put symbol 'custom-links (cons (purecopy widget) links))))) |
17334 | 472 |
20445
20ff88ac8cc2
(custom-add-version): New function.
Karl Heuer <kwzh@gnu.org>
parents:
19535
diff
changeset
|
473 (defun custom-add-version (symbol version) |
20ff88ac8cc2
(custom-add-version): New function.
Karl Heuer <kwzh@gnu.org>
parents:
19535
diff
changeset
|
474 "To the custom option SYMBOL add the version VERSION." |
26582
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
475 (put symbol 'custom-version (purecopy version))) |
20445
20ff88ac8cc2
(custom-add-version): New function.
Karl Heuer <kwzh@gnu.org>
parents:
19535
diff
changeset
|
476 |
17334 | 477 (defun custom-add-load (symbol load) |
478 "To the custom option SYMBOL add the dependency LOAD. | |
479 LOAD should be either a library file name, or a feature name." | |
480 (let ((loads (get symbol 'custom-loads))) | |
481 (unless (member load loads) | |
26582
fbd1f4d3000d
(custom-declare-group): Purecopy DOC.
Dave Love <fx@gnu.org>
parents:
25888
diff
changeset
|
482 (put symbol 'custom-loads (cons (purecopy load) loads))))) |
17334 | 483 |
49099
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
484 (defun custom-autoload (symbol load) |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
485 "Mark SYMBOL as autoloaded custom variable and add dependency LOAD." |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
486 (put symbol 'custom-autoload t) |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
487 (custom-add-load symbol load)) |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
488 |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
489 ;; This test is also in the C code of `user-variable-p'. |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
490 (defun custom-variable-p (variable) |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
491 "Return non-nil if VARIABLE is a custom variable." |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
492 (or (get variable 'standard-value) |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
493 (get variable 'custom-autoload))) |
04672e32e3b0
(custom-autoload, custom-variable-p): New functions.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48951
diff
changeset
|
494 |
44911
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
495 ;;; Loading files needed to customize a symbol. |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
496 ;;; This is in custom.el because menu-bar.el needs it for toggle cmds. |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
497 |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
498 (defvar custom-load-recursion nil |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
499 "Hack to avoid recursive dependencies.") |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
500 |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
501 (defun custom-load-symbol (symbol) |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
502 "Load all dependencies for SYMBOL." |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
503 (unless custom-load-recursion |
47822
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
504 (let ((custom-load-recursion t)) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
505 (dolist (load (get symbol 'custom-loads)) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
506 (cond ((symbolp load) (condition-case nil (require load) (error nil))) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
507 ;; This is subsumed by the test below, but it's much faster. |
44911
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
508 ((assoc load load-history)) |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
509 ;; This was just (assoc (locate-library load) load-history) |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
510 ;; but has been optimized not to load locate-library |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
511 ;; if not necessary. |
47822
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
512 ((let ((regexp (concat "\\(\\`\\|/\\)" (regexp-quote load) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
513 "\\(\\'\\|\\.\\)")) |
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
514 (found nil)) |
44911
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
515 (dolist (loaded load-history) |
45366
c9338efa3fd9
(custom-load-symbol): Verify that LOADED is a string.
Richard M. Stallman <rms@gnu.org>
parents:
44911
diff
changeset
|
516 (and (stringp (car loaded)) |
c9338efa3fd9
(custom-load-symbol): Verify that LOADED is a string.
Richard M. Stallman <rms@gnu.org>
parents:
44911
diff
changeset
|
517 (string-match regexp (car loaded)) |
44911
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
518 (setq found t))) |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
519 found)) |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
520 ;; Without this, we would load cus-edit recursively. |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
521 ;; We are still loading it when we call this, |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
522 ;; and it is not in load-history yet. |
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
523 ((equal load "cus-edit")) |
47822
46f8bf0fc7b4
(custom-group-of-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47677
diff
changeset
|
524 (t (condition-case nil (load load) (error nil)))))))) |
44911
0edc2b27187b
(custom-load-symbol): Moved from cus-edit.el.
Richard M. Stallman <rms@gnu.org>
parents:
44683
diff
changeset
|
525 |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
526 (defvar custom-known-themes '(user standard) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
527 "Themes that have been define with `deftheme'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
528 The default value is the list (user standard). The theme `standard' |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
529 contains the Emacs standard settings from the original Lisp files. The |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
530 theme `user' contains all the the settings the user customized and saved. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
531 Additional themes declared with the `deftheme' macro will be added to |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
532 the front of this list.") |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
533 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
534 (defun custom-declare-theme (theme feature &optional doc &rest args) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
535 "Like `deftheme', but THEME is evaluated as a normal argument. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
536 FEATURE is the feature this theme provides. This symbol is created |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
537 from THEME by `custom-make-theme-feature'." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
538 (add-to-list 'custom-known-themes theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
539 (put theme 'theme-feature feature) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
540 (when doc |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
541 (put theme 'theme-documentation doc)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
542 (while args |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
543 (let ((arg (car args))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
544 (setq args (cdr args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
545 (unless (symbolp arg) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
546 (error "Junk in args %S" args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
547 (let ((keyword arg) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
548 (value (car args))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
549 (unless args |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
550 (error "Keyword %s is missing an argument" keyword)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
551 (setq args (cdr args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
552 (cond ((eq keyword :short-description) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
553 (put theme 'theme-short-description short-description)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
554 ((eq keyword :immediate) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
555 (put theme 'theme-immediate immediate)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
556 ((eq keyword :variable-set-string) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
557 (put theme 'theme-variable-set-string variable-set-string)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
558 ((eq keyword :variable-reset-string) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
559 (put theme 'theme-variable-reset-string variable-reset-string)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
560 ((eq keyword :face-set-string) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
561 (put theme 'theme-face-set-string face-set-string)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
562 ((eq keyword :face-reset-string) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
563 (put theme 'theme-face-reset-string face-reset-string))))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
564 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
565 (defmacro deftheme (theme &optional doc &rest args) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
566 "Declare custom theme THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
567 The optional argument DOC is a doc string describing the theme. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
568 The remaining arguments should have the form |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
569 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
570 [KEYWORD VALUE]... |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
571 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
572 The following KEYWORD's are defined: |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
573 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
574 :short-description |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
575 VALUE is a short (one line) description of the theme. If not |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
576 given, DOC is used. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
577 :immediate |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
578 If VALUE is non-nil, variables specified in this theme are set |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
579 immediately when loading the theme. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
580 :variable-set-string |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
581 VALUE is a string used to indicate that a variable takes its |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
582 setting from this theme. It is passed to FORMAT with the name |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
583 of the theme as an additional argument. If not given, a |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
584 generic description is used. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
585 :variable-reset-string |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
586 VALUE is a string used in the case a variable has been forced |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
587 to its value in this theme. It is passed to FORMAT with the |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
588 name of the theme as an additional argument. If not given, a |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
589 generic description is used. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
590 :face-set-string |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
591 VALUE is a string used to indicate that a face takes its |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
592 setting from this theme. It is passed to FORMAT with the name |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
593 of the theme as an additional argument. If not given, a |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
594 generic description is used. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
595 :face-reset-string |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
596 VALUE is a string used in the case a face has been forced to |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
597 its value in this theme. It is passed to FORMAT with the name |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
598 of the theme as an additional argument. If not given, a |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
599 generic description is used. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
600 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
601 Any theme `foo' should be defined in a file called `foo-theme.el'; |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
602 see `custom-make-theme-feature' for more information." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
603 (let ((feature (custom-make-theme-feature theme))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
604 ;; It is better not to use backquote in this file, |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
605 ;; because that makes a bootstrapping problem |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
606 ;; if you need to recompile all the Lisp files using interpreted code. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
607 (nconc (list 'custom-declare-theme |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
608 (list 'quote theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
609 (list 'quote feature) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
610 doc) args))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
611 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
612 (defun custom-make-theme-feature (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
613 "Given a symbol THEME, create a new symbol by appending \"-theme\". |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
614 Store this symbol in the `theme-feature' property of THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
615 Calling `provide-theme' to provide THEME actually puts `THEME-theme' |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
616 into `features'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
617 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
618 This allows for a file-name convention for autoloading themes: |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
619 Every theme X has a property `provide-theme' whose value is \"X-theme\". |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
620 \(require-theme X) then attempts to load the file `X-theme.el'." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
621 (intern (concat (symbol-name theme) "-theme"))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
622 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
623 (defsubst custom-theme-p (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
624 "Non-nil when THEME has been defined." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
625 (memq theme custom-known-themes)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
626 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
627 (defsubst custom-check-theme (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
628 "Check whether THEME is valid, and signal an error if it is not." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
629 (unless (custom-theme-p theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
630 (error "Unknown theme `%s'" theme))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
631 |
17334 | 632 ;;; Initializing. |
633 | |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
634 (defun custom-push-theme (prop symbol theme mode value) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
635 "Add (THEME MODE VALUE) to the list in property PROP of SYMBOL. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
636 If the first element in that list is already (THEME ...), |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
637 discard it first. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
638 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
639 MODE can be either the symbol `set' or the symbol `reset'. If it is the |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
640 symbol `set', then VALUE is the value to use. If it is the symbol |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
641 `reset', then VALUE is the mode to query instead. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
642 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
643 In the following example for the variable `goto-address-url-face', the |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
644 theme `subtle-hacker' uses the same value for the variable as the theme |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
645 `gnome2': |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
646 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
647 \((standard set bold) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
648 \(gnome2 set info-xref) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
649 \(jonadab set underline) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
650 \(subtle-hacker reset gnome2)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
651 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
652 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
653 If a value has been stored for themes A B and C, and a new value |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
654 is to be stored for theme C, then the old value of C is discarded. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
655 If a new value is to be stored for theme B, however, the old value |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
656 of B is not discarded because B is not the car of the list. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
657 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
658 For variables, list property PROP is `theme-value'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
659 For faces, list property PROP is `theme-face'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
660 This is used in `custom-do-theme-reset', for example. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
661 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
662 The list looks the same in any case; the examples shows a possible |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
663 value of the `theme-face' property for the face `region': |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
664 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
665 \((gnome2 set ((t (:foreground \"cyan\" :background \"dark cyan\")))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
666 \(standard set ((((class color) (background dark)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
667 \(:background \"blue\")) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
668 \(t (:background \"gray\"))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
669 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
670 This records values for the `standard' and the `gnome2' themes. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
671 The user has not customized the face; had he done that, |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
672 the list would contain an entry for the `user' theme, too. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
673 See `custom-known-themes' for a list of known themes." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
674 (let ((old (get symbol prop))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
675 (if (eq (car-safe (car-safe old)) theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
676 (setq old (cdr old))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
677 (put symbol prop (cons (list theme mode value) old)))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
678 |
22606
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
679 (defvar custom-local-buffer nil |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
680 "Non-nil, in a Customization buffer, means customize a specific buffer. |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
681 If this variable is non-nil, it should be a buffer, |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
682 and it means customize the local bindings of that buffer. |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
683 This variable is a permanent local, and it normally has a local binding |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
684 in every Customization buffer.") |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
685 (put 'custom-local-buffer 'permanent-local t) |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
686 |
17334 | 687 (defun custom-set-variables (&rest args) |
25683 | 688 "Initialize variables according to user preferences. |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
689 The settings are registered as theme `user'. |
48821
d886606b4f3a
(defcustom, custom-set-variables): Doc fix.
Dave Love <fx@gnu.org>
parents:
48476
diff
changeset
|
690 The arguments should each be a list of the form: |
17334 | 691 |
25683 | 692 (SYMBOL VALUE [NOW [REQUEST [COMMENT]]]) |
17334 | 693 |
694 The unevaluated VALUE is stored as the saved value for SYMBOL. | |
695 If NOW is present and non-nil, VALUE is also evaluated and bound as | |
25683 | 696 the default value for the SYMBOL. |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
697 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
698 REQUEST is a list of features we must 'require for SYMBOL. |
25683 | 699 COMMENT is a comment string about SYMBOL." |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
700 (apply 'custom-theme-set-variables 'user args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
701 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
702 (defun custom-theme-set-variables (theme &rest args) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
703 "Initialize variables according to settings specified by args. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
704 Records the settings as belonging to THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
705 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
706 The arguments should be a list where each entry has the form: |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
707 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
708 (SYMBOL VALUE [NOW [REQUEST [COMMENT]]]) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
709 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
710 The unevaluated VALUE is stored as the saved value for SYMBOL. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
711 If NOW is present and non-nil, VALUE is also evaluated and bound as |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
712 the default value for the SYMBOL. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
713 REQUEST is a list of features we must 'require for SYMBOL. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
714 COMMENT is a comment string about SYMBOL. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
715 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
716 Several properties of THEME and SYMBOL are used in the process: |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
717 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
718 If THEME property `theme-immediate' is non-nil, this is equivalent of |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
719 providing the NOW argument to all symbols in the argument list: SYMBOL |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
720 is bound to the evaluated VALUE. The only difference is SYMBOL property |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
721 `force-value': if NOW is non-nil, SYMBOL's property `force-value' is set to |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
722 the symbol `rogue', else if THEME's property `theme-immediate' is non-nil, |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
723 FACE's property `force-face' is set to the symbol `immediate'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
724 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
725 VALUE itself is saved unevaluated as SYMBOL property `saved-value' and |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
726 in SYMBOL's list property `theme-value' \(using `custom-push-theme')." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
727 (custom-check-theme theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
728 (let ((immediate (get theme 'theme-immediate))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
729 (setq args |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
730 (sort args |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
731 (lambda (a1 a2) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
732 (let* ((sym1 (car a1)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
733 (sym2 (car a2)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
734 (1-then-2 (memq sym1 (get sym2 'custom-dependencies))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
735 (2-then-1 (memq sym2 (get sym1 'custom-dependencies)))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
736 (cond ((and 1-then-2 2-then-1) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
737 (error "Circular custom dependency between `%s' and `%s'" |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
738 sym1 sym2)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
739 (2-then-1 nil) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
740 ;; Put symbols with :require last. The macro |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
741 ;; define-minor-mode generates a defcustom |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
742 ;; with a :require and a :set, where the |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
743 ;; setter function calls the mode function. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
744 ;; Putting symbols with :require last ensures |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
745 ;; that the mode function will see other |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
746 ;; customized values rather than default |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
747 ;; values. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
748 (t (nth 3 a2))))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
749 (while args |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
750 (let ((entry (car args))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
751 (if (listp entry) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
752 (let* ((symbol (nth 0 entry)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
753 (value (nth 1 entry)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
754 (now (nth 2 entry)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
755 (requests (nth 3 entry)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
756 (comment (nth 4 entry)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
757 set) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
758 (when requests |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
759 (put symbol 'custom-requests requests) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
760 (mapc 'require requests)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
761 (setq set (or (get symbol 'custom-set) 'custom-set-default)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
762 (put symbol 'saved-value (list value)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
763 (put symbol 'saved-variable-comment comment) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
764 (custom-push-theme 'theme-value symbol theme 'set value) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
765 ;; Allow for errors in the case where the setter has |
31362
652b5c65769a
(custom-set-variables): Print message about errors in
Dave Love <fx@gnu.org>
parents:
29761
diff
changeset
|
766 ;; changed between versions, say, but let the user know. |
652b5c65769a
(custom-set-variables): Print message about errors in
Dave Love <fx@gnu.org>
parents:
29761
diff
changeset
|
767 (condition-case data |
24438
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
768 (cond (now |
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
769 ;; Rogue variable, set it now. |
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
770 (put symbol 'force-value t) |
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
771 (funcall set symbol (eval value))) |
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
772 ((default-boundp symbol) |
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
773 ;; Something already set this, overwrite it. |
4a78f6354310
(custom-set-variables): Protect against setter errors.
Dave Love <fx@gnu.org>
parents:
23354
diff
changeset
|
774 (funcall set symbol (eval value)))) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
775 (error |
31362
652b5c65769a
(custom-set-variables): Print message about errors in
Dave Love <fx@gnu.org>
parents:
29761
diff
changeset
|
776 (message "Error setting %s: %s" symbol data))) |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
777 (setq args (cdr args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
778 (and (or now (default-boundp symbol)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
779 (put symbol 'variable-comment comment))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
780 ;; Old format, a plist of SYMBOL VALUE pairs. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
781 (message "Warning: old format `custom-set-variables'") |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
782 (ding) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
783 (sit-for 2) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
784 (let ((symbol (nth 0 args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
785 (value (nth 1 args))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
786 (put symbol 'saved-value (list value)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
787 (custom-push-theme 'theme-value symbol theme 'set value)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
788 (setq args (cdr (cdr args)))))))) |
17334 | 789 |
22606
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
790 (defun custom-set-default (variable value) |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
791 "Default :set function for a customizable variable. |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
792 Normally, this sets the default value of VARIABLE to VALUE, |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
793 but if `custom-local-buffer' is non-nil, |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
794 this sets the local binding in that buffer instead." |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
795 (if custom-local-buffer |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
796 (with-current-buffer custom-local-buffer |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
797 (set variable value)) |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
798 (set-default variable value))) |
36171df7d571
(custom-set-default): New function.
Richard M. Stallman <rms@gnu.org>
parents:
22499
diff
changeset
|
799 |
50123
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
800 (defun custom-set-minor-mode (variable value) |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
801 ":set function for minor mode variables. |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
802 Normally, this sets the default value of VARIABLE to nil if VALUE |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
803 is nil and to t otherwise, |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
804 but if `custom-local-buffer' is non-nil, |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
805 this sets the local binding in that buffer instead." |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
806 (if custom-local-buffer |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
807 (with-current-buffer custom-local-buffer |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
808 (funcall variable (or value 0))) |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
809 (funcall variable (or value 0)))) |
7c924263658d
(custom-set-minor-mode): New fun.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
810 |
44683
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
811 (defun custom-quote (sexp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
812 "Quote SEXP iff it is not self quoting." |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
813 (if (or (memq sexp '(t nil)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
814 (keywordp sexp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
815 (and (listp sexp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
816 (memq (car sexp) '(lambda))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
817 (stringp sexp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
818 (numberp sexp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
819 (vectorp sexp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
820 ;;; (and (fboundp 'characterp) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
821 ;;; (characterp sexp)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
822 ) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
823 sexp |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
824 (list 'quote sexp))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
825 |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
826 (defun customize-mark-to-save (symbol) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
827 "Mark SYMBOL for later saving. |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
828 |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
829 If the default value of SYMBOL is different from the standard value, |
44683
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
830 set the `saved-value' property to a list whose car evaluates to the |
49522
4dd5da1ea3dc
* font-lock.el (lisp-font-lock-keywords-1): Match `deftheme'.
John Paul Wallington <jpw@pobox.com>
parents:
49099
diff
changeset
|
831 default value. Otherwise, set it to nil. |
44683
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
832 |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
833 To actually save the value, call `custom-save-all'. |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
834 |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
835 Return non-nil iff the `saved-value' property actually changed." |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
836 (let* ((get (or (get symbol 'custom-get) 'default-value)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
837 (value (funcall get symbol)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
838 (saved (get symbol 'saved-value)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
839 (standard (get symbol 'standard-value)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
840 (comment (get symbol 'customized-variable-comment))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
841 ;; Save default value iff different from standard value. |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
842 (if (or (null standard) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
843 (not (equal value (condition-case nil |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
844 (eval (car standard)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
845 (error nil))))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
846 (put symbol 'saved-value (list (custom-quote value))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
847 (put symbol 'saved-value nil)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
848 ;; Clear customized information (set, but not saved). |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
849 (put symbol 'customized-value nil) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
850 ;; Save any comment that might have been set. |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
851 (when comment |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
852 (put symbol 'saved-variable-comment comment)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
853 (not (equal saved (get symbol 'saved-value))))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
854 |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
855 (defun customize-mark-as-set (symbol) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
856 "Mark current value of SYMBOL as being set from customize. |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
857 |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
858 If the default value of SYMBOL is different from the saved value if any, |
44683
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
859 or else if it is different from the standard value, set the |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
860 `customized-value' property to a list whose car evaluates to the |
49522
4dd5da1ea3dc
* font-lock.el (lisp-font-lock-keywords-1): Match `deftheme'.
John Paul Wallington <jpw@pobox.com>
parents:
49099
diff
changeset
|
861 default value. Otherwise, set it to nil. |
44683
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
862 |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
863 Return non-nil iff the `customized-value' property actually changed." |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
864 (let* ((get (or (get symbol 'custom-get) 'default-value)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
865 (value (funcall get symbol)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
866 (customized (get symbol 'customized-value)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
867 (old (or (get symbol 'saved-value) (get symbol 'standard-value)))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
868 ;; Mark default value as set iff different from old value. |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
869 (if (or (null old) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49522
diff
changeset
|
870 (not (equal value (condition-case nil |
44683
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
871 (eval (car old)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
872 (error nil))))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
873 (put symbol 'customized-value (list (custom-quote value))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
874 (put symbol 'customized-value nil)) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
875 ;; Changed? |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
876 (not (equal customized (get symbol 'customized-value))))) |
17031c88f781
(customize-mark-to-save, customize-mark-as-set)
Miles Bader <miles@gnu.org>
parents:
42556
diff
changeset
|
877 |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
878 ;;; Theme Manipulation |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
879 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
880 (defvar custom-loaded-themes nil |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
881 "Themes in the order they are loaded.") |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
882 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
883 (defun custom-theme-loaded-p (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
884 "Return non-nil when THEME has been loaded." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
885 (memq theme custom-loaded-themes)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
886 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
887 (defun provide-theme (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
888 "Indicate that this file provides THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
889 Add THEME to `custom-loaded-themes' and `provide' whatever |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
890 is stored in THEME's property `theme-feature'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
891 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
892 Usually the theme-feature property contains a symbol created |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
893 by `custom-make-theme-feature'." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
894 (custom-check-theme theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
895 (provide (get theme 'theme-feature)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
896 (setq custom-loaded-themes (nconc (list theme) custom-loaded-themes))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
897 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
898 (defun require-theme (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
899 "Try to load a theme by requiring its feature. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
900 THEME's feature is stored in THEME's `theme-feature' property. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
901 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
902 Usually the `theme-feature' property contains a symbol created |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
903 by `custom-make-theme-feature'." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
904 ;; Note we do no check for validity of the theme here. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
905 ;; This allows to pull in themes by a file-name convention |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
906 (require (or (get theme 'theme-feature) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
907 (custom-make-theme-feature theme)))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
908 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
909 (defun custom-remove-theme (spec-alist theme) |
49522
4dd5da1ea3dc
* font-lock.el (lisp-font-lock-keywords-1): Match `deftheme'.
John Paul Wallington <jpw@pobox.com>
parents:
49099
diff
changeset
|
910 "Delete all elements from SPEC-ALIST whose car is THEME." |
48951
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
911 (let ((elt (assoc theme spec-alist))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
912 (while elt |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
913 (setq spec-alist (delete elt spec-alist) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
914 elt (assoc theme spec-alist)))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
915 spec-alist) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
916 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
917 (defun custom-do-theme-reset (theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
918 "Undo all settings defined by THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
919 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
920 A variable remains unchanged if its property `theme-value' does not |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
921 contain a value for THEME. A face remains unchanged if its property |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
922 `theme-face' does not contain a value for THEME. In either case, all |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
923 settings for THEME are removed from the property and the variable or |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
924 face is set to the `user' theme. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
925 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
926 See `custom-known-themes' for a list of known themes." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
927 (let (spec-list) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
928 (mapatoms (lambda (symbol) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
929 ;; This works even if symbol is both a variable and a |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
930 ;; face. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
931 (setq spec-list (get symbol 'theme-value)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
932 (when spec-list |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
933 (put symbol 'theme-value (custom-remove-theme spec-list theme)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
934 (custom-theme-reset-internal symbol 'user)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
935 (setq spec-list (get symbol 'theme-face)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
936 (when spec-list |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
937 (put symbol 'theme-face (custom-remove-theme spec-list theme)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
938 (custom-theme-reset-internal-face symbol 'user)))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
939 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
940 (defun custom-theme-load-themes (by-theme &rest body) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
941 "Load the themes specified by BODY. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
942 Record them as required by theme BY-THEME. BODY is a sequence of either |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
943 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
944 THEME |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
945 BY-THEME requires THEME |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
946 \(reset THEME) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
947 Undo all the settings made by THEME |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
948 \(hidden THEME) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
949 Require THEME but hide it from the user |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
950 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
951 All the themes loaded for BY-THEME are recorded in BY-THEME's property |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
952 `theme-loads-themes'. Any theme loaded with the hidden predicate will |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
953 be given the property `theme-hidden' unless it has been loaded before. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
954 Whether a theme has been loaded before is determined by the function |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
955 `custom-theme-loaded-p'." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
956 (custom-check-theme by-theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
957 (let ((theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
958 (themes-loaded (get by-theme 'theme-loads-themes))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
959 (while theme |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
960 (setq theme (car body) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
961 body (cdr body)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
962 (cond ((and (consp theme) (eq (car theme) 'reset)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
963 (custom-do-theme-reset (cadr theme))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
964 ((and (consp theme) (eq (car theme) 'hidden)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
965 (require-theme (cadr theme)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
966 (unless (custom-theme-loaded-p (cadr theme)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
967 (put (cadr theme) 'theme-hidden t))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
968 (t |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
969 (require-theme theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
970 (put theme 'theme-hidden nil))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
971 (setq themes-loaded (nconc (list theme) themes-loaded))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
972 (put by-theme 'theme-loads-themes themes-loaded))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
973 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
974 (defun custom-load-themes (&rest body) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
975 "Load themes for the USER theme as specified by BODY. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
976 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
977 See `custom-theme-load-themes' for more information on BODY." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
978 (apply 'custom-theme-load-themes 'user body)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
979 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
980 ; (defsubst copy-upto-last (elt list) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
981 ; "Copy all the elements of the list upto the last occurence of elt" |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
982 ; ;; Is it faster to do more work in C than to do less in elisp? |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
983 ; (nreverse (cdr (member elt (reverse list))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
984 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
985 (defun custom-theme-value (theme theme-spec-list) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
986 "Determine the value for THEME defined by THEME-SPEC-LIST. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
987 Returns a list with the original value if found; nil otherwise. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
988 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
989 THEME-SPEC-LIST is an alist with themes as its key. As new themes are |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
990 installed, these are added to the front of THEME-SPEC-LIST. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
991 Each element has the form |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
992 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
993 \(THEME MODE VALUE) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
994 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
995 MODE is either the symbol `set' or the symbol `reset'. See |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
996 `custom-push-theme' for more information on the format of |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
997 THEME-SPEC-LIST." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
998 ;; Note we do _NOT_ signal an error if the theme is unknown |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
999 ;; it might have gone away without the user knowing. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1000 (let ((value (cdr (assoc theme theme-spec-list)))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1001 (if value |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1002 (if (eq (car value) 'set) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1003 (cdr value) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1004 (custom-theme-value (cadr value) theme-spec-list))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1005 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1006 (defun custom-theme-variable-value (variable theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1007 "Return (list value) indicating value of VARIABLE in THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1008 If THEME does not define a value for VARIABLE, return nil. The value |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1009 definitions per theme are stored in VARIABLE's property `theme-value'. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1010 The actual work is done by function `custom-theme-value', which see. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1011 See `custom-push-theme' for more information on how these definitions |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1012 are stored." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1013 (custom-theme-value theme (get variable 'theme-value))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1014 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1015 (defun custom-theme-reset-internal (symbol to-theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1016 "Reset SYMBOL to the value defined by TO-THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1017 If SYMBOL is not defined in TO-THEME, reset SYMBOL to the standard |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1018 value. See `custom-theme-variable-value'. The standard value is |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1019 stored in SYMBOL's property `standard-value'." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1020 (let ((value (custom-theme-variable-value symbol to-theme)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1021 was-in-theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1022 (setq was-in-theme value) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1023 (setq value (or value (get symbol 'standard-value))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1024 (when value |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1025 (put symbol 'saved-value was-in-theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1026 (if (or (get 'force-value symbol) (default-boundp symbol)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1027 (funcall (or (get symbol 'custom-set) 'set-default) symbol |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1028 (eval (car value))))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1029 value)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1030 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1031 (defun custom-theme-reset-variables (theme &rest args) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1032 "Reset the value of the variables to values previously defined. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1033 Associate this setting with THEME. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1034 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1035 ARGS is a list of lists of the form |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1036 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1037 (VARIABLE TO-THEME) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1038 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1039 This means reset VARIABLE to its value in TO-THEME." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1040 (custom-check-theme theme) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1041 (mapcar '(lambda (arg) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1042 (apply 'custom-theme-reset-internal arg) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1043 (custom-push-theme 'theme-value (car arg) theme 'reset (cadr arg))) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1044 args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1045 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1046 (defun custom-reset-variables (&rest args) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1047 "Reset the value of the variables to values previously saved. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1048 This is the setting associated the `user' theme. |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1049 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1050 ARGS is a list of lists of the form |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1051 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1052 (VARIABLE TO-THEME) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1053 |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1054 This means reset VARIABLE to its value in TO-THEME." |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1055 (apply 'custom-theme-reset-variables 'user args)) |
d77bc55dd27b
(custom-known-themes): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
48821
diff
changeset
|
1056 |
17334 | 1057 ;;; The End. |
1058 | |
18882
539611251037
(custom-declare-variable-list): Process already-declared
Richard M. Stallman <rms@gnu.org>
parents:
18033
diff
changeset
|
1059 ;; Process the defcustoms for variables loaded before this file. |
539611251037
(custom-declare-variable-list): Process already-declared
Richard M. Stallman <rms@gnu.org>
parents:
18033
diff
changeset
|
1060 (while custom-declare-variable-list |
539611251037
(custom-declare-variable-list): Process already-declared
Richard M. Stallman <rms@gnu.org>
parents:
18033
diff
changeset
|
1061 (apply 'custom-declare-variable (car custom-declare-variable-list)) |
539611251037
(custom-declare-variable-list): Process already-declared
Richard M. Stallman <rms@gnu.org>
parents:
18033
diff
changeset
|
1062 (setq custom-declare-variable-list (cdr custom-declare-variable-list))) |
539611251037
(custom-declare-variable-list): Process already-declared
Richard M. Stallman <rms@gnu.org>
parents:
18033
diff
changeset
|
1063 |
17334 | 1064 (provide 'custom) |
1065 | |
25683 | 1066 ;;; custom.el ends here |