Has anyone noticed that `window-end' and `window-start' are almost
completely hosed? (`window-end' is extremely useful when you want to
operate on the visible portion of the window, for whatever reason.)
Specifically:
* (window-end) at the end of buffer returns (1+ (point-max)), which
breaks any code that tries to use it sensibly. I now use
(min (window-end) (point-max)).
* The GUARANTEE argument makes it return a different value.
Specifically, (window-end) returns the start position of the line
after the clipped (bottom-most) line. OTOH, (window-end nil t)
returns the end position of the end of the line *before* the clipped
(bottom-most) line.
I don't know which of the two is more correct, but I really think
they should not differ.
* `window-start' doesn't have a GUARANTEE argument. What use is it to
be able to find window's end position without forcing a redraw
without being able to do the same for its start position?
I would really appreciate some help by the redisplay gurus.