comparison lisp/electric.el @ 90072:cb67264d6096

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-2 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-83 - miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-84 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-3 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-4 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-5 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-6 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-11 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-12 Remove "-face" suffix from lazy-highlight face name * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-13 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-16 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-17 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-18 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-21 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-22 <no summary provided> * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-23 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-39 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-40 Fix regressions from latest reftex update * miles@gnu.org--gnu-2005/gnus--rel--5.10--base-0 tag of miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-82 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-1 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-2 Merge from miles@gnu.org--gnu-2004 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-3 Merge from emacs--cvs-trunk--0
author Miles Bader <miles@gnu.org>
date Sun, 16 Jan 2005 03:40:12 +0000
parents 68c22ea6027c c5ee87e89147
children f9a65d7ebd29
comparison
equal deleted inserted replaced
90071:f6b4d0ebf147 90072:cb67264d6096
142 (defun Electric-pop-up-window (buffer &optional max-height) 142 (defun Electric-pop-up-window (buffer &optional max-height)
143 (let* ((win (or (get-buffer-window buffer) (selected-window))) 143 (let* ((win (or (get-buffer-window buffer) (selected-window)))
144 (buf (get-buffer buffer)) 144 (buf (get-buffer buffer))
145 (one-window (one-window-p t)) 145 (one-window (one-window-p t))
146 (pop-up-windows t) 146 (pop-up-windows t)
147 (pop-up-frames nil) 147 (pop-up-frames nil))
148 (target-height)
149 (lines))
150 (if (not buf) 148 (if (not buf)
151 (error "Buffer %s does not exist" buffer) 149 (error "Buffer %s does not exist" buffer)
152 (with-current-buffer buf
153 (setq lines (count-lines (point-min) (point-max)))
154 (setq target-height
155 (min (max (if max-height (min max-height (1+ lines)) (1+ lines))
156 window-min-height)
157 (save-window-excursion
158 (delete-other-windows)
159 (1- (window-height (selected-window)))))))
160 (cond ((and (eq (window-buffer win) buf)) 150 (cond ((and (eq (window-buffer win) buf))
161 (select-window win)) 151 (select-window win))
162 (one-window 152 (one-window
163 (pop-to-buffer buffer) 153 (pop-to-buffer buffer)
164 (setq win (selected-window)) 154 (setq win (selected-window)))
165 (enlarge-window (- target-height (window-height win))))
166 (t 155 (t
167 (switch-to-buffer buf))) 156 (switch-to-buffer buf)))
168 (if (and (not max-height) 157 (fit-window-to-buffer win max-height)
169 (> target-height (window-height (selected-window))))
170 (progn (goto-char (window-start win))
171 (enlarge-window (- target-height (window-height win)))))
172 (goto-char (point-min)) 158 (goto-char (point-min))
173 win))) 159 win)))
174 160
175 (provide 'electric) 161 (provide 'electric)
176 162