Subject: Re: bug#32536: displayed width of man pages

From: martin rudalics <[email-masked]>
Date: Tue, 27 Nov 2018 09:08:02 +0100

>> (3) Run the buffer-local hook for changes of the window's body size
 >>      too.
 >
 > What might cause these changes?

Adding/removing fringes, dividers, scroll bars, mode or header lines
to/from a window.  Usually, applications do not care for the total
size of a window - they want to know the size of the text area only.

 > (4) Run the buffer-local hook also when a window has not shown the
 >>      buffer the last time this hook was run.
 >
 > Good, so initial buffer display will be automatically handled as well.

It should also include the following idiosyncrasy: Suppose a user
saves away a window in a configuration in some register, kills it and
revives the window from that register a few hours later.  How should
running size change functions handle that case?  The window has
neither changed buffer nor size since the last time it was shown.  I
currently just run the buffer-local hook (since the window was not
there the last time the functions were run) but without further
notice.  If someone thinks that the application should get notified in
some sense about this fact, then please tell me how.

 >> So essentially you would have to rerun occur whenever the Man buffer
 >> is reformatted.
 >
 > It's too ad-hoc to find all Occur buffers created from the Man buffer,
 > and revert all of them.

Is it reverting Man buffers only that causes problems?  I suppose
(auto-)reversal is a wide-spread disease.

 >> Otherwise, I see only one way to handle this.  Before reformatting,
 >> store the context of each marker (in a bookmark-like or diff-like
 >> fashion) and restore the markers from that context.  The matching done
 >> in the restore step would have to identify and ignore "soft" changes
 >> of whitespace.
 >
 > This means additionally to finding all affected Occur buffers like above,
 > instead of reverting them, perform much more complex processing of
 > their markers.
 >
 > It seems a more practical solution is to limit the width of Man buffers
 > to at least 80 columns by default, so splitting such windows will not
 > resize their number of columns, so they won't be reverted and reformatted.

Why is it that we care so much about Man buffers and live with the
fact that, for example, our *info* buffers have rigid width?

martin