Function: smart-man-entry-ref
smart-man-entry-ref is an interactive and byte-compiled function
defined in hui-mouse.el.
Signature
(smart-man-entry-ref)
Documentation
Return form which displays referenced manual entry that point is on or nil.
Handles references in sections: NAME, SEE ALSO, or PACKAGES USED. Also can
display C routine definitions selected in a man page, see
smart-man-c-routine-ref.
Man page buffer must either have an attached file or else a man-path
local variable containing its pathname.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hui-mouse.el
(defun smart-man-entry-ref ()
"Return form which displays referenced manual entry that point is on or nil.
Handles references in sections: NAME, SEE ALSO, or PACKAGES USED. Also can
display C routine definitions selected in a man page, see
`smart-man-c-routine-ref'.
Man page buffer must either have an attached file or else a `man-path'
local variable containing its pathname."
(interactive)
(let ((ref ""))
(if (not (or (if (string-match "Manual Entry\\|\\*man "
(buffer-name (current-buffer)))
(progn (and (boundp 'man-path) man-path
(setq ref (hpath:symlink-referent man-path)))
t))
(if (hypb:buffer-file-name)
(string-match "/man/" (setq ref (hpath:symlink-referent
(hypb:buffer-file-name)))))))
(setq ref nil)
(or (setq ref (or (smart-man-file-ref)
(smart-man-c-routine-ref)))
(save-excursion
(let ((opoint (point))
(case-fold-search))
(and
(re-search-backward "^[.A-Z]" nil t)
(looking-at
"\\(\\.SH[ \t]+\\)?\\(SEE ALSO\\|NAME\\|PACKAGES USED\\)")
(progn (goto-char opoint)
(skip-chars-backward "-_a-zA-Z0-9?.(")
(let ((start (point)))
(skip-chars-forward "-_a-zA-Z0-9?.()")
(setq ref (buffer-substring start (point)))
;; Leave only one char within ref parens
(if ref
(if (string-match "(\\(.\\)\\(.+\\))" ref)
(setq ref (concat (substring ref 0 (match-end 1))
"\)")))))))))))
(cond ((equal ref "") nil)
((stringp ref) (list 'manual-entry ref))
(t ref))))