(symbol (when (stringp string) (intern string)))
(title (cond
((not (symbolp symbol)) nil)
- ((fboundp symbol) "Function")
- ((and (boundp symbol) (not (keywordp symbol))) "Variable")
- ((facep symbol) "Face"))))
+ ((and (facep symbol) (not (fboundp symbol)))
+ "Face")
+ ((and (fboundp symbol) (boundp symbol)
+ (memq symbol minor-mode-list))
+ "Mode")
+ ((and (fboundp symbol)
+ (not (or (boundp symbol) (facep symbol))))
+ "Function")
+ ((and (boundp symbol)
+ (not (or (fboundp symbol) (facep symbol))))
+ "Variable")
+ ((or (fboundp symbol) (boundp symbol) (facep symbol))
+ "Symbol"))))
(when title
(define-key-after menu [describe-symbol]
`(menu-item (format "Describe %s" ,title)