GNU bug report logs -
#23169
24.5; Inconsistent text reflow in man pages depending on window configuration
Previous Next
Reported by: Lluís <xscript <at> gmx.net>
Date: Thu, 31 Mar 2016 13:16:01 UTC
Severity: minor
Tags: fixed
Found in version 24.5
Done: Stefan Kangas <stefan <at> marxist.se>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 23169 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii writes:
>> From: Lluís <xscript <at> gmx.net>
>> Date: Thu, 31 Mar 2016 15:15:15 +0200
>>
>> Before the man process is started, "Man-start-calling" calculates the "COLUMNS"
>> envvar using "window-width" before splitting windows. The window split happens
>> later once the process finishes, and the buffer is shown through
>> "Man-notify-when-ready".
>>
>> Assuming the buffer is going to be shown on a vertical split, the text will go
>> beyond the window limits if there was no other window in the frame (or if a new
>> window is used), or will be reflowed with the proper width if an existing window
>> is reused.
>>
>> Manually calling "Man-update-manpage" fixes it, but it's annoying. Simply adding
>> a call to "Man-update-manpage" in "Man-notify-when-ready" would fix it
>> ("(with-current-buffer man-buffer (Man-update-manpage))" in the "friendly" case
>> for me).
>>
>> As a bonus, this fix also reflows the text when an existing buffer is reused.
> Maybe I'm missing something, but won't your suggestion effectively
> replace the background rendering of man pages with fully synchronous
> one?
Oh, that's true.
> The usual way to fix these problems is to set Man-width to a non-nil
> value, as appropriate for your frame/window dimensions. Would that
> solve the problem for you?
Thing is I don't know the width of the window that will be used, since in some
cases it does not exist yet:
+-----+ +--+--+
| | | | |
| | -> M-x man man -> | | |
| | | | |
+-----+ +--+--+
The ideal without breaking the asynchronicity would be to somehow display the
new buffer on a window before populating it (display-buffer might or might not
reuse a window here), calculate its window's width, set COLUMNS, asynchronously
call man to populate the buffer, and then really show the buffer on the previous
window.
The only problem is that creating a temporary window just to calculate its width
could annoy people because the contents won't be shown yet.
Cheers,
Lluis
This bug report was last modified 5 years and 239 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.