diff --git a/src/toolsrc/drawl.pla b/src/toolsrc/drawl.pla index 7e73259..7d443d2 100644 --- a/src/toolsrc/drawl.pla +++ b/src/toolsrc/drawl.pla @@ -457,10 +457,13 @@ def natv_cdr(expr) return NULL end -def natv_evcon(expr) - var conds - - conds = expr=>cdr +def natv_cond(expr) + while expr + if eval_expr(expr=>car=>car) == @pred_true + return eval_expr(expr=>car=>cdr=>car) + fin + expr = expr=>cdr + loop return NULL end @@ -585,7 +588,7 @@ def install_defaults#0 new_sym("CONS")=>natv = @natv_cons) new_sym("ATOM")=>natv = @natv_atom) new_sym("EQ")=>natv = @natv_eq) - new_sym("COND")=>natv = @natv_evcon) + new_sym("COND")=>natv = @natv_cond) new_sym("SET")=>natv = @natv_set) new_sym("SETQ")=>natv = @natv_setq) new_sym("NULL")=>natv = @natv_null)