emacs-devel
[Top][All Lists]
Advanced

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

Re: make-indirect-buffer


From: Stefan Monnier
Subject: Re: make-indirect-buffer
Date: 12 Apr 2004 17:01:09 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

> ***************
> *** 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");

The basic idea looks fine, but the above code calls Fget_buffer twice for
no reason.  It seems the following code would work as well:

   base_buffer = Fget_buffer (base_buffer);
   if (NILP (base_buffer))
     /* We assume that (get-buffer foo)==nil implies STRINGP (foo).
        Is that true?  --Stef  */
     error ("No such buffer: `%s'", SDATA (base_buffer));
   if (NILP (XBUFFER (base_buffer)->name))
     error ("Base buffer has been killed");


-- Stefan




reply via email to

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