diff options
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/buffer.c b/src/buffer.c index c934bdf22c3..1fba9136375 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -630,7 +630,21 @@ CLONE nil means the indirect buffer's state is reset to default values. */) | |||
| 630 | XMARKER (b->zv_marker)->insertion_type = 1; | 630 | XMARKER (b->zv_marker)->insertion_type = 1; |
| 631 | } | 631 | } |
| 632 | else | 632 | else |
| 633 | clone_per_buffer_values (b->base_buffer, b); | 633 | { |
| 634 | struct buffer *old_b = current_buffer; | ||
| 635 | |||
| 636 | clone_per_buffer_values (b->base_buffer, b); | ||
| 637 | b->filename = Qnil; | ||
| 638 | b->file_truename = Qnil; | ||
| 639 | b->display_count = make_number (0); | ||
| 640 | b->backed_up = Qnil; | ||
| 641 | b->auto_save_file_name = Qnil; | ||
| 642 | set_buffer_internal_1 (b); | ||
| 643 | Fset (intern ("buffer-save-without-query"), Qnil); | ||
| 644 | Fset (intern ("buffer-file-number"), Qnil); | ||
| 645 | Fset (intern ("buffer-stale-function"), Qnil); | ||
| 646 | set_buffer_internal_1 (old_b); | ||
| 647 | } | ||
| 634 | 648 | ||
| 635 | return buf; | 649 | return buf; |
| 636 | } | 650 | } |
| @@ -931,7 +945,7 @@ is the default binding of variable. */) | |||
| 931 | } | 945 | } |
| 932 | 946 | ||
| 933 | /* Return an alist of the Lisp-level buffer-local bindings of | 947 | /* Return an alist of the Lisp-level buffer-local bindings of |
| 934 | buffer BUF. That is, do't include the variables maintained | 948 | buffer BUF. That is, don't include the variables maintained |
| 935 | in special slots in the buffer object. */ | 949 | in special slots in the buffer object. */ |
| 936 | 950 | ||
| 937 | static Lisp_Object | 951 | static Lisp_Object |