"Stephen J. Turnbull" <stephen(a)xemacs.org> writes:
Michael Sperber writes:
>
> "Stephen J. Turnbull" <stephen(a)xemacs.org> writes:
>
> > Michael Sperber writes:
> >
> > > +:package-version
> > > + VALUE should be a list with the form (PACKAGE . VERSION)
> > > + specifying that the variable was first introduced, or its
> > > + default value was changed, in PACKAGE version VERSION. This
> > > + keyword takes priority over :version. The PACKAGE and VERSION
> > > + must appear in the alist
`customize-package-emacs-version-alist'.
> >
> > Will an error be signaled if not? Where?
>
> No.
I hate Elisp (almost as bad as X) for being so shoddy about validating
arguments....
> > This really should document the format of VERSION.
>
> Yes, I was wondering about that, too, but the format seems to be
> unspecified in GNU Emacs, as well. Should we pick one?
No, I mean whether it's a cons or a string.
Ah, sorry: string.
I think that picking a format for either PACKAGE or VERSION is not
going to work. Just let them be strings and we'll deal with
inconsistencies in `customize-package-emacs-version-alist' if and when
it ever bugs somebody.
OK. Revised patch attached. Will commit Wednesday if there's no
objection.
--
Regards,
Mike
diff --git a/lisp/custom.el b/lisp/custom.el
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -274,6 +274,17 @@
VALUE should be a string specifying that the variable was
first introduced, or its default value was changed, in Emacs
version VERSION.
+:package-version
+ VALUE should be a list with the form (PACKAGE . VERSION),
+ where PACKAGE and VERSION are strings.
+
+ This specifies that the variable was first introduced, or its
+ default value was changed, in PACKAGE version VERSION. This
+ keyword takes priority over :version.
+
+ Since PACKAGE must be unique and the user might see it in an
+ error message, a good choice is the official name of the
+ package, such as MH-E or Gnus.
:tag LABEL
Use LABEL, a string, instead of the item's name, to label the item
in customization menus and buffers.
@@ -458,6 +469,8 @@
(custom-add-to-group value symbol type))
((eq keyword :version)
(custom-add-version symbol value))
+ ((eq keyword :package-version)
+ (custom-add-package-version symbol value))
((eq keyword :link)
(custom-add-link symbol value))
((eq keyword :load)
@@ -507,6 +520,14 @@
"To the custom option SYMBOL add the version VERSION."
(put symbol 'custom-version version))
+(defun custom-add-package-version (symbol version)
+ "To the custom option SYMBOL add the package version VERSION."
+ (unless (and (consp version)
+ (stringp (car version))
+ (stringp (cdr version)))
+ (error "Invalid package version `%s'" value))
+ (put symbol 'custom-package-version version))
+
(defun custom-add-load (symbol load)
"To the custom option SYMBOL add the dependency LOAD.
LOAD should be either a library file name, or a feature name."
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches