# HG changeset patch # User Nick Roberts # Date 1113561309 0 # Node ID 2e1a9a226cee51fbdc31122853cd897a909ee356 # Parent 29ab534fa991f045222934d9ae053c736a987341 (gud-goto-info): Use existing Info buffer, if possible. diff -r 29ab534fa991 -r 2e1a9a226cee lisp/progmodes/gud.el --- a/lisp/progmodes/gud.el Fri Apr 15 10:33:50 2005 +0000 +++ b/lisp/progmodes/gud.el Fri Apr 15 10:35:09 2005 +0000 @@ -89,16 +89,27 @@ (defvar gud-running nil "Non-nil if debuggee is running. -Used to grey out relevant toolbar icons.") - +Used to grey out relevant togolbar icons.") + +;; Use existing Info buffer, if possible. (defun gud-goto-info () "Go to relevant Emacs info node." (interactive) - (select-frame (make-frame)) - (require 'info) - (if (memq gud-minor-mode '(gdbmi gdba)) - (Info-goto-node "(emacs)GDB Graphical Interface") - (Info-goto-node "(emacs)Debuggers"))) + (let ((same-window-regexps same-window-regexps) + (display-buffer-reuse-frames t)) + (catch 'info-found + (walk-windows + '(lambda (window) + (if (eq (window-buffer window) (get-buffer "*info*")) + (progn + (setq same-window-regexps nil) + (throw 'info-found nil)))) + nil 0) + (require 'info) + (select-frame (make-frame))) + (if (memq gud-minor-mode '(gdbmi gdba)) + (Info-goto-node "(emacs)GDB Graphical Interface") + (Info-goto-node "(emacs)Debuggers")))) (easy-mmode-defmap gud-menu-map '(([help] "Info" . gud-goto-info)