toma@tekgvs.LABS.TEK.COM (Tom Almy) (05/08/90)
Bug: APPEND does not signal an error if any of its arguments (except for the
last argument) is not a true list.
Repair: In xllist.c, xappend()
while (xlargc > 1) {
/* append each element of this list to the result list */
for (list = nextarg(); consp(list); list = cdr(list)) {
next = consa(car(list));
if (val) rplacd(last,next);
else val = next;
last = next;
}
if (list != NIL) xlbadtype(*--xlargv); /*ADDED LINE*/
}
Bug: NCONC does not signal an error if any of its arguments (except for the
last argument) is not a list.
In xllist.c, xnconc()
/* ignore everything except lists */
/* Delete this comment ^^^^^^^^^^^^^^^^^^^^ */
if (((next = nextarg()) != NIL) && consp(next)) {
/* change ^ was 0 */
/* concatenate this list to the result list */
if (val) rplacd(last,next);
else val = next;
/* find the end of the list */
while (consp(cdr(next)))
next = cdr(next);
last = next;
}
else xlbadtype(*--xlargv); /* ADDED LINE */
}
Tom Almy
toma@tekgvs.labs.tek.com
Standard Disclaimers Apply