1 |
/* Minibuffer input and completion. |
/* Minibuffer input and completion. |
2 |
Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
Copyright (C) 1985,86,93,94,95,96,97,98,99,2000,01,03 |
3 |
2000, 2001, 2003 Free Software Foundation, Inc. |
Free Software Foundation, Inc. |
4 |
|
|
5 |
This file is part of GNU Emacs. |
This file is part of GNU Emacs. |
6 |
|
|
777 |
else |
else |
778 |
{ |
{ |
779 |
int count = SPECPDL_INDEX (); |
int count = SPECPDL_INDEX (); |
|
Lisp_Object overlay; |
|
|
struct buffer *b = XBUFFER (buf); |
|
|
|
|
780 |
/* `reset_buffer' blindly sets the list of overlays to NULL, so we |
/* `reset_buffer' blindly sets the list of overlays to NULL, so we |
781 |
have to empty the list, otherwise we end up with overlays that |
have to empty the list, otherwise we end up with overlays that |
782 |
think they belong to this buffer while the buffer doesn't know about |
think they belong to this buffer while the buffer doesn't know about |
783 |
them any more. */ |
them any more. */ |
784 |
while (b->overlays_before) |
delete_all_overlays (XBUFFER (buf)); |
785 |
{ |
reset_buffer (XBUFFER (buf)); |
|
XSETMISC (overlay, b->overlays_before); |
|
|
Fdelete_overlay (overlay); |
|
|
} |
|
|
while (b->overlays_after) |
|
|
{ |
|
|
XSETMISC (overlay, b->overlays_after); |
|
|
Fdelete_overlay (overlay); |
|
|
} |
|
|
eassert (b->overlays_before == NULL); |
|
|
eassert (b->overlays_after == NULL); |
|
|
|
|
|
reset_buffer (b); |
|
786 |
record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); |
record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); |
787 |
Fset_buffer (buf); |
Fset_buffer (buf); |
788 |
Fkill_all_local_variables (); |
Fkill_all_local_variables (); |