1980 |
(if (match-beginning 5) |
(if (match-beginning 5) |
1981 |
(string-to-number (match-string 5)) |
(string-to-number (match-string 5)) |
1982 |
(buffer-substring (match-beginning 0) (1- (match-beginning 1))))) |
(buffer-substring (match-beginning 0) (1- (match-beginning 1))))) |
1983 |
;;; Comment out the next line to use names of cross-references: |
;;; Uncomment next line to use names of cross-references in non-index nodes: |
1984 |
;;; (setq Info-point-loc |
;;; (setq Info-point-loc |
1985 |
;;; (buffer-substring (match-beginning 0) (1- (match-beginning 1)))) |
;;; (buffer-substring (match-beginning 0) (1- (match-beginning 1)))) |
1986 |
) |
) |
3214 |
(message "Tags may have changed. Use Info-tagify if necessary"))) |
(message "Tags may have changed. Use Info-tagify if necessary"))) |
3215 |
|
|
3216 |
(defvar Info-file-list-for-emacs |
(defvar Info-file-list-for-emacs |
3217 |
'("ediff" "eudc" "forms" "gnus" "info" ("mh" . "mh-e") |
'("ediff" "eudc" "forms" "gnus" "info" ("Info" . "info") ("mh" . "mh-e") |
3218 |
"sc" "message" ("dired" . "dired-x") "viper" "vip" "idlwave" |
"sc" "message" ("dired" . "dired-x") "viper" "vip" "idlwave" |
3219 |
("c" . "ccmode") ("c++" . "ccmode") ("objc" . "ccmode") |
("c" . "ccmode") ("c++" . "ccmode") ("objc" . "ccmode") |
3220 |
("java" . "ccmode") ("idl" . "ccmode") ("pike" . "ccmode") |
("java" . "ccmode") ("idl" . "ccmode") ("pike" . "ccmode") |
3245 |
If COMMAND has no property, the variable `Info-file-list-for-emacs' |
If COMMAND has no property, the variable `Info-file-list-for-emacs' |
3246 |
defines heuristics for which Info manual to try. |
defines heuristics for which Info manual to try. |
3247 |
The locations are of the format used in `Info-history', i.e. |
The locations are of the format used in `Info-history', i.e. |
3248 |
\(FILENAME NODENAME BUFFERPOS\)." |
\(FILENAME NODENAME BUFFERPOS\), where BUFFERPOS is the line number |
3249 |
(let ((where '()) |
in the first element of the returned list (which is treated specially in |
3250 |
|
`Info-goto-emacs-command-node'), and 0 for the rest elements of a list." |
3251 |
|
(let ((where '()) line-number |
3252 |
(cmd-desc (concat "^\\* +" (regexp-quote (symbol-name command)) |
(cmd-desc (concat "^\\* +" (regexp-quote (symbol-name command)) |
3253 |
"\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\." |
"\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\." |
3254 |
"\\([ \t]*(line[ \t]*[0-9]*)\\)?$")) |
"\\(?:[ \t\n]+(line +\\([0-9]+\\))\\)?")) |
3255 |
(info-file "emacs")) ;default |
(info-file "emacs")) ;default |
3256 |
;; Determine which info file this command is documented in. |
;; Determine which info file this command is documented in. |
3257 |
(if (get command 'info-file) |
(if (get command 'info-file) |
3290 |
(cons (list Info-current-file |
(cons (list Info-current-file |
3291 |
(match-string-no-properties 2) |
(match-string-no-properties 2) |
3292 |
0) |
0) |
3293 |
where))) |
where)) |
3294 |
|
(setq line-number (and (match-beginning 3) |
3295 |
|
(string-to-number (match-string 3))))) |
3296 |
(and (setq nodes (cdr nodes) node (car nodes)))) |
(and (setq nodes (cdr nodes) node (car nodes)))) |
3297 |
(Info-goto-node node))) |
(Info-goto-node node))) |
3298 |
where)) |
(if (and line-number where) |
3299 |
|
(cons (list (nth 0 (car where)) (nth 1 (car where)) line-number) |
3300 |
|
(cdr where)) |
3301 |
|
where))) |
3302 |
|
|
3303 |
|
;;;###autoload (put 'Info-goto-emacs-command-node 'info-file "emacs") |
3304 |
;;;###autoload |
;;;###autoload |
3305 |
(defun Info-goto-emacs-command-node (command) |
(defun Info-goto-emacs-command-node (command) |
3306 |
"Go to the Info node in the Emacs manual for command COMMAND. |
"Go to the Info node in the Emacs manual for command COMMAND. |
3324 |
;; Bind Info-history to nil, to prevent the last Index node |
;; Bind Info-history to nil, to prevent the last Index node |
3325 |
;; visited by Info-find-emacs-command-nodes from being |
;; visited by Info-find-emacs-command-nodes from being |
3326 |
;; pushed onto the history. |
;; pushed onto the history. |
3327 |
(let ((Info-history nil) (Info-history-list nil)) |
(let ((Info-history nil) (Info-history-list nil) |
3328 |
(Info-find-node (car (car where)) |
(line-number (nth 2 (car where)))) |
3329 |
(car (cdr (car where))))) |
(Info-find-node (nth 0 (car where)) (nth 1 (car where))) |
3330 |
|
(if (and (integerp line-number) (> line-number 0)) |
3331 |
|
(forward-line (1- line-number)))) |
3332 |
(if (> num-matches 1) |
(if (> num-matches 1) |
3333 |
(progn |
(progn |
3334 |
;; (car where) will be pushed onto Info-history |
;; (car where) will be pushed onto Info-history |
3342 |
(if (> num-matches 2) "them" "it"))))) |
(if (> num-matches 2) "them" "it"))))) |
3343 |
(error "Couldn't find documentation for %s" command)))) |
(error "Couldn't find documentation for %s" command)))) |
3344 |
|
|
3345 |
|
;;;###autoload (put 'Info-goto-emacs-key-command-node 'info-file "emacs") |
3346 |
;;;###autoload |
;;;###autoload |
3347 |
(defun Info-goto-emacs-key-command-node (key) |
(defun Info-goto-emacs-key-command-node (key) |
3348 |
"Go to the node in the Emacs manual which describes the command bound to KEY. |
"Go to the node in the Emacs manual which describes the command bound to KEY. |