Mercurial > emacs
changeset 2540:0c20256f752d
(shrink-window-if-larger-than-buffer): Moved to window.el.
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Fri, 16 Apr 1993 19:23:21 +0000 |
parents | 577c77cfd199 |
children | 09e58f572f19 |
files | lisp/electric.el |
diffstat | 1 files changed, 0 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/electric.el Fri Apr 16 13:06:01 1993 +0000 +++ b/lisp/electric.el Fri Apr 16 19:23:21 1993 +0000 @@ -28,38 +28,6 @@ ;;; Code: -;; perhaps this should be in subr.el... -(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." - (save-excursion - (set-buffer (window-buffer window)) - (let ((w (selected-window)) ;save-window-excursion can't win - (buffer-file-name buffer-file-name) - (p (point)) - (n 0) - (window-min-height 0) - (buffer-read-only nil) - (modified (buffer-modified-p)) - (buffer (current-buffer))) - (unwind-protect - (progn - (select-window window) - (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))))) - ;; This loop is the guts for non-standard modes which retain control ;; until some event occurs. It is a `do-forever', the only way out is to ;; throw. It assumes that you have set up the keymap, window, and