Subject: Re: bug#11199: 24.0.95; killing right-to-left text at eob leads to inconsistent state

From: Michael Welsh Duggan <[email-masked]>
Date: Sun, 08 Apr 2012 16:49:14 -0400

Eli Zaretskii <[email-masked]> writes:

>> From: Michael Welsh Duggan <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Sun, 08 Apr 2012 16:25:46 -0400
>> 
>> >> (gdb) pgrowx last_unchanged_at_beg_row
>> >> TEXT: 68 glyphs
>> >>   0    0: CHAR[ ] pos=237 blev=0,btyp=L w=8 a+d=12+3 MB
>> >> ...
>> >>  66  528: CHAR[)] pos=303 blev=0,btyp=L w=8 a+d=12+3 MB
>> >>  67  536: CHAR[ ] pos=0 blev=0,btyp=B w=8 a+d=12+3 MB
>> >> (gdb) prowlims last_unchanged_at_beg_row
>> >> edges=(237,305),r2l=0,cont=0,trunc=(0,0),at_zv=0
>> >> (gdb) 
>> >
>> > And what does the following produce in this frame?
>> >
>> >   (gdb) p row->end
>> 
>> (gdb) p row->end
>> $8 = {
>>   pos = {
>>     charpos = 309, 
>>     bytepos = 313
>>   }, 
>
> That's the problem: the end position does not correspond to the actual
> buffer positions of the characters in the glyph row (which are 237 to
> 303).  But how could that happen?..  And why doesn't it happen to me?
> I cannot even make init_to_row_end be called when I type C-k.
>
> Btw, if you set bidi-display-reordering nil in *scratch* before typing
> the recipe, does the crash still happen?

It does not.  If you need me to poke around just point me in the right
direction.

-- 
Michael Welsh Duggan
([email-masked])