diff options
Diffstat (limited to 'lib/forlan.c')
-rw-r--r-- | lib/forlan.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/forlan.c b/lib/forlan.c index f1d49d7..e86189b 100644 --- a/lib/forlan.c +++ b/lib/forlan.c @@ -17,6 +17,7 @@ #include "libeclat.h" #include <string.h> #include <setjmp.h> +#include <ctype.h> #include "grecs.h" #include "forlan.h" @@ -321,7 +322,7 @@ eval_comp0(forlan_eval_env_t env, union forlan_node *p) if (p->comp.root) { forlan_eval(env, p->comp.root); if (!retval_boolean(env)) - return; + return NULL; coerce_retval(env, 'n'); root = env->retval.v.node; } else @@ -465,8 +466,6 @@ dump_stmt(FILE *fp, union forlan_node *p, int *num, int lev) void eval_stmt(forlan_eval_env_t env, union forlan_node *node) { - union forlan_node *np; - while (node && node->type == forlan_type_stmt) { forlan_eval(env, node->stmt.stmt); node = node->stmt.next; @@ -637,9 +636,9 @@ dump_loop(FILE *fp, union forlan_node *p, int *num, int lev) fprintf(fp, "LOOP %lu\n", (unsigned long) p->loop.idx); fprintf(fp, "%04d: %*.*sEXPR\n", ++*num, lev, lev, ""); forlan_dump_node(fp, p->loop.node, num, lev + 1); - fprintf(fp, "%04d: %*.*sSTMT %lu\n", ++*num, lev, lev, "", n); + fprintf(fp, "%04d: %*.*sSTMT %d\n", ++*num, lev, lev, "", n); forlan_dump_node(fp, p->loop.stmt, num, lev + 1); - fprintf(fp, "%04d: %*.*sEND LOOP %lu\n", ++*num, lev, lev, "", n); + fprintf(fp, "%04d: %*.*sEND LOOP %d\n", ++*num, lev, lev, "", n); } void @@ -897,8 +896,8 @@ func_decode(forlan_eval_env_t env, struct grecs_list *list) if (!*p) break; ilen = strcspn(p, " \t\f\n"); - eclat_base64_decode(p, ilen, &optr, &olen); - grecs_txtacc_grow(acc, optr, olen); + eclat_base64_decode((unsigned char*) p, ilen, &optr, &olen); + grecs_txtacc_grow(acc, (char*)optr, olen); free(optr); p += ilen; |