toma@sail.LABS.TEK.COM (Tom Almy) (02/14/91)
The latest bug fix for XLISP 2.x:
Problem: The environment is not properly restored when a return is executed
within a DOLIST or DOTIMES form.
Example: (prog ((x 10))
(dotimes (x 10) (return nil))
(print x))
will print "0"
Solution: In file xlcont.c, functions xdolist() and xdotimes(), move
the lines,
/* unbind the arguments */
xlenv = cdr(xlenv);
out of the else statement (just before the following "xlend(&cntxt)".
--
Tom Almy
toma@sail.labs.tek.com
Standard Disclaimers Apply