struct buffer *
decode_buffer (Lisp_Object buffer, int allow_string)
{
- if (NILP (buffer))
+ if (NILP (buffer) || (!POINTER_TYPE_P( XTYPE(buffer))))
return current_buffer;
if (allow_string && STRINGP (buffer))
delete_from_buffer_alist (buf);
- /* #### This is a problem if this buffer is in a dedicated window.
- Need to undedicate any windows of this buffer first (and delete them?)
- */
+ /* Undedicate any windows of this buffer, and make sure no windows
+ show it. */
+
+ undedicate_windows (buf, Qt);
+
GCPRO1 (buf);
Freplace_buffer_in_windows (buf, Qnil, Qall);
UNGCPRO;
/* #### Warning: 1<<31 is the largest number currently allowable
due to the XINT() handling of this value. With some
- rearrangement you can get 3 more bits. */
+ rearrangement you can get 3 more bits.
+
+ #### 3 more? 34 bits???? -ben */
}
}