1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-17 11:20:39 -08:00

Fix various uses of display-buffer and pop-to-buffer

to avoid using special-display-* and same-window-* variables.

* lisp/buff-menu.el (Buffer-menu-switch-other-window): Use second arg
of display-buffer.
(Buffer-menu-2-window): Use switch-to-buffer-other-window.

* lisp/replace.el (occur-mode-goto-occurrence)
(occur-mode-display-occurrence) Use second arg of pop-to-buffer
and display-buffer.

* lisp/window.el (display-buffer-alist): Add *Python*.

* lisp/mail/reporter.el (reporter-submit-bug-report): Use second arg of
display-buffer.

* lisp/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.

* lisp/progmodes/gdb-mi.el (gdb-frame-gdb-buffer): Use
display-buffer-other-frame.
(gdb-display-gdb-buffer): Use pop-to-buffer.

* lisp/progmodes/gud.el (gud-goto-info): Use info-other-window.

* lisp/progmodes/python.el: Don't set same-window-buffer-names.

* lisp/textmodes/bibtex.el (bibtex-search-entry): Use switch-to-buffer.
This commit is contained in:
Chong Yidong 2011-09-10 17:15:28 -04:00
parent 919a69aa08
commit 3199b96fc5
11 changed files with 58 additions and 74 deletions

View file

@ -1,3 +1,33 @@
2011-09-10 Chong Yidong <cyd@stupidchicken.com>
* 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 <cyd@stupidchicken.com> 2011-09-10 Chong Yidong <cyd@stupidchicken.com>
* window.el (display-buffer-alist): Add entry for buffers * window.el (display-buffer-alist): Add entry for buffers

View file

@ -586,22 +586,16 @@ in the selected frame."
"Make the other window select this line's buffer. "Make the other window select this line's buffer.
The current window remains selected." The current window remains selected."
(interactive) (interactive)
(let ((pop-up-windows t) (display-buffer (Buffer-menu-buffer t) t))
same-window-buffer-names
same-window-regexps)
(display-buffer (Buffer-menu-buffer t))))
(defun Buffer-menu-2-window () (defun Buffer-menu-2-window ()
"Select this line's buffer, with previous buffer in second window." "Select this line's buffer, with previous buffer in second window."
(interactive) (interactive)
(let ((buff (Buffer-menu-buffer t)) (let ((buff (Buffer-menu-buffer t))
(menu (current-buffer)) (menu (current-buffer)))
(pop-up-windows t)
same-window-buffer-names
same-window-regexps)
(delete-other-windows) (delete-other-windows)
(switch-to-buffer (other-buffer)) (switch-to-buffer (other-buffer))
(pop-to-buffer buff) (switch-to-buffer-other-window buff)
(bury-buffer menu))) (bury-buffer menu)))
(defun Buffer-menu-toggle-read-only () (defun Buffer-menu-toggle-read-only ()

View file

@ -332,12 +332,11 @@ mail-sending package is used for editing and sending the message."
hookvar) hookvar)
;; do the work ;; do the work
(require 'sendmail) (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. ;; If mailbuf did not get made visible before, make it visible now.
(let (same-window-buffer-names same-window-regexps) (pop-to-buffer mailbuf)
(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)))
(goto-char (point-min)) (goto-char (point-min))
(mail-position-on-field "to") (mail-position-on-field "to")
(insert address) (insert address)

View file

@ -565,11 +565,7 @@ To change your decision later, customize `send-mail-function'.\n")
send-actions return-action send-actions return-action
&rest ignored) &rest ignored)
(if switch-function (if switch-function
(let ((special-display-buffer-names nil) (funcall switch-function "*mail*"))
(special-display-regexps nil)
(same-window-buffer-names nil)
(same-window-regexps nil))
(funcall switch-function "*mail*")))
(let ((cc (cdr (assoc-string "cc" other-headers t))) (let ((cc (cdr (assoc-string "cc" other-headers t)))
(in-reply-to (cdr (assoc-string "in-reply-to" other-headers t))) (in-reply-to (cdr (assoc-string "in-reply-to" other-headers t)))
(body (cdr (assoc-string "body" 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) (defun mail-other-window (&optional noerase to subject in-reply-to cc replybuffer sendactions)
"Like `mail' command, but display mail buffer in another window." "Like `mail' command, but display mail buffer in another window."
(interactive "P") (interactive "P")
(let ((pop-up-windows t) (switch-to-buffer-other-window "*mail*")
(special-display-buffer-names nil)
(special-display-regexps nil)
(same-window-buffer-names nil)
(same-window-regexps nil))
(pop-to-buffer "*mail*"))
(mail noerase to subject in-reply-to cc replybuffer sendactions)) (mail noerase to subject in-reply-to cc replybuffer sendactions))
;;;###autoload ;;;###autoload
(defun mail-other-frame (&optional noerase to subject in-reply-to cc replybuffer sendactions) (defun mail-other-frame (&optional noerase to subject in-reply-to cc replybuffer sendactions)
"Like `mail' command, but display mail buffer in another frame." "Like `mail' command, but display mail buffer in another frame."
(interactive "P") (interactive "P")
(let ((pop-up-frames t) (switch-to-buffer-other-frame "*mail*")
(special-display-buffer-names nil)
(special-display-regexps nil)
(same-window-buffer-names nil)
(same-window-regexps nil))
(pop-to-buffer "*mail*"))
(mail noerase to subject in-reply-to cc replybuffer sendactions)) (mail noerase to subject in-reply-to cc replybuffer sendactions))
;; Do not add anything but external entries on this page. ;; Do not add anything but external entries on this page.

View file

@ -2408,9 +2408,8 @@ and overlay is highlighted between MK and END-MK."
;; also do this while we change buffer ;; also do this while we change buffer
(compilation-set-window w msg) (compilation-set-window w msg)
compilation-highlight-regexp))) compilation-highlight-regexp)))
;; Ideally, the window-size should be passed to `display-buffer' (via ;; Ideally, the window-size should be passed to `display-buffer'
;; something like special-display-buffer) so it's only used when ;; so it's only used when creating a new window.
;; creating a new window.
(unless pre-existing (compilation-set-window-height w)) (unless pre-existing (compilation-set-window-height w))
(if from-compilation-buffer (if from-compilation-buffer

View file

@ -3980,18 +3980,12 @@ SPLIT-HORIZONTAL and show BUF in the new window."
(defun gdb-frame-gdb-buffer () (defun gdb-frame-gdb-buffer ()
"Display GUD buffer in a new frame." "Display GUD buffer in a new frame."
(interactive) (interactive)
(let ((special-display-regexps (append special-display-regexps '(".*"))) (display-buffer-other-frame gud-comint-buffer))
(special-display-frame-alist
(remove '(menu-bar-lines) (remove '(tool-bar-lines)
gdb-frame-parameters)))
(same-window-regexps nil))
(display-buffer gud-comint-buffer)))
(defun gdb-display-gdb-buffer () (defun gdb-display-gdb-buffer ()
"Display GUD buffer." "Display GUD buffer."
(interactive) (interactive)
(let ((same-window-regexps nil)) (pop-to-buffer gud-comint-buffer nil 0))
(select-window (display-buffer gud-comint-buffer nil 0))))
(defun gdb-set-window-buffer (name &optional ignore-dedicated window) (defun gdb-set-window-buffer (name &optional ignore-dedicated window)
"Set buffer of selected window to NAME and dedicate window. "Set buffer of selected window to NAME and dedicate window.

View file

@ -112,20 +112,9 @@ Used to grey out relevant toolbar icons.")
(defun gud-goto-info () (defun gud-goto-info ()
"Go to relevant Emacs info node." "Go to relevant Emacs info node."
(interactive) (interactive)
(let ((same-window-regexps same-window-regexps) (if (eq gud-minor-mode 'gdbmi)
(display-buffer-reuse-frames t)) (info-other-window "(emacs)GDB Graphical Interface")
(catch 'info-found (info-other-window "(emacs)Debuggers")))
(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"))))
(defun gud-tool-bar-item-visible-no-fringe () (defun gud-tool-bar-item-visible-no-fringe ()
(not (or (eq (buffer-local-value 'major-mode (window-buffer)) 'speedbar-mode) (not (or (eq (buffer-local-value 'major-mode (window-buffer)) 'speedbar-mode)

View file

@ -86,7 +86,6 @@
(add-to-list 'interpreter-mode-alist (cons (purecopy "python") 'python-mode)) (add-to-list 'interpreter-mode-alist (cons (purecopy "python") 'python-mode))
;;;###autoload ;;;###autoload
(add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode)) (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode))
(add-to-list 'same-window-buffer-names (purecopy "*Python*"))
;;;; Font lock ;;;; Font lock

View file

@ -928,7 +928,7 @@ To return to ordinary Occur mode, use \\[occur-mode]."
(defalias 'occur-mode-mouse-goto 'occur-mode-goto-occurrence) (defalias 'occur-mode-mouse-goto 'occur-mode-goto-occurrence)
(defun occur-mode-goto-occurrence (&optional event) (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)) (interactive (list last-nonmenu-event))
(let ((pos (let ((pos
(if (null event) (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))) (with-current-buffer (window-buffer (posn-window (event-end event)))
(save-excursion (save-excursion
(goto-char (posn-point (event-end event))) (goto-char (posn-point (event-end event)))
(occur-mode-find-occurrence))))) (occur-mode-find-occurrence))))))
same-window-buffer-names (pop-to-buffer (marker-buffer pos) t)
same-window-regexps)
(pop-to-buffer (marker-buffer pos))
(goto-char pos) (goto-char pos)
(run-hooks 'occur-mode-find-occurrence-hook))) (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." "Display in another window the occurrence the current line describes."
(interactive) (interactive)
(let ((pos (occur-mode-find-occurrence)) (let ((pos (occur-mode-find-occurrence))
window window)
;; Bind these to ensure `display-buffer' puts it in another window. (setq window (display-buffer (marker-buffer pos) t))
same-window-buffer-names
same-window-regexps)
(setq window (display-buffer (marker-buffer pos)))
;; This is the way to set point in the proper window. ;; This is the way to set point in the proper window.
(save-selected-window (save-selected-window
(select-window window) (select-window window)

View file

@ -4038,10 +4038,8 @@ A prefix arg negates the value of `bibtex-search-entry-globally'."
;; `bibtex-search-entry' moves point if key found ;; `bibtex-search-entry' moves point if key found
(setq found (bibtex-search-entry key))))) (setq found (bibtex-search-entry key)))))
(cond ((and found display) (cond ((and found display)
(let ((same-window-buffer-names (switch-to-buffer buffer)
(cons (buffer-name buffer) same-window-buffer-names))) (bibtex-reposition-window))
(pop-to-buffer buffer)
(bibtex-reposition-window)))
(found (set-buffer buffer)) (found (set-buffer buffer))
(display (message "Key `%s' not found" key))) (display (message "Key `%s' not found" key)))
found) found)

View file

@ -4499,8 +4499,9 @@ BUFFER-OR-NAME and return that buffer."
(current-buffer))) (current-buffer)))
(defvar display-buffer-alist (defvar display-buffer-alist
'(("\\`\\*\\(scheme\\|ielm\\|shell\\|\\(unsent \\)?mail\\|inferior-lisp\ '(("\\`\\*\\(scheme\\|ielm\\|shell\\|\\(unsent \\)?mail\\|\
\\|Customiz.*\\|info\\|rlogin-.*\\|telnet-.*\\|rsh-.*\\|gud-.*\\)\\*\\(<[0-9]+>\\)?" inferior-lisp\\|Python\\|Customiz.*\\|info\\|rlogin-.*\\|\
telnet-.*\\|rsh-.*\\|gud-.*\\)\\*\\(<[0-9]+>\\)?"
. (display-buffer-same-window))) . (display-buffer-same-window)))
"Alist of conditional actions for `display-buffer'. "Alist of conditional actions for `display-buffer'.
This is a list of elements (CONDITION . ACTION), where: 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) (put 'display-buffer--other-frame-action 'risky-local-variable t)
(defun display-buffer (&optional buffer-or-name action frame) (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-OR-NAME must be a buffer or the name of an existing
buffer. Return the window chosen for displaying BUFFER-OR-NAME, buffer. Return the window chosen for displaying BUFFER-OR-NAME,
or nil if no such window is found. or nil if no such window is found.