
(defun smart-info nil "\
Walks through Info documentation networks using one key or mouse key.

If key is pressed within:
 (1) the first line of an Info Menu Entry or Cross Reference, the desired node
       is found;
 (2) the Up,Next,or Previous entries of a Node Header (first line),
       the desired node is found;
 (3) the File entry of a Node Header (first line),       
       the 'Top' node within that file is found;
 (4) at the end of the current node, the Next node is found (this will
     descend subtrees if the function 'Info-global-next' is bound);
 (5) anywhere else (e.g. at the end of a line), the current node entry is
       scrolled up one screen

Returns t if key is pressed within an Info Node Header, Cross Reference,
or a Menu; otherwise returns nil." (interactive) (byte-code "À ƒ ÁÂ!ƒ Â ‚ Ã ‚< Ä †< Å †< Æ †< Çd!ƒ: ÁÂ!ƒ5 Â ‚7 Ã ‚< È ‡" [last-line-p fboundp Info-global-next Info-next Info-handle-in-node-hdr Info-handle-in-note Info-handle-in-menu pos-visible-in-window-p scroll-up-eol] 14))

(defun smart-info-meta nil "\
Walks through Info documentation networks using one meta-key or mouse meta-key.

If meta-key is pressed within:
 (1) the first line of an Info Menu Entry or Cross Reference, the desired node
       is found;
 (2) the Up,Next,or Previous entries of a Node Header (first line),
       the last node in the history list is found;
 (3) the File entry of a Node Header (first line),       
       the 'DIR' root-level node is found;
 (4) at the end of the current node, the Previous node is found (this will
       return from subtrees if the function 'Info-global-prev is bound);
 (5) anywhere else (e.g. at the end of a line), the current node entry is
       scrolled down one screen

Returns t if meta-key is pressed within an Info Node Header, Cross Reference,
or a Menu; otherwise returns nil." (interactive) (byte-code "À ƒ ÁÂ!ƒ Â ‚ Ã ‚< Ä †< Å †< Æ †< Çe!ƒ: ÁÂ!ƒ5 Â ‚7 Ã ‚< È ‡" [last-line-p fboundp Info-global-prev Info-prev Info-handle-in-node-hdr-meta Info-handle-in-note Info-handle-in-menu pos-visible-in-window-p scroll-down-eol] 14))

(defun Info-handle-in-node-hdr nil "\
If within an Info node header, move to <FILE>Top, <Up>, <Previous>, or
<Next> node, depending on which label point is on, and return t.
Otherwise, return nil." (byte-code "Å ?ƒ
 À‚~ ÆÀŠÇÈÀÃ#… ÉÊÀÃ#ƒK ËÌÍÎÏÐ!ÑÐ!\"!\"‰ˆÇÒ
…6 ÓÔQÀÃ#…H ÎÏÐ!ÑÐ!\"‰‚N ÕÖ!)ˆ	×HØUƒ\\ 	‚u 
ƒh Ù	ÚÆR‚u ƒt ÙÚ	R‚u 	‰ˆÛ	!ˆÃ*‡" [nil nodename filep t buffer-file-name first-line-p "Top" re-search-forward "[:, 	
]" re-search-backward "\\(File\\|Node\\|Up\\|Prev\\|Previous\\|Next\\):[ 	]" string-equal "file" downcase buffer-substring match-beginning 1 match-end ":[ 
]\\([^,	
" " " "]*\\)" error "Node header not found." 0 40 "(" ")" Info-goto-node] 17))

(defun Info-handle-in-node-hdr-meta nil "\
If within an Info node header when the 'smart-info-meta' command is
executed, when within the <FILE> header go to the DIR top-level node.  When
within any other header (<Up>, <Previous>, or <Next>) go to last node from
history list.  Return t if in Info node header.  Otherwise return nil." (byte-code "Â ?ƒ
 À‚= ŠÃÄÀÁ#… ÅÆÀÁ#ƒ7 ÇÈÉÊËÌ!ÍÌ!\"!\"ƒ0 Î ‚2 Ï ˆÁ‚< ÐÑ!ˆÀ)‡" [nil t first-line-p re-search-forward "[:, 	
]" re-search-backward "\\(File\\|Node\\|Up\\|Prev\\|Previous\\|Next\\):[ 	]" string-equal "file" downcase buffer-substring match-beginning 1 match-end Info-directory Info-last error "Node header not found."] 12))

(defun Info-handle-in-note nil "\
Follows an Info cross-reference.
If point is within the first line of an Info note (cross-reference), follows
cross-reference and returns t; otherwise returns nil." (byte-code "ÄÄ`ŠÅ ˆ`‰ˆÆ ˆÇÈ	Ã#…\" `
X…\" ÉÊ!…3 ËÌÍÎÏ!ÐÏ!\"Ñ#‰)ˆ…> Ò!ˆÃ+‡" [note-name bol opoint t nil beginning-of-line end-of-line re-search-backward "*\\(Note\\|Ref\\)\\([ 	]+\\|$\\)" looking-at "*\\(Note\\|Ref\\)[ 	
]+\\([^:]*\\):" hypb:replace-match-string "[ 
	]+" buffer-substring match-beginning 2 match-end " " Info-follow-reference] 11))

(defun Info-handle-in-menu nil "\
Displays node referred to by an Info Menu Entry.
If point is within an Info menu entry, goes to node referenced by
entry and returns t; otherwise returns nil." (byte-code "Â`ŠebˆÄÅÂÃ#… `	W‰)ˆ?ƒ  Â‚5 Æ ˆÇÈÂÃ#…3 ÆÉ!ˆÊË !ˆÃ*‡" [in-menu curr-point nil t search-forward "
* menu:" forward-char search-backward "
*" 2 Info-goto-node Info-extract-menu-node-name] 7))

(provide (quote hmous-info))
