# HG changeset patch # User Miles Bader # Date 1004597972 0 # Node ID 3ba2b666d7e1b19ab754c325eba4f1e54b6ef53a # Parent 171532c543b3165b9f9abe503acaeaeb4386eb80 (define-button-type): Make sure every user-defined button type has a supertype. diff -r 171532c543b3 -r 3ba2b666d7e1 lisp/button.el --- a/lisp/button.el Thu Nov 01 06:26:56 2001 +0000 +++ b/lisp/button.el Thu Nov 01 06:59:32 2001 +0000 @@ -121,12 +121,12 @@ button-type from which NAME inherits its default property values \(however, the inheritance happens only when NAME is defined; subsequent changes to a supertype are not reflected in its subtypes)." - (let* ((catsym (make-symbol (concat (symbol-name name) "-button"))) - (supertype + (let ((catsym (make-symbol (concat (symbol-name name) "-button"))) + (super-catsym + (button-category-symbol (or (plist-get properties 'supertype) - (plist-get properties :supertype))) - (super-catsym - (if supertype (button-category-symbol supertype) 'default-button))) + (plist-get properties :supertype) + 'button)))) ;; Provide a link so that it's easy to find the real symbol. (put name 'button-category-symbol catsym) ;; Initialize NAME's properties using the global defaults. @@ -142,6 +142,9 @@ (when (eq prop :supertype) (setq prop 'supertype)) (put catsym prop (pop properties)))) + ;; Make sure there's a `supertype' property + (unless (get catsym 'supertype) + (put catsym 'supertype 'button)) name)) (defun button-type-put (type prop val)