Function: hui:hbut-help
hui:hbut-help is an interactive and byte-compiled function defined in
hui.el.
Signature
(hui:hbut-help &optional BUT)
Documentation
Check for and explain an optional button given by symbol, BUT.
BUT defaults to the button whose label point is within.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hui.el
(defun hui:hbut-help (&optional but)
"Check for and explain an optional button given by symbol, BUT.
BUT defaults to the button whose label point is within."
(interactive)
(setq but (or but (hbut:at-p)
(hbut:get (hbut:label-to-key
(hargs:read-match "Help for button: "
(hbut:alist) nil t nil 'hbut)))))
(unless but
(hypb:error "(hbut-help): Move point to a valid Hyperbole button"))
(unless (hbut:is-p but)
(cond (but (hypb:error "(hbut-help): Invalid button"))
(t (hypb:error
"(hbut-help): Not on an implicit button and no buffer explicit buttons"))))
(let ((type-help-func (intern-soft
(concat
(htype:names 'ibtypes (hattr:get but 'categ))
":help"))))
(unless (equal (hypb:indirect-function 'hui:but-flash)
(lambda nil))
;; Only flash button if point is on it.
(let ((lbl-key (hattr:get but 'lbl-key))
lbl-start
lbl-end)
(and lbl-key
(or (equal lbl-key (ebut:label-p))
;; Matches only ibuts with named labels
(equal lbl-key (ibut:label-p))
;; If ibut text region specified, check that.
(progn
(setq lbl-start (hattr:get but 'lbl-start)
lbl-end (hattr:get but 'lbl-end))
(when (and lbl-start lbl-end)
(equal lbl-key
(buffer-substring-no-properties lbl-start lbl-end)))))
(hui:but-flash))))
(if (functionp type-help-func)
(funcall type-help-func but)
(let ((total (hbut:report but)))
(when total (hui:help-ebut-highlight))))
(or type-help-func 'hbut:report)))