comparison src/buffer.c @ 55744:dc4797dbcccd

(clone_per_buffer_values): Copy the alist of local vars, and the alist pairs too.
author Richard M. Stallman <rms@gnu.org>
date Sat, 22 May 2004 22:20:51 +0000
parents b9ef74fa21bf
children 5dde0034a30e 50b9a96c837c
comparison
equal deleted inserted replaced
55743:4f33fa491183 55744:dc4797dbcccd
485 485
486 static void 486 static void
487 clone_per_buffer_values (from, to) 487 clone_per_buffer_values (from, to)
488 struct buffer *from, *to; 488 struct buffer *from, *to;
489 { 489 {
490 Lisp_Object to_buffer; 490 Lisp_Object to_buffer, tem;
491 int offset; 491 int offset;
492 492
493 XSETBUFFER (to_buffer, to); 493 XSETBUFFER (to_buffer, to);
494 494
495 for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object); 495 for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object);
512 512
513 bcopy (from->local_flags, to->local_flags, sizeof to->local_flags); 513 bcopy (from->local_flags, to->local_flags, sizeof to->local_flags);
514 514
515 to->overlays_before = copy_overlays (to, from->overlays_before); 515 to->overlays_before = copy_overlays (to, from->overlays_before);
516 to->overlays_after = copy_overlays (to, from->overlays_after); 516 to->overlays_after = copy_overlays (to, from->overlays_after);
517
518 /* Copy the alist of local variables,
519 and all the alist elements too. */
520 to->local_var_alist
521 = Fcopy_sequence (from->local_var_alist);
522 for (tem = to->local_var_alist; CONSP (tem);
523 tem = XCDR (tem))
524 XSETCAR (tem, Fcons (XCAR (XCAR (tem)), XCDR (XCAR (tem))));
517 } 525 }
518 526
519 527
520 DEFUN ("make-indirect-buffer", Fmake_indirect_buffer, Smake_indirect_buffer, 528 DEFUN ("make-indirect-buffer", Fmake_indirect_buffer, Smake_indirect_buffer,
521 2, 3, 529 2, 3,