aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorLuc Teirlinck2004-04-13 01:16:22 +0000
committerLuc Teirlinck2004-04-13 01:16:22 +0000
commitc9aac8e6883e26705580fc90883093b6a48423c7 (patch)
tree703d8bfe86567fb6bd9972b19e6cce4a64e9587d /src/buffer.c
parent912f0c34b2e4cca38bf0b4285afaf6b23c90f906 (diff)
downloademacs-c9aac8e6883e26705580fc90883093b6a48423c7.tar.gz
emacs-c9aac8e6883e26705580fc90883093b6a48423c7.zip
(Fmake_indirect_buffer): Throw an error if the intended base buffer
has been killed. Correct the error message if the base buffer does not exist.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 403baa817d3..ca74dda73bf 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -521,7 +521,7 @@ DEFUN ("make-indirect-buffer", Fmake_indirect_buffer, Smake_indirect_buffer,
521 2, 3, 521 2, 3,
522 "bMake indirect buffer (to buffer): \nBName of indirect buffer: ", 522 "bMake indirect buffer (to buffer): \nBName of indirect buffer: ",
523 doc: /* Create and return an indirect buffer for buffer BASE-BUFFER, named NAME. 523 doc: /* Create and return an indirect buffer for buffer BASE-BUFFER, named NAME.
524BASE-BUFFER should be an existing buffer (or buffer name). 524BASE-BUFFER should be a live buffer, or the name of an existing buffer.
525NAME should be a string which is not the name of an existing buffer. 525NAME should be a string which is not the name of an existing buffer.
526Optional argument CLONE non-nil means preserve BASE-BUFFER's state, 526Optional argument CLONE non-nil means preserve BASE-BUFFER's state,
527such as major and minor modes, in the indirect buffer. 527such as major and minor modes, in the indirect buffer.
@@ -529,7 +529,7 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
529 (base_buffer, name, clone) 529 (base_buffer, name, clone)
530 Lisp_Object base_buffer, name, clone; 530 Lisp_Object base_buffer, name, clone;
531{ 531{
532 Lisp_Object buf; 532 Lisp_Object buf, tem;
533 struct buffer *b; 533 struct buffer *b;
534 534
535 CHECK_STRING (name); 535 CHECK_STRING (name);
@@ -537,9 +537,12 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
537 if (!NILP (buf)) 537 if (!NILP (buf))
538 error ("Buffer name `%s' is in use", SDATA (name)); 538 error ("Buffer name `%s' is in use", SDATA (name));
539 539
540 tem = base_buffer;
540 base_buffer = Fget_buffer (base_buffer); 541 base_buffer = Fget_buffer (base_buffer);
541 if (NILP (base_buffer)) 542 if (NILP (base_buffer))
542 error ("No such buffer: `%s'", SDATA (name)); 543 error ("No such buffer: `%s'", SDATA (tem));
544 if (NILP (XBUFFER (base_buffer)->name))
545 error ("Base buffer has been killed");
543 546
544 if (SCHARS (name) == 0) 547 if (SCHARS (name) == 0)
545 error ("Empty string for buffer name is not allowed"); 548 error ("Empty string for buffer name is not allowed");
@@ -653,7 +656,7 @@ delete_all_overlays (b)
653} 656}
654 657
655/* Reinitialize everything about a buffer except its name and contents 658/* Reinitialize everything about a buffer except its name and contents
656 and local variables. 659 and local variables.
657 If called on an already-initialized buffer, the list of overlays 660 If called on an already-initialized buffer, the list of overlays
658 should be deleted before calling this function, otherwise we end up 661 should be deleted before calling this function, otherwise we end up
659 with overlays that claim to belong to the buffer but the buffer 662 with overlays that claim to belong to the buffer but the buffer