unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-pretest-bug@gnu.org
Subject: Re: 23.0.60; Crash on w32 related to invisible text
Date: Mon, 24 Mar 2008 02:29:33 +0100	[thread overview]
Message-ID: <47E703FD.10504@gmail.com> (raw)
In-Reply-To: <jwvtzix6k87.fsf-monnier+emacsbugreports@gnu.org>

Stefan Monnier wrote:
>>>> I get crashes in org-mode when I do things in a region with invisible
>>>> text. I have not made any simple test case, but from my testing I can see
>>>> this:
>>>> - There is something strange with the display in org-mode an items content
>>>> is hidden. You can position point after the three dots ... If you do that
>>>> and check (current-column) you get 0.
>>>> - In code if you in org-mode do
>>>> (while (my-invisible-p (point))
>>>> (forward-line 1))
>>>> until point is on a visible char and there insert an overlay with an
>>>> after-string it crashes.
>>> Please make the "insert an overlay with an
>>> after-string" more precise, e.g. actual Elisp code.
> 
>> It looks similar to this, I have not tested if propertize is involved:
> 
>>   (setq ovl-str (concat "before"
>>                       (propertize "txt" 'face 'highlight-popup)
>>                       "after"))
>>   (overlay-put ovl 'after-string ovl-str)
>>   (overlay-put ovl 'display "")
> 
>> See also the attached file. The crash happens in tabkey2-overlay-message if
>> you let it take the path avoided right under the comment:
> 
>>       ;; Fix-me: Emacs bug workaround
>>       (if nil ;;(tabkey2-invisible-p (1- (point)))
> 
> 
>>> Also, does it happen with any Org-mode buffer, or is the
>>> contents/setup important?
> 
>> It does not seem to be dependent on the buffers content.
> 
>>> Finally, please provide a backtrace.
> 
>> Sorry, it is compiled with debug info, but there is no backtrace.
> 
> You need to run it under a debugger, of course, in order to get
> a backtrace.  Please read etc/DEBUG for more info about it.

My memory is short. Jason and Eli told me this a while ago. Here is the 
traceback:

(gdb) bt
#0  0x0103ab55 in next_element_from_display_vector (it=0x82e600)
     at xdisp.c:6210
#1  0x01039b3b in get_next_display_element (it=0x82e600) at xdisp.c:5734
#2  0x0104ff1b in display_line (it=0x82e600) at xdisp.c:16252
#3  0x0104d64e in try_window_id (w=0x25b7a00) at xdisp.c:14984
#4  0x01048e25 in redisplay_window (window=39549444, just_this_one_p=1)
     at xdisp.c:13389
#5  0x01045435 in redisplay_window_1 (window=39549444) at xdisp.c:12051
#6  0x01020ad5 in internal_condition_case_1 (
     bfun=0x1045403 <redisplay_window_1>, arg=39549444, handlers=24208661,
     hfun=0x10453a9 <redisplay_window_error>) at eval.c:1542
#7  0x010447ab in redisplay_internal (preserve_echo_area=0) at xdisp.c:11664
#8  0x01042d2d in redisplay () at xdisp.c:10809
#9  0x01008d00 in read_char (commandflag=1, nmaps=16, maps=0x82f9c0,
     prev_event=24225793, used_mouse_menu=0x82fb1c, end_time=0x0)
     at keyboard.c:2722
#10 0x0101269d in read_key_sequence (keybuf=0x82fc60, bufsize=30,
     prompt=24225793, dont_downcase_last=0, can_return_switch_frame=1,
     fix_current_buffer=1) at keyboard.c:9458
#11 0x01006351 in command_loop_1 () at keyboard.c:1653
#12 0x010209c5 in internal_condition_case (bfun=0x1006032 <command_loop_1>,
     handlers=24292473, hfun=0x1005a32 <cmd_error>) at eval.c:1494
#13 0x01005d9b in command_loop_2 () at keyboard.c:1370
---Type <return> to continue, or q <return> to quit---
#14 0x010204b6 in internal_catch (tag=24285497,
     func=0x1005d78 <command_loop_2>, arg=24225793) at eval.c:1230
#15 0x01005d51 in command_loop () at keyboard.c:1349
#16 0x0100564e in recursive_edit_1 () at keyboard.c:958
#17 0x010057b2 in Frecursive_edit () at keyboard.c:1020
#18 0x0100279f in main (argc=1, argv=0xa82720) at emacs.c:1784
#19 0x0100124b in __mingw_CRTStartup ()
#20 0x01001298 in mainCRTStartup ()
(gdb)


> I'm sorry, but you presume I'm much more intelligent than I am.
> I do not understand what tabkey2.el has to do with it all and how to
> create an Org-mode buffer that will trigger the crash.

Forgive my stupidness. With tabkey2.el there is a convenient way to get 
the crash, but I forgot to add it:

- Change the line I pointed to above ("Emacs bug workaround")
- Bring up any org-mode file.
- Make sure you are on a line with its contents hidden. This is what I 
use when I got it to crash right now (the traceback above is from when I 
used a bigger file containing this, but I think the crash is similar):

 >>>>>>>> test.org >>>>>>>>>>>>>
** Fri Nov 02 23:45:07 2007 (Why does not cua--ena-cua-keys-keymap 
override viper's defin)
    Why does not cua--ena-cua-keys-keymap override Viper's definition
    of BS, DEL etc? This keymap is in cua--keymap-alist. This alist is
    before viper in emulation-mode-map-alists. So what happens?

** Sun Nov 04 01:59:17 2007 (Kim's key-sequence widget)
    Kim's key-sequence widget
    - Add ks-to-vec. => store vec format
    - Some cleanup.
    - History keys?
    - Different input formats? Use space at the beginning to force desc
      style. Or C-t to toggle, put ^V first?

** Sun Nov 04 12:58:01 2007 (New versions from GnuWin32 to EmacsW32)
    New versions from GnuWin32 to EmacsW32
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Only the "**" rows should be visible. (You can toggle that by pressing 
TAB.) Place point on after at k in "Kim's key-sequence". Turn on 
tabkey2-mode:

    eval tabkey2.el <-- forgot to add (eval-when-compile (require 'cl))
    M-x tabkey2-mode
    F8

Now it should crash. Eh, perhaps rather "it crashes". On my pc, w32.



> So, please give us a recipe starting from `emacs -Q' with *every single
> step* necessary to trigger the crash.  Including a small sample
> Org-mode file.  It's always safer to assume we're complete idiots.
> 
> 
>         Stefan





      reply	other threads:[~2008-03-24  1:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-23 20:43 23.0.60; Crash on w32 related to invisible text Lennart Borgman (gmail)
2008-03-23 23:27 ` Stefan Monnier
2008-03-24  0:14   ` Lennart Borgman (gmail)
2008-03-24  0:30     ` Stefan Monnier
2008-03-24  1:29       ` Lennart Borgman (gmail) [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47E703FD.10504@gmail.com \
    --to=lennart.borgman@gmail.com \
    --cc=emacs-pretest-bug@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).