case Vnone:
return 0;
case Vstr:
- vl->str.txt = arg;
vl->str.len = strlen(arg);
+ vl->str.txt = malloc(vl->str.len);
+ memcpy(vl->str.txt, arg, vl->str.len);
break;
case Vnum:
tx.txt = arg; tx.len = strlen(tx.txt);
cast(binode, cs->condpart)->op == Block) {
printf(":\n");
print_exec(cs->condpart, indent+1, bracket);
- do_indent(indent, "then:\n");
- print_exec(cs->thenpart, indent+1, bracket);
+ if (cs->thenpart) {
+ do_indent(indent, "then:\n");
+ print_exec(cs->thenpart, indent+1, bracket);
+ }
} else {
printf(" ");
print_exec(cs->condpart, 0, bracket);
- printf(":\n");
- print_exec(cs->thenpart, indent+1, bracket);
+ if (cs->thenpart) {
+ printf(":\n");
+ print_exec(cs->thenpart, indent+1, bracket);
+ } else
+ printf("\n");
}
}
for (cp = cs->casepart; cp; cp = cp->next) {