aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c45
1 files changed, 26 insertions, 19 deletions
diff --git a/src/buffer.c b/src/buffer.c
index fbf6bb8b611..de9e4246f80 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -558,11 +558,22 @@ If BUFFER is omitted or nil, some interesting buffer is returned.")
558DEFUN ("buffer-disable-undo", Fbuffer_disable_undo, Sbuffer_disable_undo, 1,1, 558DEFUN ("buffer-disable-undo", Fbuffer_disable_undo, Sbuffer_disable_undo, 1,1,
5590, 5590,
560 "Make BUFFER stop keeping undo information.") 560 "Make BUFFER stop keeping undo information.")
561 (buf) 561 (buffer)
562 register Lisp_Object buf; 562 register Lisp_Object buffer;
563{ 563{
564 CHECK_BUFFER (buf, 0); 564 Lisp_Object real_buffer;
565 XBUFFER (buf)->undo_list = Qt; 565
566 if (NILP (buffer))
567 XSET (real_buffer, Lisp_Buffer, current_buffer);
568 else
569 {
570 real_buffer = Fget_buffer (buffer);
571 if (NILP (real_buffer))
572 nsberror (buffer);
573 }
574
575 XBUFFER (real_buffer)->undo_list = Qt;
576
566 return Qnil; 577 return Qnil;
567} 578}
568 579
@@ -570,23 +581,22 @@ DEFUN ("buffer-enable-undo", Fbuffer_enable_undo, Sbuffer_enable_undo,
570 0, 1, "", 581 0, 1, "",
571 "Start keeping undo information for buffer BUFFER.\n\ 582 "Start keeping undo information for buffer BUFFER.\n\
572No argument or nil as argument means do this for the current buffer.") 583No argument or nil as argument means do this for the current buffer.")
573 (buf) 584 (buffer)
574 register Lisp_Object buf; 585 register Lisp_Object buffer;
575{ 586{
576 register struct buffer *b; 587 Lisp_Object real_buffer;
577 register Lisp_Object buf1;
578 588
579 if (NILP (buf)) 589 if (NILP (buffer))
580 b = current_buffer; 590 XSET (real_buffer, Lisp_Buffer, current_buffer);
581 else 591 else
582 { 592 {
583 buf1 = Fget_buffer (buf); 593 real_buffer = Fget_buffer (buffer);
584 if (NILP (buf1)) nsberror (buf); 594 if (NILP (real_buffer))
585 b = XBUFFER (buf1); 595 nsberror (buffer);
586 } 596 }
587 597
588 if (EQ (b->undo_list, Qt)) 598 if (EQ (XBUFFER (real_buffer)->undo_list, Qt))
589 b->undo_list = Qnil; 599 XBUFFER (real_buffer)->undo_list = Qnil;
590 600
591 return Qnil; 601 return Qnil;
592} 602}
@@ -1285,10 +1295,7 @@ init_buffer_once ()
1285 /* super-magic invisible buffer */ 1295 /* super-magic invisible buffer */
1286 Vbuffer_alist = Qnil; 1296 Vbuffer_alist = Qnil;
1287 1297
1288 tem = Fset_buffer (Fget_buffer_create (build_string ("*scratch*"))); 1298 Fset_buffer (Fget_buffer_create (build_string ("*scratch*")));
1289 /* Want no undo records for *scratch*
1290 until after Emacs is dumped */
1291 Fbuffer_disable_undo (tem);
1292} 1299}
1293 1300
1294init_buffer () 1301init_buffer ()