Mercurial > hg > xemacs-beta
diff src/undo.c @ 167:85ec50267440 r20-3b10
Import from CVS: tag r20-3b10
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:45:46 +0200 |
parents | 131b0175ea99 |
children | 3d6bfa290dbd |
line wrap: on
line diff
--- a/src/undo.c Mon Aug 13 09:44:44 2007 +0200 +++ b/src/undo.c Mon Aug 13 09:45:46 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 */