X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=lisp%2Fhelp.el;h=85906380c4ad22c8d1cd69d66c0b1d1763a86cef;hp=5f43c0c8834a0b7beb190c58199fa5d34a1c2f22;hb=72a705551741d6f85a40eea486c222bac482d8dc;hpb=fb022c5b8ea6aca36b9661a6b2707afdd07e4c05 diff --git a/lisp/help.el b/lisp/help.el index 5f43c0c..8590638 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1416,4 +1416,25 @@ after the listing is made.)" (if cmd (princ " "))))) (terpri)))))) +;; Stop gap for 21.0 untill we do help-char etc properly. +(defun help-keymap-with-help-key (keymap form) + "Return a copy of KEYMAP with an help-key binding according to help-char + invoking FORM like help-form. An existing binding is not overridden. + If FORM is nil then no binding is made." + (let ((map (copy-keymap keymap)) + (key (if (characterp help-char) + (vector (character-to-event help-char)) + help-char))) + (when (and form key (not (lookup-key map key))) + (define-key map key + `(lambda () (interactive) (help-print-help-form ,form)))) + map)) + +(defun help-print-help-form (form) + (let ((string (eval form))) + (if (stringp string) + (with-displaying-help-buffer + (insert string))))) + + ;;; help.el ends here