Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles $Revision: 1.6.2.17 $; site ea.UUCP
Path: utzoo!linus!decvax!decwrl!amd!dual!zehntel!ihnp4!inuxc!pur-ee!uiucdcs!ea!mwm
From: mwm@ea.UUCP
Newsgroups: net.lang.lisp
Subject: Bug in xlisp xequal function
Message-ID: <6000004@ea.UUCP>
Date: Sat, 13-Oct-84 02:52:00 EDT
Article-I.D.: ea.6000004
Posted: Sat Oct 13 02:52:00 1984
Date-Received: Fri, 19-Oct-84 05:44:37 EDT
Lines: 24
Nf-ID: #N:ea:6000004:000:749
Nf-From: ea!mwm    Oct 13 01:52:00 1984

Notes don't seem to be getting this far, so I'm not sure if this is
appreciated, but here goes anyway:

After adding LET to xlisp, I turned up a bug in the xequal function (the
internal version of EQUAL). If xequal gets called with one nil argument, it
can drop core. I don't know how it worked before, and would like
corraboration from others. The fix is to put in explicit tests for nil in
xequal around line 250 in the file xllist.c, as so:

    if (xeq(arg1,arg2)
	return(TRUE);
    else
	<...>
---
    if (xeq(arg1,arg2)
	return(TRUE);
    if (arg1 == (struct node *) NULL) return arg2 == (struct node *) NULL ;
    if (arg2 == (struct node *) NULL) return FALSE ;
	<...>

Am I lost? Comments by mail, please, due to the notes problem.