[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r106543: * lisp/files.el (find-file):
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r106543: * lisp/files.el (find-file): Don't use force-same-window. |
Date: |
Mon, 28 Nov 2011 14:43:52 -0500 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 106543
fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10144
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2011-11-28 14:43:52 -0500
message:
* lisp/files.el (find-file): Don't use force-same-window.
* lisp/window.el (switch-to-buffer): Better match Emacs-23 behavior and only
use pop-to-buffer if the selected window can't be used.
(pop-to-buffer-same-window): Use display-buffer--same-window-action.
modified:
lisp/ChangeLog
lisp/files.el
lisp/window.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2011-11-28 18:03:11 +0000
+++ b/lisp/ChangeLog 2011-11-28 19:43:52 +0000
@@ -1,3 +1,10 @@
+2011-11-28 Stefan Monnier <address@hidden>
+
+ * files.el (find-file): Don't use force-same-window (bug#10144).
+ * window.el (switch-to-buffer): Better match Emacs-23 behavior and only
+ use pop-to-buffer if the selected window can't be used.
+ (pop-to-buffer-same-window): Use display-buffer--same-window-action.
+
2011-11-28 Eli Zaretskii <address@hidden>
* vc/diff-mode.el (diff-mode-map): Don't inherit 'z' => 'M-z' from
=== modified file 'lisp/files.el'
--- a/lisp/files.el 2011-11-20 02:29:42 +0000
+++ b/lisp/files.el 2011-11-28 19:43:52 +0000
@@ -1343,7 +1343,7 @@
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(mapcar 'switch-to-buffer (nreverse value))
- (switch-to-buffer value nil 'force-same-window))))
+ (switch-to-buffer value))))
(defun find-file-other-window (filename &optional wildcards)
"Edit file FILENAME, in another window.
=== modified file 'lisp/window.el'
--- a/lisp/window.el 2011-11-27 04:43:11 +0000
+++ b/lisp/window.el 2011-11-28 19:43:52 +0000
@@ -4515,6 +4515,12 @@
(set-window-dedicated-p window dedicated))
(window--display-buffer-1 window)))
+;; FIXME: Not implemented.
+;; FIXME: By the way, there could be more levels of dedication:
+;; - `barely' dedicated doesn't prevent reuse of the window, only records that
+;; the window hasn't been used for something else yet.
+;; - `softly' dedicated only allows reuse when asked explicitly.
+;; - `strongly' never allows reuse.
(defvar display-buffer-mark-dedicated nil
"If non-nil, `display-buffer' marks the windows it creates as dedicated.
The actual non-nil value of this variable will be copied to the
@@ -4945,10 +4951,7 @@
NORECORD, if non-nil means do not put this buffer at the front of
the list of recently selected ones."
- (pop-to-buffer buffer
- '(display-buffer-same-window
- (inhibit-same-window . nil))
- norecord))
+ (pop-to-buffer buffer display-buffer--same-window-action norecord))
(defun read-buffer-to-switch (prompt)
"Read the name of a buffer to switch to, prompting with PROMPT.
@@ -5013,21 +5016,23 @@
(interactive
(list (read-buffer-to-switch "Switch to buffer: ") nil 'force-same-window))
(let ((buffer (window-normalize-buffer-to-switch-to buffer-or-name)))
- (if (null force-same-window)
- (pop-to-buffer buffer display-buffer--same-window-action norecord)
- (cond
- ;; Don't call set-window-buffer if it's not needed since it
- ;; might signal an error (e.g. if the window is dedicated).
- ((eq buffer (window-buffer)))
- ((window-minibuffer-p)
- (error "Cannot switch buffers in minibuffer window"))
- ((eq (window-dedicated-p) t)
- (error "Cannot switch buffers in a dedicated window"))
- (t (set-window-buffer nil buffer)))
+ (cond
+ ;; Don't call set-window-buffer if it's not needed since it
+ ;; might signal an error (e.g. if the window is dedicated).
+ ((eq buffer (window-buffer)))
+ ((window-minibuffer-p)
+ (if force-same-window
+ (error "Cannot switch buffers in minibuffer window")
+ (pop-to-buffer buffer norecord)))
+ ((eq (window-dedicated-p) t)
+ (if force-same-window
+ (error "Cannot switch buffers in a dedicated window")
+ (pop-to-buffer buffer norecord)))
+ (t (set-window-buffer nil buffer)))
- (unless norecord
- (select-window (selected-window)))
- (set-buffer buffer))))
+ (unless norecord
+ (select-window (selected-window)))
+ (set-buffer buffer)))
(defun switch-to-buffer-other-window (buffer-or-name &optional norecord)
"Select the buffer specified by BUFFER-OR-NAME in another window.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r106543: * lisp/files.el (find-file): Don't use force-same-window.,
Stefan Monnier <=