mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-27 10:54:40 +00:00
(shrink-window-if-larger-than-buffer): Add `interactive'.
Do nothing if window contents not entirely visible.
This commit is contained in:
parent
f2d5c40e65
commit
d0bee390dd
@ -111,9 +111,10 @@ ARG columns. No arg means split equally."
|
||||
(shrink-window arg t))
|
||||
|
||||
(defun shrink-window-if-larger-than-buffer (&optional window)
|
||||
"Shrink the WINDOW to be as small as possible to display its contents. Do
|
||||
nothing if only one window is displayed or if the buffer contains more lines
|
||||
than the present window height."
|
||||
"Shrink the WINDOW to be as small as possible to display its contents.
|
||||
Do nothing if the buffer contains more lines than the present window height,
|
||||
or if some of the window's contents are scrolled out of view."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(set-buffer (window-buffer window))
|
||||
(let ((w (selected-window)) ;save-window-excursion can't win
|
||||
@ -124,22 +125,23 @@ than the present window height."
|
||||
(buffer-read-only nil)
|
||||
(modified (buffer-modified-p))
|
||||
(buffer (current-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(select-window (or window w))
|
||||
(goto-char (point-min))
|
||||
(while (pos-visible-in-window-p (point-max))
|
||||
;; defeat file locking... don't try this at home, kids!
|
||||
(setq buffer-file-name nil)
|
||||
(insert ?\n) (setq n (1+ n)))
|
||||
(if (> n 0) (shrink-window (1- n))))
|
||||
(delete-region (point-min) (point))
|
||||
(set-buffer-modified-p modified)
|
||||
(goto-char p)
|
||||
(select-window w)
|
||||
;; Make sure we unbind buffer-read-only
|
||||
;; with the proper current buffer.
|
||||
(set-buffer buffer)))))
|
||||
(if (pos-visible-in-window-p (point-min))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(select-window (or window w))
|
||||
(goto-char (point-min))
|
||||
(while (pos-visible-in-window-p (point-max))
|
||||
;; defeat file locking... don't try this at home, kids!
|
||||
(setq buffer-file-name nil)
|
||||
(insert ?\n) (setq n (1+ n)))
|
||||
(if (> n 0) (shrink-window (1- n))))
|
||||
(delete-region (point-min) (point))
|
||||
(set-buffer-modified-p modified)
|
||||
(goto-char p)
|
||||
(select-window w)
|
||||
;; Make sure we unbind buffer-read-only
|
||||
;; with the proper current buffer.
|
||||
(set-buffer buffer))))))
|
||||
|
||||
(define-key ctl-x-map "2" 'split-window-vertically)
|
||||
(define-key ctl-x-map "3" 'split-window-horizontally)
|
||||
|
Loading…
Reference in New Issue
Block a user