(when (null n)
(redraw-frame (window-frame window) t)))
-(defun backward-other-window (arg &optional all-frames device)
- "Select the ARG'th different window on this frame, going backwards.
-This is just like calling `other-window' with the arg negated."
+(defun backward-other-window (count &optional which-frames which-devices)
+ "Select the COUNT'th different window on this frame, going backwards.
+This is just like calling `other-window' with COUNT negated."
(interactive "p")
- (other-window (- arg) all-frames device))
+ (other-window (- count) which-frames which-devices))
(defalias 'windows-of-buffer 'get-buffer-window-list)
(defvar display-buffer-function nil
"If non-nil, function to call to handle `display-buffer'.
-It will receive three args: the same as those to `display-buffer'.")
+It will receive four args: the same as those to `display-buffer'.")
(defvar pre-display-buffer-function nil
"If non-nil, function that will be called from `display-buffer'
-as the first action. It will receive three args: the same as those
+as the first action. It will receive four args: the same as those
to `display-buffer'.
This function may be used to select an appropriate frame for the buffer,
for example. See also the variable `display-buffer-function', which may
;; Can you believe that all of this crap was formerly in C?
;; Praise Jesus that it's not there any more.
-(defun display-buffer (buffer &optional not-this-window-p override-frame)
+(defun display-buffer (buffer &optional not-this-window-p override-frame
+ shrink-to-fit)
"Make BUFFER appear in some window on the current frame, but don't select it.
BUFFER can be a buffer or a buffer name.
If BUFFER is shown already in some window in the current frame,
If OVERRIDE-FRAME is non-nil, display on that frame instead of
the current frame (or the dedicated frame).
+If SHRINK-TO-FIT is non-nil and splitting the window is appropriate, give
+the new buffer less than half the space if it is small enough to fit.
+
If `pop-up-windows' is non-nil, always use the
current frame and create a new window regardless of whether the
buffer has a dedicated frame, and regardless of whether
(if pre-display-buffer-function
(funcall pre-display-buffer-function buffer
not-this-window-p
- override-frame)))
+ override-frame
+ shrink-to-fit)))
;; Give the user the ability to completely reimplement
;; this function via the `display-buffer-function'.
(throw 'done
(funcall display-buffer-function buffer
not-this-window-p
- override-frame)))
+ override-frame
+ shrink-to-fit)))
;; If the buffer has a dedicated frame, that takes
;; precedence over the current frame, and over what the
(window-height window))
2)
(window-height upper))
- nil upper)))))
+ nil upper))
+ (if shrink-to-fit
+ (shrink-window-if-larger-than-buffer window)))))
(setq window (get-lru-window target-frame)))