Mercurial > hg > xemacs-beta
diff src/undo.c @ 48:56c54cf7c5b6 r19-16b90
Import from CVS: tag r19-16b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:56:04 +0200 |
parents | 859a2309aef8 |
children | 131b0175ea99 |
line wrap: on
line diff
--- a/src/undo.c Mon Aug 13 08:55:32 2007 +0200 +++ b/src/undo.c Mon Aug 13 08:56:04 2007 +0200 @@ -206,19 +206,23 @@ void record_extent (Lisp_Object extent, int attached) { - Lisp_Object buffer = Fextent_object (extent); - struct buffer *b = XBUFFER (buffer); /* !!#### */ - Lisp_Object token; - - if (!undo_prelude (b, 1)) - return; + Lisp_Object obj = Fextent_object (extent); - if (attached) - token = extent; + if (BUFFERP (obj)) + { + Lisp_Object token; + struct buffer *b = XBUFFER (obj); + if (!undo_prelude (b, 1)) + return; + if (attached) + token = extent; + else + token = list3 (extent, Fextent_start_position (extent), + Fextent_end_position (extent)); + b->undo_list = Fcons (token, b->undo_list); + } else - token = list3 (extent, Fextent_start_position (extent), - Fextent_end_position (extent)); - b->undo_list = Fcons (token, b->undo_list); + return; } #if 0 /* FSFmacs */