]> code.delx.au - gnu-emacs/blobdiff - lisp/info.el
*** empty log message ***
[gnu-emacs] / lisp / info.el
index 07304eabb052720289c7868746c9116673c6ea3d..560c6bfc7c12894878cd266639eeb7ff755334e7 100644 (file)
@@ -1192,18 +1192,22 @@ If FORK is a string, it is the name to use for the new buffer."
                                      (progn (search-forward "\n\^_")
                                             (1- (point))))
                    (goto-char (point-min))
+                   ;; Find the subfile we just searched.
                    (search-forward (concat "\n" osubfile ": "))
-                   (beginning-of-line)
+                   ;; Skip that one.
+                   (forward-line 1)
+                   ;; Make a list of all following subfiles.
+                   ;; Each elt has the form (VIRT-POSITION . SUBFILENAME).
                    (while (not (eobp))
                      (re-search-forward "\\(^.*\\): [0-9]+$")
                      (goto-char (+ (match-end 1) 2))
-                     (setq list (cons (cons (read (current-buffer))
+                     (setq list (cons (cons (+ (point-min)
+                                               (read (current-buffer)))
                                             (match-string-no-properties 1))
                                       list))
                      (goto-char (1+ (match-end 0))))
-                   (setq list (nreverse list)
-                         current (car (car list))
-                         list (cdr list))))
+                   ;; Put in forward order
+                   (setq list (nreverse list))))
                (while list
                  (message "Searching subfile %s..." (cdr (car list)))
                  (Info-read-subfile (car (car list)))
@@ -1941,7 +1945,7 @@ Give a blank topic name to go to the Index node itself."
                                (regexp-quote name)) nil t)
            ;; Find a function definition with a return type.
            (re-search-forward (format
-                                "[a-zA-Z]+: [a-zA-Z0-9_]+ %s\\( \\|$\\)"
+                                "[a-zA-Z]+: [a-zA-Z0-9_ *&]+ %s\\( \\|$\\)"
                                 (regexp-quote name)) nil t)
            (search-forward (format "`%s'" name) nil t)
            (and (string-match "\\`.*\\( (.*)\\)\\'" name)
@@ -2348,6 +2352,7 @@ Advanced commands:
   (make-local-variable 'line-move-ignore-invisible)
   (setq line-move-ignore-invisible t)
   (add-hook 'clone-buffer-hook 'Info-clone-buffer-hook nil t)
+  (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
   (Info-set-mode-line)
   (run-hooks 'Info-mode-hook))