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:25:46 -0400

Eli Zaretskii <[email-masked]> writes:

>> From: Michael Welsh Duggan <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Sun, 08 Apr 2012 16:16:29 -0400
>> 
>> (gdb) up
>> #4  0x080a82f0 in try_window_id (w=0x88e30d0) at xdisp.c:17140
>> (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
>>   1    8: CHAR[ ] pos=238 blev=0,btyp=L w=8 a+d=12+3 MB
>>   2   16: CHAR[(] pos=239 blev=0,btyp=L w=8 a+d=12+3 MB
>>   3   24: CHAR[i] pos=240 blev=0,btyp=L w=8 a+d=12+3 MB
>>   4   32: CHAR[n] pos=241 blev=0,btyp=L w=8 a+d=12+3 MB
>>   5   40: CHAR[s] pos=242 blev=0,btyp=L w=8 a+d=12+3 MB
>>   6   48: CHAR[e] pos=243 blev=0,btyp=L w=8 a+d=12+3 MB
>>   7   56: CHAR[r] pos=244 blev=0,btyp=L w=8 a+d=12+3 MB
>>   8   64: CHAR[t] pos=245 blev=0,btyp=L w=8 a+d=12+3 MB
>>   9   72: CHAR[ ] pos=246 blev=0,btyp=L w=8 a+d=12+3 MB
>>  10   80: CHAR[(] pos=247 blev=0,btyp=L w=8 a+d=12+3 MB
>>  11   88: CHAR[s] pos=248 blev=0,btyp=L w=8 a+d=12+3 MB
>>  12   96: CHAR[u] pos=249 blev=0,btyp=L w=8 a+d=12+3 MB
>>  13  104: CHAR[b] pos=250 blev=0,btyp=L w=8 a+d=12+3 MB
>>  14  112: CHAR[s] pos=251 blev=0,btyp=L w=8 a+d=12+3 MB
>>  15  120: CHAR[t] pos=252 blev=0,btyp=L w=8 a+d=12+3 MB
>>  16  128: CHAR[r] pos=253 blev=0,btyp=L w=8 a+d=12+3 MB
>>  17  136: CHAR[i] pos=254 blev=0,btyp=L w=8 a+d=12+3 MB
>>  18  144: CHAR[n] pos=255 blev=0,btyp=L w=8 a+d=12+3 MB
>>  19  152: CHAR[g] pos=256 blev=0,btyp=L w=8 a+d=12+3 MB
>>  20  160: CHAR[ ] pos=257 blev=0,btyp=L w=8 a+d=12+3 MB
>>  21  168: CHAR[(] pos=258 blev=0,btyp=L w=8 a+d=12+3 MB
>>  22  176: CHAR[g] pos=259 blev=0,btyp=L w=8 a+d=12+3 MB
>>  23  184: CHAR[e] pos=260 blev=0,btyp=L w=8 a+d=12+3 MB
>>  24  192: CHAR[t] pos=261 blev=0,btyp=L w=8 a+d=12+3 MB
>>  25  200: CHAR[-] pos=262 blev=0,btyp=L w=8 a+d=12+3 MB
>>  26  208: CHAR[l] pos=263 blev=0,btyp=L w=8 a+d=12+3 MB
>>  27  216: CHAR[a] pos=264 blev=0,btyp=L w=8 a+d=12+3 MB
>>  28  224: CHAR[n] pos=265 blev=0,btyp=L w=8 a+d=12+3 MB
>>  29  232: CHAR[g] pos=266 blev=0,btyp=L w=8 a+d=12+3 MB
>>  30  240: CHAR[u] pos=267 blev=0,btyp=L w=8 a+d=12+3 MB
>>  31  248: CHAR[a] pos=268 blev=0,btyp=L w=8 a+d=12+3 MB
>>  32  256: CHAR[g] pos=269 blev=0,btyp=L w=8 a+d=12+3 MB
>>  33  264: CHAR[e] pos=270 blev=0,btyp=L w=8 a+d=12+3 MB
>>  34  272: CHAR[-] pos=271 blev=0,btyp=L w=8 a+d=12+3 MB
>>  35  280: CHAR[i] pos=272 blev=0,btyp=L w=8 a+d=12+3 MB
>>  36  288: CHAR[n] pos=273 blev=0,btyp=L w=8 a+d=12+3 MB
>>  37  296: CHAR[f] pos=274 blev=0,btyp=L w=8 a+d=12+3 MB
>>  38  304: CHAR[o] pos=275 blev=0,btyp=L w=8 a+d=12+3 MB
>>  39  312: CHAR[ ] pos=276 blev=0,btyp=L w=8 a+d=12+3 MB
>>  40  320: CHAR["] pos=277 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  41  328: CHAR[H] pos=278 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  42  336: CHAR[e] pos=279 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  43  344: CHAR[b] pos=280 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  44  352: CHAR[r] pos=281 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  45  360: CHAR[e] pos=282 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  46  368: CHAR[w] pos=283 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  47  376: CHAR["] pos=284 blev=0,btyp=L w=8 a+d=12+3 face=15 MB
>>  48  384: CHAR[ ] pos=285 blev=0,btyp=L w=8 a+d=12+3 MB
>>  49  392: CHAR['] pos=286 blev=0,btyp=L w=8 a+d=12+3 MB
>>  50  400: CHAR[s] pos=287 blev=0,btyp=L w=8 a+d=12+3 MB
>>  51  408: CHAR[a] pos=288 blev=0,btyp=L w=8 a+d=12+3 MB
>>  52  416: CHAR[m] pos=289 blev=0,btyp=L w=8 a+d=12+3 MB
>>  53  424: CHAR[p] pos=290 blev=0,btyp=L w=8 a+d=12+3 MB
>>  54  432: CHAR[l] pos=291 blev=0,btyp=L w=8 a+d=12+3 MB
>>  55  440: CHAR[e] pos=292 blev=0,btyp=L w=8 a+d=12+3 MB
>>  56  448: CHAR[-] pos=293 blev=0,btyp=L w=8 a+d=12+3 MB
>>  57  456: CHAR[t] pos=294 blev=0,btyp=L w=8 a+d=12+3 MB
>>  58  464: CHAR[e] pos=295 blev=0,btyp=L w=8 a+d=12+3 MB
>>  59  472: CHAR[x] pos=296 blev=0,btyp=L w=8 a+d=12+3 MB
>>  60  480: CHAR[t] pos=297 blev=0,btyp=L w=8 a+d=12+3 MB
>>  61  488: CHAR[)] pos=298 blev=0,btyp=L w=8 a+d=12+3 MB
>>  62  496: CHAR[ ] pos=299 blev=0,btyp=L w=8 a+d=12+3 MB
>>  63  504: CHAR[7] pos=300 blev=0,btyp=L w=8 a+d=12+3 MB
>>  64  512: CHAR[)] pos=301 blev=0,btyp=L w=8 a+d=12+3 MB
>>  65  520: CHAR[)] pos=302 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
  }, 
  overlay_string_index = -1, 
  string_pos = {
    charpos = -1, 
    bytepos = -1
  }, 
  dpvec_index = -1
}

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