emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

make-indirect-buffer


From: Luc Teirlinck
Subject: make-indirect-buffer
Date: Mon, 12 Apr 2004 00:19:53 -0500 (CDT)

I noticed a second (less serious, but still confusing) bug in
`make-indirect-buffer'.

After emacs -q, we run ielm:

===File ~/namebug===========================================
*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> (make-indirect-buffer "nosuchbuffer" "indi")
*** Eval error ***  No such buffer: `indi'
ELISP> ============================================================

There is not supposed to be an `indi' buffer, we are trying to
construct one.  The problem is that "nosuchbuffer" does not exist.

After the following patch:

===File ~/buffer.c-newdiff==================================
*** buffer.c    11 Apr 2004 10:08:04 -0500      1.448
--- buffer.c    11 Apr 2004 23:41:23 -0500      
***************
*** 536,544 ****
    if (!NILP (buf))
      error ("Buffer name `%s' is in use", SDATA (name));
  
    base_buffer = Fget_buffer (base_buffer);
!   if (NILP (base_buffer))
!     error ("No such buffer: `%s'", SDATA (name));
  
    if (SCHARS (name) == 0)
      error ("Empty string for buffer name is not allowed");
--- 536,547 ----
    if (!NILP (buf))
      error ("Buffer name `%s' is in use", SDATA (name));
  
+   if (NILP (Fget_buffer (base_buffer)))
+     error ("No such buffer: `%s'", SDATA (base_buffer));
+ 
    base_buffer = Fget_buffer (base_buffer);
!   if (NILP (XBUFFER (base_buffer)->name))
!     error ("Base buffer has been killed");
  
    if (SCHARS (name) == 0)
      error ("Empty string for buffer name is not allowed");
============================================================

We get:

===File ~/namebug-after-patch===============================
*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> (make-indirect-buffer "nosuchbuffer" "indi")
*** Eval error ***  No such buffer: `nosuchbuffer'
ELISP> 
============================================================

Note that base_buffer could be either an existing buffer or a string,
but if `Fget_buffer (base_buffer)' returns nil, it has to be a string.
I could install if desired.

Sincerely,

Luc.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]