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