diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1a997152194..50ae33a7d6e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,33 @@ +2011-09-10 Chong Yidong + + * buff-menu.el (Buffer-menu-switch-other-window): Use second arg + of display-buffer. + (Buffer-menu-2-window): Use switch-to-buffer-other-window. + + * replace.el (occur-mode-goto-occurrence) + (occur-mode-display-occurrence) Use second arg of pop-to-buffer + and display-buffer. + + * mail/reporter.el (reporter-submit-bug-report): Use second arg of + display-buffer. + + * mail/sendmail.el (sendmail-user-agent-compose): Don't bind the + special-display and same-window variables. + (mail-other-window): Use switch-to-buffer-other-window. + (mail-other-frame): USe switch-to-buffer-other-frame. + + * progmodes/gdb-mi.el (gdb-frame-gdb-buffer): Use + display-buffer-other-frame. + (gdb-display-gdb-buffer): Use pop-to-buffer. + + * progmodes/gud.el (gud-goto-info): Use info-other-window. + + * progmodes/python.el: Don't set same-window-buffer-names. + + * textmodes/bibtex.el (bibtex-search-entry): Use switch-to-buffer. + + * window.el (display-buffer-alist): Add *Python*. + 2011-09-10 Chong Yidong * window.el (display-buffer-alist): Add entry for buffers diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 2be74cf5efb..d757453c051 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -586,22 +586,16 @@ in the selected frame." "Make the other window select this line's buffer. The current window remains selected." (interactive) - (let ((pop-up-windows t) - same-window-buffer-names - same-window-regexps) - (display-buffer (Buffer-menu-buffer t)))) + (display-buffer (Buffer-menu-buffer t) t)) (defun Buffer-menu-2-window () "Select this line's buffer, with previous buffer in second window." (interactive) (let ((buff (Buffer-menu-buffer t)) - (menu (current-buffer)) - (pop-up-windows t) - same-window-buffer-names - same-window-regexps) + (menu (current-buffer))) (delete-other-windows) (switch-to-buffer (other-buffer)) - (pop-to-buffer buff) + (switch-to-buffer-other-window buff) (bury-buffer menu))) (defun Buffer-menu-toggle-read-only () diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el index 45700d4d60d..6c5448aca83 100644 --- a/lisp/mail/reporter.el +++ b/lisp/mail/reporter.el @@ -332,12 +332,11 @@ mail-sending package is used for editing and sending the message." hookvar) ;; do the work (require 'sendmail) + ;; Just in case the original buffer is not visible now, bring it + ;; back somewhere + (display-buffer reporter-eval-buffer) ;; If mailbuf did not get made visible before, make it visible now. - (let (same-window-buffer-names same-window-regexps) - (pop-to-buffer mailbuf) - ;; Just in case the original buffer is not visible now, bring it - ;; back somewhere - (and pop-up-windows (display-buffer reporter-eval-buffer))) + (pop-to-buffer mailbuf) (goto-char (point-min)) (mail-position-on-field "to") (insert address) diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 4dc96176256..6e5c9a6b257 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -565,11 +565,7 @@ To change your decision later, customize `send-mail-function'.\n") send-actions return-action &rest ignored) (if switch-function - (let ((special-display-buffer-names nil) - (special-display-regexps nil) - (same-window-buffer-names nil) - (same-window-regexps nil)) - (funcall switch-function "*mail*"))) + (funcall switch-function "*mail*")) (let ((cc (cdr (assoc-string "cc" other-headers t))) (in-reply-to (cdr (assoc-string "in-reply-to" other-headers t))) (body (cdr (assoc-string "body" other-headers t)))) @@ -1966,24 +1962,14 @@ you can move to one of them and type C-c C-c to recover that one." (defun mail-other-window (&optional noerase to subject in-reply-to cc replybuffer sendactions) "Like `mail' command, but display mail buffer in another window." (interactive "P") - (let ((pop-up-windows t) - (special-display-buffer-names nil) - (special-display-regexps nil) - (same-window-buffer-names nil) - (same-window-regexps nil)) - (pop-to-buffer "*mail*")) + (switch-to-buffer-other-window "*mail*") (mail noerase to subject in-reply-to cc replybuffer sendactions)) ;;;###autoload (defun mail-other-frame (&optional noerase to subject in-reply-to cc replybuffer sendactions) "Like `mail' command, but display mail buffer in another frame." (interactive "P") - (let ((pop-up-frames t) - (special-display-buffer-names nil) - (special-display-regexps nil) - (same-window-buffer-names nil) - (same-window-regexps nil)) - (pop-to-buffer "*mail*")) + (switch-to-buffer-other-frame "*mail*") (mail noerase to subject in-reply-to cc replybuffer sendactions)) ;; Do not add anything but external entries on this page. diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index cd891a8df60..619c423902c 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -2408,9 +2408,8 @@ and overlay is highlighted between MK and END-MK." ;; also do this while we change buffer (compilation-set-window w msg) compilation-highlight-regexp))) - ;; Ideally, the window-size should be passed to `display-buffer' (via - ;; something like special-display-buffer) so it's only used when - ;; creating a new window. + ;; Ideally, the window-size should be passed to `display-buffer' + ;; so it's only used when creating a new window. (unless pre-existing (compilation-set-window-height w)) (if from-compilation-buffer diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 87209a78ffb..d55a9eed3f0 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -3980,18 +3980,12 @@ SPLIT-HORIZONTAL and show BUF in the new window." (defun gdb-frame-gdb-buffer () "Display GUD buffer in a new frame." (interactive) - (let ((special-display-regexps (append special-display-regexps '(".*"))) - (special-display-frame-alist - (remove '(menu-bar-lines) (remove '(tool-bar-lines) - gdb-frame-parameters))) - (same-window-regexps nil)) - (display-buffer gud-comint-buffer))) + (display-buffer-other-frame gud-comint-buffer)) (defun gdb-display-gdb-buffer () "Display GUD buffer." (interactive) - (let ((same-window-regexps nil)) - (select-window (display-buffer gud-comint-buffer nil 0)))) + (pop-to-buffer gud-comint-buffer nil 0)) (defun gdb-set-window-buffer (name &optional ignore-dedicated window) "Set buffer of selected window to NAME and dedicate window. diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 3c7addee3b8..534082544b6 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -112,20 +112,9 @@ Used to grey out relevant toolbar icons.") (defun gud-goto-info () "Go to relevant Emacs info node." (interactive) - (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) - (select-frame (make-frame))) - (if (eq gud-minor-mode 'gdbmi) - (info "(emacs)GDB Graphical Interface") - (info "(emacs)Debuggers")))) + (if (eq gud-minor-mode 'gdbmi) + (info-other-window "(emacs)GDB Graphical Interface") + (info-other-window "(emacs)Debuggers"))) (defun gud-tool-bar-item-visible-no-fringe () (not (or (eq (buffer-local-value 'major-mode (window-buffer)) 'speedbar-mode) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 3f923f496b9..38bf9552b2a 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -86,7 +86,6 @@ (add-to-list 'interpreter-mode-alist (cons (purecopy "python") 'python-mode)) ;;;###autoload (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode)) -(add-to-list 'same-window-buffer-names (purecopy "*Python*")) ;;;; Font lock diff --git a/lisp/replace.el b/lisp/replace.el index fb98a714dff..ee430fd9855 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -928,7 +928,7 @@ To return to ordinary Occur mode, use \\[occur-mode]." (defalias 'occur-mode-mouse-goto 'occur-mode-goto-occurrence) (defun occur-mode-goto-occurrence (&optional event) - "Go to the occurrence the current line describes." + "Go to the occurrence on the current line." (interactive (list last-nonmenu-event)) (let ((pos (if (null event) @@ -939,10 +939,8 @@ To return to ordinary Occur mode, use \\[occur-mode]." (with-current-buffer (window-buffer (posn-window (event-end event))) (save-excursion (goto-char (posn-point (event-end event))) - (occur-mode-find-occurrence))))) - same-window-buffer-names - same-window-regexps) - (pop-to-buffer (marker-buffer pos)) + (occur-mode-find-occurrence)))))) + (pop-to-buffer (marker-buffer pos) t) (goto-char pos) (run-hooks 'occur-mode-find-occurrence-hook))) @@ -958,11 +956,8 @@ To return to ordinary Occur mode, use \\[occur-mode]." "Display in another window the occurrence the current line describes." (interactive) (let ((pos (occur-mode-find-occurrence)) - window - ;; Bind these to ensure `display-buffer' puts it in another window. - same-window-buffer-names - same-window-regexps) - (setq window (display-buffer (marker-buffer pos))) + window) + (setq window (display-buffer (marker-buffer pos) t)) ;; This is the way to set point in the proper window. (save-selected-window (select-window window) diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 0383251523f..3efb2f158c0 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el @@ -4038,10 +4038,8 @@ A prefix arg negates the value of `bibtex-search-entry-globally'." ;; `bibtex-search-entry' moves point if key found (setq found (bibtex-search-entry key))))) (cond ((and found display) - (let ((same-window-buffer-names - (cons (buffer-name buffer) same-window-buffer-names))) - (pop-to-buffer buffer) - (bibtex-reposition-window))) + (switch-to-buffer buffer) + (bibtex-reposition-window)) (found (set-buffer buffer)) (display (message "Key `%s' not found" key))) found) diff --git a/lisp/window.el b/lisp/window.el index 2afd608907d..72cad635ab5 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4499,8 +4499,9 @@ BUFFER-OR-NAME and return that buffer." (current-buffer))) (defvar display-buffer-alist - '(("\\`\\*\\(scheme\\|ielm\\|shell\\|\\(unsent \\)?mail\\|inferior-lisp\ -\\|Customiz.*\\|info\\|rlogin-.*\\|telnet-.*\\|rsh-.*\\|gud-.*\\)\\*\\(<[0-9]+>\\)?" + '(("\\`\\*\\(scheme\\|ielm\\|shell\\|\\(unsent \\)?mail\\|\ +inferior-lisp\\|Python\\|Customiz.*\\|info\\|rlogin-.*\\|\ +telnet-.*\\|rsh-.*\\|gud-.*\\)\\*\\(<[0-9]+>\\)?" . (display-buffer-same-window))) "Alist of conditional actions for `display-buffer'. This is a list of elements (CONDITION . ACTION), where: @@ -4565,7 +4566,7 @@ the same form as ALIST. See `display-buffer' for details.") (put 'display-buffer--other-frame-action 'risky-local-variable t) (defun display-buffer (&optional buffer-or-name action frame) - "Display BUFFER-OR-NAME in some window. + "Display BUFFER-OR-NAME in some window, without selecting it. BUFFER-OR-NAME must be a buffer or the name of an existing buffer. Return the window chosen for displaying BUFFER-OR-NAME, or nil if no such window is found.