|
@@ -26,11 +26,12 @@ void runCodeStdin(Inter *inter) {
|
|
bool should_break = false;
|
|
bool should_break = false;
|
|
setResultCore(&result);
|
|
setResultCore(&result);
|
|
printf("%s", HelloString);
|
|
printf("%s", HelloString);
|
|
- while (!should_break && !ferror(stdin) && !feof(stdin)){
|
|
|
|
|
|
+ while (!should_break){
|
|
|
|
+ if (ferror(stdin) || feof(stdin))
|
|
|
|
+ clearerr(stdin);
|
|
fprintf(stdout, ">>> ");
|
|
fprintf(stdout, ">>> ");
|
|
if (runParser(NULL, inter, true, &pst)) {
|
|
if (runParser(NULL, inter, true, &pst)) {
|
|
globalIterStatement(&result, inter, pst);
|
|
globalIterStatement(&result, inter, pst);
|
|
-
|
|
|
|
if (result.type == error_return && !(should_break = is_quitExc(result.value, inter)))
|
|
if (result.type == error_return && !(should_break = is_quitExc(result.value, inter)))
|
|
printError(&result, inter, true);
|
|
printError(&result, inter, true);
|
|
freeStatement(pst);
|
|
freeStatement(pst);
|