summaryrefslogtreecommitdiff
path: root/lib/exceptions.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/exceptions.c')
-rw-r--r--lib/exceptions.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/exceptions.c b/lib/exceptions.c
index 72842a4..89d15c4 100644
--- a/lib/exceptions.c
+++ b/lib/exceptions.c
@@ -14,6 +14,7 @@
#endif
#include "exceptions.h"
#include "pile.h"
+#include "terminal.h"
char *contexts[128];
int clevel = 0;
@@ -81,6 +82,10 @@ void exception(int level, char *msg)
int i;
switch (level) {
case 1:
+ fprintf(stderr, "Error detected. Showing context.\n");
+ for (i = 0; i < clevel; i++) {
+ fprintf(stderr, " (%i) - %s\n", i, contexts[i]);
+ }
fprintf(stderr, " Error description: %s\n", msg);
flush_pile();
global_error = 1;
@@ -91,6 +96,7 @@ void exception(int level, char *msg)
fprintf(stderr, " (%i) - %s\n", i, contexts[i]);
}
fprintf(stderr, " Error description: %s\n", msg);
+ clearterm();
exit(1);
break;
}