emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs abort


From: Martin Fredriksson
Subject: Re: Emacs abort
Date: Fri, 18 Feb 2005 07:23:31 +0100

On 17 feb 2005, at 10.43, Kim F. Storm wrote:

Martin Fredriksson <address@hidden> writes:

I have now verified the abort also in Linux.  The abort happens when
invoking outline-minor-mode 'show-all' after a previous 'hide-body',
when part of the buffer is not visible (scrolled).  The abort only
happens when using keys, not when invoking with 'M-x show-all'.

The steps to trigger this are:

(1) gdb ./emacs
     (gdb) run -q

(2) Open apa.txt, select outline minor mode (M-x outline-minor-mode)
    and go to end of buffer.

(3) Hide body:
     C-c @ C-t

(4) Go up two lines (previous-line x 2)

(5) Show all (must be done using keys):
     C-c @ C-a



I still cannot make it fail even on GNU/Linux.

I can repeat it on several different platforms, so I guess it's my description which is faulty.

After step (2), the text in the buffer should have scrolled up and only the last 20 lines are visible and cursor is in the middle (vertically).

After step (3), text is still scrolled, but now most of it is hidden. My window now shows only two lines with the cursor on line 3. Following lines are visible ([C] = the cursor):

   ...
   *Section 3...
   [C]

Step (4) makes text scroll down so that all three lines (the three "section headings") are visible (the cursor is located at first position of line 2).

   * Section 1...
   * Section 2...
   *Section 3...

Now, invoking show-all using keys "C-c @ C-a" result in the abort().

Does it fail if you start emacs -Q ?

Yes.

Does the following patch fix the problem, or does it cause other
problems?

          if (!row->enabled_p || !MATRIX_ROW_DISPLAYS_TEXT_P (row))
!           break;  /* abort (); */

It seems to work (haven't seen any other problems). I did try using 'continue' myself but it felt wrong to just replace an "assert" like that?

Could it be that row->enabled_p is 0 due to 'hide-body' and that this "assert" is plain wrong? In that case, perhaps 'continue' would be better?

I gladly do more tests if that can help? In that case: do you have any suggestions as to what needs to be tested?

/m





reply via email to

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