commit - 3e23847c5a3bd90213c8b080f0c19094eb5707a3
commit + 219cbeaa58fa0f4f6a90d357d38414dd80bc8463
blob - 71ba49d74d6d53926437437b20dde74eaecdea0d
blob + f04e9995a11e0f1ef8a590d58081409203b239c1
--- script.c
+++ script.c
proc = op->v.funcall.proc;
if (proc->nativefn != NULL) {
/* push arguments on the stack */
- for (i = 0; i < op->v.funcall.argc; ++i) {
- t = &op->v.funcall.argv[i];
- if ((ret = eval(t)) != EVAL_OK)
- return ret;
- }
+ t = op->v.funcall.argv;
+ if (t != NULL && (ret = eval(t)) != EVAL_OK)
+ return ret;
if ((ret = proc->nativefn(op->v.funcall.argc))
!= EVAL_OK)
return ret;
} else {
pushenv();
- for (i = 0; i < op->v.funcall.argc; ++i) {
- t = &op->v.funcall.argv[i];
+ for (t = op->v.funcall.argv, i = 0;
+ t != NULL;
+ t = t->next, i++) {
if ((ret = setvar(proc->args[i], t))
!= EVAL_OK)
return ret;