GNU bug report logs - #36858
27.0.50; display bugs with display-fill-column-indicator-mode

Previous Next

Package: emacs;

Reported by: Davor Rotim <rotim.davor <at> gmail.com>

Date: Tue, 30 Jul 2019 18:12:01 UTC

Severity: normal

Found in version 27.0.50

Done: Ergus <spacibba <at> aol.com>

Bug is archived. No further changes may be made.

Full log


Message #41 received at 36858 <at> debbugs.gnu.org (full text, mbox):

From: Ergus <spacibba <at> aol.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 36858 <at> debbugs.gnu.org, rotim.davor <at> gmail.com
Subject: Re: bug#36858: 27.0.50; display bugs with
 display-fill-column-indicator-mode
Date: Wed, 7 Aug 2019 21:46:21 +0200
On Wed, Aug 07, 2019 at 08:29:13PM +0300, Eli Zaretskii wrote:
>> This issue is already fixed with the other condition I mentioned:
>>
>> IT_CHARPOS (*it) < ZV
>>
>> But ends_at_zv_p this also need to be fixed because there are some tests
>> inside extend_face_to_end_of_line that compare with ends_at_zv_p. In the
>> worst case we need to remove these comparisons.
>
>Not sure I understand why the comparisons need to be removed.  Can you
>elaborate?
>

>> But ideally the flag must be set before right?
>
>In a buffer showing only buffer text (no after-strings at EOB), all
>the glyph rows starting from the one showing EOB have their
>ends_at_zv_p flag set.

Hi:

In my tests inside extend_face_to_end_of_line the flag ends_at_zv_p is
always false. And for the last line (where it is supposed to be true)
the function extend_face_to_end_of_line is not called at all. So
actually all the code like:

	      if (it->glyph_row->ends_at_zv_p)
		it->face_id = default_face->id;
	      else
		it->face_id = face->id;

does nothing now.

We should fix this in order to create an indicator also for the last
line.

I think that the problem is in the condition:

if (!get_next_display_element (it)) inside display_line that filters the
call to  extend_face_to_end_of_line with:

if (row->reversed_p
   || lookup_basic_face (it->w, it->f, DEFAULT_FACE_ID) !=
   DEFAULT_FACE_ID)
     extend_face_to_end_of_line (it);

And needs to be extended probably with with:

|| (!row_text_area_empty (row))




This bug report was last modified 5 years and 215 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.