# HG changeset patch # User Martin Rudalics # Date 1229074255 0 # Node ID 216f983c64915f7e963a813dacf5a7070b723929 # Parent 42c2c343946fd0fd819f190e43e82543340235c0 (fit-window-to-buffer): Return non-nil when height was orderly adjusted, nil otherwise. diff -r 42c2c343946f -r 216f983c6491 lisp/window.el --- a/lisp/window.el Fri Dec 12 03:55:24 2008 +0000 +++ b/lisp/window.el Fri Dec 12 09:30:55 2008 +0000 @@ -1294,7 +1294,7 @@ (defun fit-window-to-buffer (&optional window max-height min-height) "Adjust height of WINDOW to display its buffer's contents exactly. -WINDOW defaults to the selected window. Return nil. +WINDOW defaults to the selected window. Optional argument MAX-HEIGHT specifies the maximum height of the window and defaults to the maximum permissible height of a window on WINDOW's frame. @@ -1303,12 +1303,15 @@ Both, MAX-HEIGHT and MIN-HEIGHT are specified in lines and include the mode line and header line, if any. +Return non-nil if height was orderly adjusted, nil otherwise. + Caution: This function can delete WINDOW and/or other windows when their height shrinks to less than MIN-HEIGHT." (interactive) ;; Do all the work in WINDOW and its buffer and restore the selected ;; window and the current buffer when we're done. - (let ((old-buffer (current-buffer))) + (let ((old-buffer (current-buffer)) + value) (with-selected-window (or window (setq window (selected-window))) (set-buffer (window-buffer)) ;; Use `condition-case' to handle any fixed-size windows and other @@ -1384,10 +1387,13 @@ (= desired-height (window-height)) (not (pos-visible-in-window-p end))) (enlarge-window 1) - (setq desired-height (1+ desired-height)))))) + (setq desired-height (1+ desired-height)))) + ;; Return non-nil only if nothing "bad" happened. + (setq value t))) (error nil))) (when (buffer-live-p old-buffer) - (set-buffer old-buffer)))) + (set-buffer old-buffer)) + value)) (defun window-safely-shrinkable-p (&optional window) "Return t if WINDOW can be shrunk without shrinking other windows.