From: Eli Zaretskii Date: Wed, 16 Dec 1998 14:01:45 +0000 (+0000) Subject: (Info-find-node): Add 1 to the position read from the X-Git-Tag: emacs-20.4~1045 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ba42ce1405319d612e8a227d3bacb52f2574b5de;p=emacs.git (Info-find-node): Add 1 to the position read from the tag table. Don't fail if the node delimiter ^_ is the first character in the file. (Info-insert-dir): Don't fail when the node delimiter ^_ is the first character in the file. (Info-read-subfile): Likewise. (Info-select-node): Likewise. (Info-build-node-completions): Likewise. --- diff --git a/lisp/info.el b/lisp/info.el index 1febb4d1195..371849a4b87 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -474,7 +474,7 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." (setq found-in-tag-table (re-search-forward regexp nil t)) (if found-in-tag-table - (setq guesspos (read (current-buffer)))) + (setq guesspos (1+ (read (current-buffer))))) (setq found-mode major-mode)) ;; Indirect file among split files @@ -502,6 +502,15 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." ;; (or from beg of buffer) ;; to find the actual node. (catch 'foo + (if (and (eq (point) (point-min)) + (looking-at "\^_") + (= (forward-line 1) 0)) + (let ((beg (point))) + (forward-line 1) + (if (re-search-backward regexp beg t) + (progn + (beginning-of-line) + (throw 'foo t))))) (while (search-forward "\n\^_" nil t) (forward-line 1) (let ((beg (point))) @@ -517,6 +526,15 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." ;; Now search from our advised position (or from beg of buffer) ;; to find the actual node. (catch 'foo + (if (and (eq (point) (point-min)) + (looking-at "\^_") + (= (forward-line 1) 0)) + (let ((beg (point))) + (forward-line 1) + (if (re-search-backward regexp beg t) + (progn + (beginning-of-line) + (throw 'foo t))))) (while (search-forward "\n\^_" nil t) (forward-line 1) (let ((beg (point))) @@ -643,7 +661,9 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." (let (beg nodename end) (forward-line 1) (setq beg (point)) - (search-backward "\n\^_") + (or (search-backward "\n\^_" nil 'move) + (looking-at "\^_") + (signal 'search-failed (list "\n\^_"))) (search-forward "Node: ") (setq nodename (Info-following-node-name)) (search-forward "\n\^_" nil 'move) @@ -682,7 +702,7 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." (let ((nodename (car (car nodes)))) (goto-char (point-min)) ;; Find the like-named node in the main buffer. - (if (re-search-forward (concat "\n\^_.*\n.*Node: " + (if (re-search-forward (concat "^\^_.*\n.*Node: " (regexp-quote nodename) "[,\n\t]") nil t) @@ -719,7 +739,8 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." (save-excursion (set-buffer (marker-buffer Info-tag-table-marker)) (goto-char (point-min)) - (search-forward "\n\^_") + (or (looking-at "\^_") + (search-forward "\n\^_")) (forward-line 2) (catch 'foo (while (not (looking-at "\^_")) @@ -750,7 +771,9 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." (set-buffer-modified-p nil) (setq Info-current-subfile lastfilename))) (goto-char (point-min)) - (search-forward "\n\^_") + (if (looking-at "\^_") + (forward-char 1) + (search-forward "\n\^_")) (if (numberp nodepos) (+ (- nodepos lastfilepos) (point))))) @@ -760,8 +783,11 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." (let ((case-fold-search t)) (save-excursion ;; Find beginning of node. - (search-backward "\n\^_") - (forward-line 2) + (if (search-backward "\n\^_" nil 'move) + (forward-line 2) + (if (looking-at "\^_") + (forward-line 1) + (signal 'search-failed (list "\n\^_")))) ;; Get nodename spelled as it is in the node. (re-search-forward "Node:[ \t]*") (setq Info-current-node @@ -866,6 +892,15 @@ In standalone mode, \\\\[Info-exit] exits Emacs itself." compl)))) (widen) (goto-char (point-min)) + (if (and (looking-at "\^_") + (= (forward-line 1) 0)) + (let ((beg (point))) + (forward-line 1) + (if (re-search-backward "Node: *\\([^,\n]*\\) *[,\n\t]" + beg t) + (setq compl + (list (buffer-substring (match-beginning 1) + (match-end 1))))))) (while (search-forward "\n\^_" nil t) (forward-line 1) (let ((beg (point)))