emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r106319: * lisp/window.el: Make speci


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106319: * lisp/window.el: Make special-display like display-buffer-alist.
Date: Mon, 07 Nov 2011 21:57:59 -0500
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106319
fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9532
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2011-11-07 21:57:59 -0500
message:
  * lisp/window.el: Make special-display like display-buffer-alist.
  (display-buffer--special-action): New function, morphed
  from display-buffer--special.
  (display-buffer): Use it to handle special-display-buffers at higher
  priority (just after display-buffer-alist).
  (display-buffer-fallback-action, display-buffer--other-frame-action)
  (pop-to-buffer-same-window): Remove display-buffer--special.
modified:
  lisp/ChangeLog
  lisp/window.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-11-07 19:00:54 +0000
+++ b/lisp/ChangeLog    2011-11-08 02:57:59 +0000
@@ -1,3 +1,13 @@
+2011-11-08  Stefan Monnier  <address@hidden>
+
+       * window.el: Make special-display like display-buffer-alist (bug#9532).
+       (display-buffer--special-action): New function, morphed
+       from display-buffer--special.
+       (display-buffer): Use it to handle special-display-buffers at higher
+       priority (just after display-buffer-alist).
+       (display-buffer-fallback-action, display-buffer--other-frame-action)
+       (pop-to-buffer-same-window): Remove display-buffer--special.
+
 2011-11-07  Glenn Morris  <address@hidden>
 
        * calendar/cal-menu.el (cal-menu-set-date-title):

=== modified file 'lisp/window.el'
--- a/lisp/window.el    2011-11-07 09:51:08 +0000
+++ b/lisp/window.el    2011-11-08 02:57:59 +0000
@@ -4625,9 +4625,8 @@
   :group 'windows)
 
 (defconst display-buffer-fallback-action
-  '((display-buffer--maybe-same-window
+  '((display-buffer--maybe-same-window  ;FIXME: why isn't this redundant?
      display-buffer-reuse-window
-     display-buffer--special
      display-buffer--maybe-pop-up-frame-or-window
      display-buffer-use-some-window
      ;; If all else fails, pop up a new frame.
@@ -4658,7 +4657,6 @@
 
 (defvar display-buffer--other-frame-action
   '((display-buffer-reuse-window
-     display-buffer--special
      display-buffer-pop-up-frame)
     (reusable-frames . 0)
     (inhibit-same-window . t))
@@ -4724,6 +4722,7 @@
       (let* ((user-action
              (display-buffer-assq-regexp (buffer-name buffer)
                                          display-buffer-alist))
+             (special-action (display-buffer--special-action buffer))
             ;; Extra actions from the arguments to this function:
             (extra-action
              (cons nil (append (if inhibit-same-window
@@ -4732,7 +4731,7 @@
                                    `((reusable-frames . ,frame))))))
             ;; Construct action function list and action alist.
             (actions (list display-buffer-overriding-action
-                           user-action action extra-action
+                           user-action special-action action extra-action
                            display-buffer-base-action
                            display-buffer-fallback-action))
             (functions (apply 'append
@@ -4815,7 +4814,7 @@
       (display-buffer-record-window 'reuse window buffer)
       (window--display-buffer-1 window))))
 
-(defun display-buffer--special (buffer alist)
+(defun display-buffer--special-action (buffer)
   "Try to display BUFFER using `special-display-function'.
 Call `special-display-p' on BUFFER's name, and if that returns
 non-nil, call `special-display-function' on BUFFER."
@@ -4824,8 +4823,10 @@
        ;; parameters to pass to `special-display-function'.
        (let ((pars (special-display-p (buffer-name buffer))))
         (when pars
-          (funcall special-display-function
-                   buffer (if (listp pars) pars))))))
+           (list (list #'display-buffer-reuse-window
+                       `(lambda (buffer _alist)
+                          (funcall special-display-function
+                                   buffer ',(if (listp pars) pars)))))))))
 
 (defun display-buffer-pop-up-frame (buffer alist)
   "Display BUFFER in a new frame.
@@ -4973,8 +4974,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--special
-                   display-buffer-same-window)
+                '(display-buffer-same-window
                   (inhibit-same-window . nil))
                 norecord))
 
@@ -5438,8 +5438,8 @@
 
 ;;; Scrolling commands.
 
-;;; Scrolling commands which does not signal errors at top/bottom
-;;; of buffer at first key-press (instead moves to top/bottom
+;;; Scrolling commands which do not signal errors at top/bottom
+;;; of buffer at first key-press (instead move to top/bottom
 ;;; of buffer).
 
 (defcustom scroll-error-top-bottom nil


reply via email to

[Prev in Thread] Current Thread [Next in Thread]