mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
(mh-path, mh-variant): Define with mh-defcustom and add
:package-version keyword.
This commit is contained in:
parent
122c30092c
commit
fde155f459
2 changed files with 63 additions and 56 deletions
|
|
@ -1,3 +1,8 @@
|
|||
2006-04-07 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (mh-path, mh-variant): Define with mh-defcustom and add
|
||||
:package-version keyword.
|
||||
|
||||
2006-03-31 Bill Wohler <wohler@newt.com>
|
||||
|
||||
* mh-e.el (mh-strip-package-version): Move before use to avoid
|
||||
|
|
|
|||
|
|
@ -644,13 +644,66 @@ Set mark after inserted text."
|
|||
|
||||
|
||||
|
||||
;;; MH-E Customization Support Routines
|
||||
|
||||
;; Shush compiler (Emacs 21 and XEmacs).
|
||||
(defvar customize-package-emacs-version-alist)
|
||||
|
||||
;; Temporary function and data structure used customization.
|
||||
;; These will be unbound after the options are defined.
|
||||
(defmacro mh-strip-package-version (args)
|
||||
"Strip :package-version keyword and its value from ARGS.
|
||||
In Emacs versions that support the :package-version keyword,
|
||||
ARGS is returned unchanged."
|
||||
`(if (boundp 'customize-package-emacs-version-alist)
|
||||
,args
|
||||
(let (seen)
|
||||
(loop for keyword in ,args
|
||||
if (cond ((eq keyword ':package-version) (setq seen t) nil)
|
||||
(seen (setq seen nil) nil)
|
||||
(t t))
|
||||
collect keyword))))
|
||||
|
||||
(defmacro mh-defgroup (symbol members doc &rest args)
|
||||
"Declare SYMBOL as a customization group containing MEMBERS.
|
||||
See documentation for `defgroup' for a description of the arguments
|
||||
SYMBOL, MEMBERS, DOC and ARGS.
|
||||
This macro is used by Emacs versions that lack the :package-version
|
||||
keyword, introduced in Emacs 22."
|
||||
(declare (doc-string 3))
|
||||
`(defgroup ,symbol ,members ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defgroup 'lisp-indent-function 'defun)
|
||||
|
||||
(defmacro mh-defcustom (symbol value doc &rest args)
|
||||
"Declare SYMBOL as a customizable variable that defaults to VALUE.
|
||||
See documentation for `defcustom' for a description of the arguments
|
||||
SYMBOL, VALUE, DOC and ARGS.
|
||||
This macro is used by Emacs versions that lack the :package-version
|
||||
keyword, introduced in Emacs 22."
|
||||
(declare (doc-string 3))
|
||||
`(defcustom ,symbol ,value ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defcustom 'lisp-indent-function 'defun)
|
||||
|
||||
(defmacro mh-defface (face spec doc &rest args)
|
||||
"Declare FACE as a customizable face that defaults to SPEC.
|
||||
See documentation for `defface' for a description of the arguments
|
||||
FACE, SPEC, DOC and ARGS.
|
||||
This macro is used by Emacs versions that lack the :package-version
|
||||
keyword, introduced in Emacs 22."
|
||||
(declare (doc-string 3))
|
||||
`(defface ,face ,spec ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defface 'lisp-indent-function 'defun)
|
||||
|
||||
|
||||
|
||||
;;; Variant Support
|
||||
|
||||
(defcustom mh-path nil
|
||||
(mh-defcustom mh-path nil
|
||||
"*Additional list of directories to search for MH.
|
||||
See `mh-variant'."
|
||||
:group 'mh-e
|
||||
:type '(repeat (directory)))
|
||||
:type '(repeat (directory))
|
||||
:package-version '(MH-E "8.0"))
|
||||
|
||||
(defun mh-variants ()
|
||||
"Return a list of installed variants of MH on the system.
|
||||
|
|
@ -859,7 +912,7 @@ finally GNU mailutils."
|
|||
(mapconcat '(lambda (x) (format "%s" (car x)))
|
||||
(mh-variants) " or "))))))
|
||||
|
||||
(defcustom mh-variant 'autodetect
|
||||
(mh-defcustom mh-variant 'autodetect
|
||||
"*Specifies the variant used by MH-E.
|
||||
|
||||
The default setting of this option is \"Auto-detect\" which means
|
||||
|
|
@ -884,59 +937,8 @@ necessary and can actually cause problems."
|
|||
:set (lambda (symbol value)
|
||||
(set-default symbol value) ;Done in mh-variant-set-variant!
|
||||
(mh-variant-set value))
|
||||
:group 'mh-e)
|
||||
|
||||
|
||||
|
||||
;;; MH-E Customization Support Routines
|
||||
|
||||
;; Shush compiler (Emacs 21 and XEmacs).
|
||||
(defvar customize-package-emacs-version-alist)
|
||||
|
||||
;; Temporary function and data structure used customization.
|
||||
;; These will be unbound after the options are defined.
|
||||
(defmacro mh-strip-package-version (args)
|
||||
"Strip :package-version keyword and its value from ARGS.
|
||||
In Emacs versions that support the :package-version keyword,
|
||||
ARGS is returned unchanged."
|
||||
`(if (boundp 'customize-package-emacs-version-alist)
|
||||
,args
|
||||
(let (seen)
|
||||
(loop for keyword in ,args
|
||||
if (cond ((eq keyword ':package-version) (setq seen t) nil)
|
||||
(seen (setq seen nil) nil)
|
||||
(t t))
|
||||
collect keyword))))
|
||||
|
||||
(defmacro mh-defgroup (symbol members doc &rest args)
|
||||
"Declare SYMBOL as a customization group containing MEMBERS.
|
||||
See documentation for `defgroup' for a description of the arguments
|
||||
SYMBOL, MEMBERS, DOC and ARGS.
|
||||
This macro is used by Emacs versions that lack the :package-version
|
||||
keyword, introduced in Emacs 22."
|
||||
(declare (doc-string 3))
|
||||
`(defgroup ,symbol ,members ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defgroup 'lisp-indent-function 'defun)
|
||||
|
||||
(defmacro mh-defcustom (symbol value doc &rest args)
|
||||
"Declare SYMBOL as a customizable variable that defaults to VALUE.
|
||||
See documentation for `defcustom' for a description of the arguments
|
||||
SYMBOL, VALUE, DOC and ARGS.
|
||||
This macro is used by Emacs versions that lack the :package-version
|
||||
keyword, introduced in Emacs 22."
|
||||
(declare (doc-string 3))
|
||||
`(defcustom ,symbol ,value ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defcustom 'lisp-indent-function 'defun)
|
||||
|
||||
(defmacro mh-defface (face spec doc &rest args)
|
||||
"Declare FACE as a customizable face that defaults to SPEC.
|
||||
See documentation for `defface' for a description of the arguments
|
||||
FACE, SPEC, DOC and ARGS.
|
||||
This macro is used by Emacs versions that lack the :package-version
|
||||
keyword, introduced in Emacs 22."
|
||||
(declare (doc-string 3))
|
||||
`(defface ,face ,spec ,doc ,@(mh-strip-package-version args)))
|
||||
(put 'mh-defface 'lisp-indent-function 'defun)
|
||||
:group 'mh-e
|
||||
:package-version '(MH-E "8.0"))
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue