Subject: Re: bug#15716: 24.3.50; redisplay bug for display-table update

From: Eli Zaretskii <[email-masked]>
Date: Fri, 25 Oct 2013 18:26:53 +0300

> Date: Fri, 25 Oct 2013 08:04:14 -0700 (PDT)
> From: Drew Adams <[email-masked]>
> 
> See attached screenshots, from the same session.  The bad one (NG) was
> taken after `C-l', which should have taken care of any redisplay
> problem.

`C-l' does not necessarily do a redisplay, at least not by default.
It did so in the past, but ceased to since Emacs 23.1, where `C-l' was
bound to 'recenter-top-bottom' instead of 'recenter'.

> The good one (OK) was taken after then iconifying (thumbifying,
> actually) and then restoring the frame - that took care of the display
> problem.
> 
> The part of the displayed buffer that got messed up is the result of
> modifying the display table for character ^L - what looks like a sunken
> line of text "Section (Printable Page)" is in fact just a ^L character.
> The code that does this is here:
> http://www.emacswiki.org/emacs-en/download/pp-c-l.el.
> 
> This is the part of the code that updates the display table:
> 
> (lambda (window)
>   (let ((display-table  (or (window-display-table window)
>                             (make-display-table))))
>     (aset display-table ?\014 (and pretty-control-l-mode
>                                    (pp^L-^L-display-table-entry window)))
>     (set-window-display-table window display-table)))

Emacswiki seems to be off-line.  But unless you are saying that
turning on this feature _always_ results in garbled display, I will
need a recipe to reproduce the problem, or else it is impossible to
debug it.

> BTW/FWIW - I think I have also noticed, with this build (perhaps other
> recent builds too?), the need to hit `C-l' more often.  Until now I have
> probably used `C-l' only a few times over the last decade or so - hasn't
> been needed.  (In the old days it was needed much more often.)

You read too much into what `C-l' does.  I recommend redraw-display,
if you want to force a thorough redisplay.

Anyway, all those situations should be reported, if they are
reproducible.  You shouldn't need to force redisplay manually.