diff --git a/clibasic.c b/clibasic.c index 993b1d6..4203df8 100644 --- a/clibasic.c +++ b/clibasic.c @@ -2,8 +2,6 @@ #include #include #include -#include -#include #include #include #include @@ -11,7 +9,7 @@ #include #include -char VER[] = "0.8.5"; +char VER[] = "0.9"; FILE *prog; FILE *f[256]; diff --git a/commands.c b/commands.c index 9f11e5a..99fc29d 100644 --- a/commands.c +++ b/commands.c @@ -12,10 +12,11 @@ if (!strcmp(arg[0], "EXIT") || !strcmp(arg[0], "QUIT")) { cleanExit(); } if (!strcmp(arg[0], "EXEC") || !strcmp(arg[0], "SH")) { - cerr = 0; if (argct != 1) {cerr = 3; goto cmderr;} if (argt[1] != 1) {cerr = 2; goto cmderr;} - err = system(arg[1]); + cerr = system(arg[1]); + cerr = 0; + printf("\e[38;5;%um\e[48;5;%um", fgc, bgc); goto cmderr; } if (!strcmp(arg[0], "PRINT")) { @@ -35,8 +36,7 @@ if (!strcmp(arg[0], "COLOR")) { else {bgc = (uint8_t)atoi(arg[2]);} } if (debug) printf("CMD[COLOR]: fgc: [%u], bgc: [%u]\n", fgc, bgc); - printf("\e[38;5;%um", fgc); - printf("\e[48;5;%um", bgc); + printf("\e[38;5;%um\e[48;5;%um", fgc, bgc); goto cmderr; } if (!strcmp(arg[0], "SET") || !strcmp(arg[0], "LET")) { diff --git a/functions.c b/functions.c index fb76564..d75c364 100644 --- a/functions.c +++ b/functions.c @@ -85,6 +85,14 @@ if (!strcmp(farg[0], "VAL")) { if (ftype == 1) {cerr = 2; goto fexit;} goto fexit; } +if (!strcmp(farg[0], "~PROMPT$")) { + cerr = 0; + ftype = 1; + if (fargct != 0) {cerr = 3; goto fexit;} + int tmpt = getVal(prompt, outbuf); + if (tmpt != 1) strcpy(outbuf, "CLIBASIC> "); + goto fexit; +} if (!strcmp(farg[0], "FGC")) { cerr = 0; ftype = 2;