X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/c1473b4cfeb477ced05d457868c5e1eb97a58eb0..599498c31f0ce7a3ffd6094a12a986766b5a694d:/lisp/info-look.el diff --git a/lisp/info-look.el b/lisp/info-look.el index e7ac5bd0d5..a061611aa9 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el @@ -2,7 +2,7 @@ ;; An older version of this was known as libc.el. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, -;; 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ;; Author: Ralph Schleicher ;; (did not show signs of life (Nov 2001) -stef) @@ -335,22 +335,23 @@ If optional argument QUERY is non-nil, query for the help mode." (cons (list Info-current-file Info-current-node (point)) Info-history)))) found doc-spec node prefix suffix doc-found) - (if (not (eq major-mode 'Info-mode)) - (if (not info-lookup-other-window-flag) - (info) - (progn - (save-window-excursion (info)) - ;; Determine whether or not the Info buffer is visible in - ;; another frame on the same display. If it is, simply raise - ;; that frame. Otherwise, display it in another window. - (let* ((window (get-buffer-window "*info*" t)) - (info-frame (and window (window-frame window)))) - (if (and info-frame - (display-multi-frame-p) - (memq info-frame (frames-on-display-list)) - (not (eq info-frame (selected-frame)))) - (select-frame info-frame) - (switch-to-buffer-other-window "*info*")))))) + (unless (eq major-mode 'Info-mode) + (if (not info-lookup-other-window-flag) + (info) + (save-window-excursion (info)) + (let* ((info-window (get-buffer-window "*info*" t)) + (info-frame (and info-window (window-frame info-window)))) + (if (and info-frame + (not (eq info-frame (selected-frame))) + (display-multi-frame-p) + (memq info-frame (frames-on-display-list))) + ;; *info* is visible in another frame on same display. + ;; Raise that frame and select the window. + (progn + (select-window info-window) + (raise-frame info-frame)) + ;; In any other case, switch to *info* in another window. + (switch-to-buffer-other-window "*info*"))))) (while (and (not found) modes) (setq doc-spec (info-lookup->doc-spec topic (car modes))) (while (and (not found) doc-spec) @@ -755,12 +756,15 @@ Return nil if there is nothing appropriate in the buffer near point." ;; M4 Macro Index entries are without "AS_" prefixes, and ;; mostly without "m4_" prefixes. "dnl" is an exception, not ;; wanting any prefix. So AS_ is added back to upper-case - ;; names, m4_ to others which don't already an m4_. + ;; names (if needed), m4_ to others which don't already an m4_. ("(autoconf)M4 Macro Index" (lambda (item) (let ((case-fold-search nil)) (cond ((or (string-equal item "dnl") - (string-match "^m4_" item)) + (string-match "^m4_" item) + ;; Autoconf 2.62 index includes some macros + ;; (e.g., AS_HELP_STRING), so avoid prefixing. + (string-match "^AS_" item)) item) ((string-match "^[A-Z0-9_]+$" item) (concat "AS_" item))