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 14:28:03 -0400

Eli Zaretskii <[email-masked]> writes:

>> Date: Sun, 08 Apr 2012 11:26:41 +0900
>> From: YAMAMOTO Mitsuharu <[email-masked]>
>> 
>> Steps to reproduce:
>> 
>> 1. emacs -Q
>> 2. type the following text in the *scratch* buffer:
>> 
>>   (progn
>>     (delete-region (point) (point-max))
>>     (insert (substring (get-language-info "Hebrew" 'sample-text) 7)))
>> 
>> 3. move the cursor to the beginning of the next line of the above text.
>> 4. C-x C-e
>> 5. C-a
>> 6. C-k
>> 
>> Result:
>> 
>> The Hebrew text is still shown, though it is internally killed.
>> Typing C-p after the last step does not move the cursor.
>
> I cannot reproduce this with today's bzr, neither in the emacs-24
> release branch nor with the trunk version.  I cannot run a GUI session
> with a GTK build on GNU/Linux where I'm typing this, but I tried GUI
> and TTY sessions on MS-Windows and a TTY session on GNU/Linux, and
> they all work correctly: the Hebrew text is killed and C-p works as
> expected.  (Btw, did you mean C-p or C-n?)
>
> Can you try reproducing this in a clean build, or on another system?
>
> Also, what happens on the system where you see the problem, if you
> switch to another buffer and then back to *scratch*, so that it is
> completely redrawn? does the killed text re-appear or not?
>
> Thanks.

I have assertions turned on and get an assertion failure.  My setup is
as follows:

In GNU Emacs 24.1.50.1 (i686-pc-linux-gnu, X toolkit)
 of 2012-04-08 on maru
Bzr revision: 107799 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11104000
Configured using:
 `configure '--without-gconf' '--without-gsettings'
 '--without-toolkit-scroll-bars' '--with-x-toolkit=lucid' 'CFLAGS=-O0
 -ggdb' '--enable-asserts' '--with-wide-int''

Build is from today's trunk.  Here is the backtrace:

#0  abort () at emacs.c:390
#1  0x080779e7 in init_iterator (it=0xbfffa878, w=0x88e30d0, charpos=308, 
    bytepos=311, row=0x0, base_face_id=DEFAULT_FACE_ID) at xdisp.c:2507
#2  0x080794bb in init_from_display_pos (it=0xbfffa878, w=0x88e30d0, 
    pos=0x8dccc58) at xdisp.c:2951
#3  0x08079810 in init_to_row_end (it=0xbfffa878, w=0x88e30d0, row=0x8dccbf0)
    at xdisp.c:3054
#4  0x080a82f0 in try_window_id (w=0x88e30d0) at xdisp.c:17140
#5  0x080a11fc in redisplay_window (window=-6917529027497545520, 
    just_this_one_p=1) at xdisp.c:15463
#6  0x0809a6e8 in redisplay_window_1 (window=-6917529027497545520)
    at xdisp.c:13645
#7  0x0828b89f in internal_condition_case_1 (
    bfun=0x809a6a2 <redisplay_window_1>, arg=-6917529027497545520, 
    handlers=-4611686018286052816, hfun=0x809a619 <redisplay_window_error>)
    at eval.c:1553
#8  0x080996ee in redisplay_internal () at xdisp.c:13270
#9  0x08096754 in redisplay () at xdisp.c:12417
#10 0x081c9d36 in read_char (commandflag=1, nmaps=2, maps=0xbfffed60, 
    prev_event=4611686018568752328, used_mouse_menu=0xbfffeeac, end_time=0x0)
    at keyboard.c:2448
#11 0x081dad15 in read_key_sequence (keybuf=0xbffff0f8, bufsize=30, 
    prompt=4611686018568752328, dont_downcase_last=0, 
    can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:9328
#12 0x081c6c32 in command_loop_1 () at keyboard.c:1449
#13 0x0828b710 in internal_condition_case (bfun=0x81c667f <command_loop_1>, 
    handlers=4611686018568799048, hfun=0x81c5c48 <cmd_error>) at eval.c:1515
#14 0x081c6255 in command_loop_2 (ignore=4611686018568752328)
    at keyboard.c:1160
#15 0x0828af33 in internal_catch (tag=4611686018568792336, 
    func=0x81c621a <command_loop_2>, arg=4611686018568752328) at eval.c:1272
#16 0x081c61e0 in command_loop () at keyboard.c:1139
#17 0x081c56eb in recursive_edit_1 () at keyboard.c:759
#18 0x081c590f in Frecursive_edit () at keyboard.c:823
#19 0x081c34c1 in main (argc=2, argv=0xbffff964) at emacs.c:1711

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