emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about display engine


From: Ergus
Subject: Re: Question about display engine
Date: Mon, 14 Oct 2019 00:27:52 +0200
User-agent: NeoMutt/20180716

On Mon, Oct 14, 2019 at 12:01:46AM +0300, Eli Zaretskii wrote:
Date: Sun, 13 Oct 2019 21:38:36 +0200
From: Ergus <address@hidden>
Cc: address@hidden, address@hidden

(gdb) p it->sp
$1 = 0
(gdb) p it->method
$2 = GET_FROM_C_STRING

If we are producing glyphs from a C string, then faces should not be
used at all, because C strings cannot have faces.

So you should to condition the call to face_at_pos on something like

 it->s == NULL

Hi:

This have fixed the issue, I understand now what was happening. Should I
merge into master now? maybe you should close the related issues then
right?.


because there can not be any face on any position of a C string.

(gdb) pgrowx it->glyph_row
TEXT: 85 glyphs
  0    0: CHAR[-] str=0x4fab1a8f[0] blev=0,btyp=L w=1 a+d=0+0 face=1
  1    1: CHAR[U] str=0x4fab18f0[1] blev=0,btyp=L w=1 a+d=0+0 face=1
  2    2: CHAR[U] str=0x4fab18f0[1] blev=0,btyp=L w=1 a+d=0+0 face=1
  3    3: CHAR[U] str=0x4fab18f0[1] blev=0,btyp=L w=1 a+d=0+0 face=1
  4    4: CHAR[:] str=0xf2787f0[0] blev=0,btyp=L w=1 a+d=0+0 face=1
  5    5: CHAR[%] str=0x4faaee54[1] blev=0,btyp=L w=1 a+d=0+0 face=1
  6    6: CHAR[%] str=0x4faaede4[1] blev=0,btyp=L w=1 a+d=0+0 face=1
  7    7: CHAR[-] str=0x4fab1721[1] blev=0,btyp=L w=1 a+d=0+0 face=1
  8    8: CHAR[-] str=0x4fa9d9a8[0] blev=0,btyp=L w=1 a+d=0+0 face=1
  9    9: CHAR[F] str=0x4fa9d9a8[2] blev=0,btyp=L w=1 a+d=0+0 face=1
 10   10: CHAR[1] str=0x4fa9d9a8[2] blev=0,btyp=L w=1 a+d=0+0 face=1

This is a mode line, so it figures out: extend_face_to_end_of_line was
called when the iterator was processing the final blanks of the mode
line, see display_mode_line.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]