]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve cohabitation of pop-up-frames and second argument of display-buffer (bug...
authorMartin Rudalics <rudalics@gmx.at>
Thu, 16 Jun 2011 07:31:51 +0000 (09:31 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Thu, 16 Jun 2011 07:31:51 +0000 (09:31 +0200)
* window.el (display-buffer-normalize-specifiers-1): Respect
current value of pop-up-frames for most reasonable values of
second argument of display-buffer (Bug#8865).

lisp/ChangeLog
lisp/window.el

index d2d4479336676c8a8449b12f3b371ce3101d91fa..b4b726c7407b3f1b939c78999e8eb1c45ca6475d 100644 (file)
@@ -1,3 +1,9 @@
+2011-06-16  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.el (display-buffer-normalize-specifiers-1): Respect
+       current value of pop-up-frames for most reasonable values of
+       second argument of display-buffer (Bug#8865).
+
 2011-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * pcmpl-rpm.el (pcomplete/rpm): Minor simplification.
index 5493893d4c1e412031fb21bd07d002b89fd2ab82..1661fedfe259c60ca47d4ec960763017094eb79f 100644 (file)
@@ -3453,9 +3453,8 @@ specific buffers."
     ;; (bw-finetune wins)
     ;; (message "Done in %d rounds" round)
     ))
-
-\f
 \f
+;;; Displaying buffers.
 (defconst display-buffer-default-specifiers
   '((reuse-window nil same visible)
     (pop-up-window (largest . nil) (lru . nil))
@@ -4909,9 +4908,12 @@ BUFFER-OR-NAME and return that buffer."
 (defun display-buffer-normalize-specifiers-1 (specifiers)
   "Subroutine of `display-buffer-normalize-specifiers'.
 SPECIFIERS is the SPECIFIERS argument of `display-buffer'."
-  (let (normalized)
+  (let (normalized entry)
     (cond
+     ((not specifiers)
+      nil)
      ((listp specifiers)
+      ;; If SPECIFIERS is a list, we assume it is a list of specifiers.
       (dolist (specifier specifiers)
        (cond
         ((consp specifier)
@@ -4924,21 +4926,17 @@ SPECIFIERS is the SPECIFIERS argument of `display-buffer'."
            (dolist (item (cdr entry))
              (setq normalized (cons item normalized)))))))
       ;; Reverse list.
-      (setq normalized (nreverse normalized)))
-     ;; The two cases below must come from the SPECIFIERS argument of
-     ;; `display-buffer'.
-     ((eq specifiers 't)
-      ;; Historically t means "other window".  Eventually we should get
-      ;; rid of this.
-      (setq normalized
-           (cdr (assq 'other-window display-buffer-macro-specifiers))
-           normalized))
-     ((symbolp specifiers)
-      ;; We allow scalar specifiers in calls of `display-buffer'.
-      (let ((entry (assq specifiers display-buffer-macro-specifiers)))
-       (when entry (setq normalized (cdr entry))))))
-
-    normalized))
+      (nreverse normalized))
+     ((and (not (eq specifiers 'other-window))
+          (setq entry (assq specifiers display-buffer-macro-specifiers)))
+      ;; A macro specifier.
+      (cdr entry))
+     ((memq pop-up-frames '(nil unset))
+      ;; Pop up a new window.
+      (cdr (assq 'other-window display-buffer-macro-specifiers)))
+     (t
+      ;; Pop up a new frame.
+      (cdr (assq 'other-frame display-buffer-macro-specifiers))))))
 
 (defun display-buffer-normalize-specifiers-2 (&optional buffer-or-name)
   "Subroutine of `display-buffer-normalize-specifiers'.