Subject: 23.0.94; shrink-window-if-larger-than-buffer

From: "Drew Adams" <[email-masked]>
Date: Wed, 17 Jun 2009 12:44:07 -0700

Dunno if there is a bug here, beyond possibly improving the doc
string. In general, I have a question about the code.
 
The code imposes this as one of the conditions for fitting the window
to the buffer:
 
(or (not (frame-parameter frame 'minibuffer))
    (let ((mini-window (minibuffer-window frame)))
      (or (null mini-window)
          (not (eq frame (window-frame mini-window)))
               (< (nth 3 edges) (nth 1 (window-edges mini-window)))
               (> (nth 1 edges) (frame-parameter frame 'menu-bar-lines)))))
 
I don't understand the last condition (>). At the least, this
condition seems to be missing from the doc string:
 
"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,
or if shrinking this window would also shrink another window, or if
the window is the only window of its frame."
 
What is that last condition (>) for?  What is the relation between the
number of menu-bar-lines and the `Top' position of the window?
 
And doesn't this code raise an error if the `menu-bar-lines' parameter
is nil? Should it really be doing that?

In GNU Emacs 23.0.94.1 (i386-mingw-nt5.1.2600)
 of 2009-05-24 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'