comparison src/buffer.c @ 219:262b8bb4a523 r20-4b8

Import from CVS: tag r20-4b8
author cvs
date Mon, 13 Aug 2007 10:09:35 +0200
parents d44af0c54775
children 41f2f0e326e9
comparison
equal deleted inserted replaced
218:c9f226976f56 219:262b8bb4a523
487 } 487 }
488 filename = fn; 488 filename = fn;
489 NUNGCPRO; 489 NUNGCPRO;
490 } 490 }
491 491
492 for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail)) 492 LIST_LOOP (tail, Vbuffer_alist)
493 { 493 {
494 buf = Fcdr (XCAR (tail)); 494 buf = Fcdr (XCAR (tail));
495 if (!BUFFERP (buf)) continue; 495 if (!BUFFERP (buf)) continue;
496 if (!STRINGP (XBUFFER (buf)->filename)) continue; 496 if (!STRINGP (XBUFFER (buf)->filename)) continue;
497 tem = Fstring_equal (filename, 497 tem = Fstring_equal (filename,
1203 1203
1204 /* Or the echo area. */ 1204 /* Or the echo area. */
1205 if (EQ (buf, Vecho_area_buffer)) 1205 if (EQ (buf, Vecho_area_buffer))
1206 return Qnil; 1206 return Qnil;
1207 1207
1208 /* Or the special invisible internal prin1 buffer. */
1209 if (EQ (buf, Vprin1_to_string_buffer))
1210 return Qnil;
1211
1212 /* Query if the buffer is still modified. */ 1208 /* Query if the buffer is still modified. */
1213 if (INTERACTIVE && !NILP (b->filename) 1209 if (INTERACTIVE && !NILP (b->filename)
1214 && BUF_MODIFF (b) > BUF_SAVE_MODIFF (b)) 1210 && BUF_MODIFF (b) > BUF_SAVE_MODIFF (b))
1215 { 1211 {
1216 Lisp_Object killp; 1212 Lisp_Object killp;
1239 record_unwind_protect (save_excursion_restore, save_excursion_save ()); 1235 record_unwind_protect (save_excursion_restore, save_excursion_save ());
1240 Fset_buffer (buf); 1236 Fset_buffer (buf);
1241 1237
1242 /* First run the query functions; if any query is answered no, 1238 /* First run the query functions; if any query is answered no,
1243 don't kill the buffer. */ 1239 don't kill the buffer. */
1244 for (tail = Vkill_buffer_query_functions; 1240 EXTERNAL_LIST_LOOP (tail, Vkill_buffer_query_functions)
1245 !NILP (tail);
1246 tail = Fcdr (tail))
1247 { 1241 {
1248 if (NILP (call0 (Fcar (tail)))) 1242 if (NILP (call0 (Fcar (tail))))
1249 { 1243 {
1250 UNGCPRO; 1244 UNGCPRO;
1251 return unbind_to (speccount, Qnil); 1245 return unbind_to (speccount, Qnil);
2757 != !(NILP (XBUFFER (Vbuffer_local_symbols)->slot))) \ 2751 != !(NILP (XBUFFER (Vbuffer_local_symbols)->slot))) \
2758 abort () 2752 abort ()
2759 #include "bufslots.h" 2753 #include "bufslots.h"
2760 #undef MARKED_SLOT 2754 #undef MARKED_SLOT
2761 2755
2762 Vprin1_to_string_buffer
2763 = Fget_buffer_create (Fpurecopy (build_string (" prin1")));
2764 /* Reset Vbuffer_alist again so that the above buf is magically
2765 invisible */
2766 Vbuffer_alist = Qnil;
2767 /* Want no undo records for prin1_to_string_buffer */
2768 Fbuffer_disable_undo (Vprin1_to_string_buffer);
2769
2770 { 2756 {
2771 Lisp_Object scratch = 2757 Lisp_Object scratch =
2772 Fset_buffer (Fget_buffer_create (QSscratch)); 2758 Fset_buffer (Fget_buffer_create (QSscratch));
2773 /* Want no undo records for *scratch* until after Emacs is dumped */ 2759 /* Want no undo records for *scratch* until after Emacs is dumped */
2774 Fbuffer_disable_undo (scratch); 2760 Fbuffer_disable_undo (scratch);