Function: Info-handle-in-node-hdr

Info-handle-in-node-hdr is a byte-compiled function defined in hmouse-info.el.

Signature

(Info-handle-in-node-hdr)

Documentation

If within an Info node header on a label move to the corresponding node.

Move to <FILE>Top, <Up>, <Previous>, or <Next> node, depending on which label point is on, and return t. Otherwise, return nil.

Source Code

;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hmouse-info.el
;;; ************************************************************************
;;; Private functions - used only within Hyperbole
;;; ************************************************************************

(defun Info-handle-in-node-hdr ()
  "If within an Info node header on a label move to the corresponding node.
Move to <FILE>Top, <Up>, <Previous>, or <Next> node, depending on
which label point is on, and return t.  Otherwise, return nil."
  ;;
  ;; Test if on 1st line of node, i.e. node header
  ;;
  (when (first-line-p)
    (let ((nodename "Top")
	  filep)
      (save-excursion
	(if (and
	     (re-search-forward "[:, \t\n\r]" nil t)
	     (re-search-backward
	      "\\(File\\|Node\\|Up\\|Prev\\|Previous\\|Next\\):[ \t]" nil t))
	    (progn (setq filep (string-equal
				"file"
				(downcase (match-string-no-properties 1))))
		   (if (re-search-forward (concat ":[ \n\r]\\([^,\t\n\r"
						  (if filep " ")
						  "]*\\)") nil t)
		       (setq nodename (match-string-no-properties 1))))
	  (error "Node header not found")))
      (setq nodename
	    (cond ((eq (aref nodename 0) ?\() nodename)
		  (filep (concat "(" nodename ")" "Top"))
		  ((hypb:buffer-file-name)
		   (concat "(" (hypb:buffer-file-name) ")" nodename))
		  (t nodename)))
      (Info-goto-node nodename)
      t)))