carroll@s.cs.uiuc.edu (01/05/90)
Version: 18.55
OS: N/A
File: keyboard.c
Function: cmd_error()
$$ used to delimit bug comments
Lisp_Object
cmd_error (data)
Lisp_Object data;
{
Lisp_Object errmsg, tail, errname, file_error;
int i;
$$ extraneous code removed $$
/* Print an error message including the data items.
This is done by printing it into a scratch buffer
and then making a copy of the text in the buffer. */
if (!CONSP (data)) data = Qnil;
tail = Fcdr (data);
/* For file-error, make error message by concatenating
all the data items. They are all strings. */
if (!NULL (file_error))
errmsg = XCONS (tail)->car, tail = XCONS (tail)->cdr;
$$ Bug! If tail is nil, then this should crash&burn. And tail will be
nil if data was nil or not a cons cell (see immediately previous if).
Further, if cmd_error() is called from internal_condition_case(), then
data is nil, causing this failure.
$$
Alan M. Carroll "Oh goody, the Illudium Q-36 Explosive
carroll@s.cs.uiuc.edu Space Modulator!"
CS Grad / U of Ill @ Urbana ...{ucbvax,pur-ee,convex}!s.cs.uiuc.edu!carroll