diff options
Diffstat (limited to 'src/fmt.cff')
| -rw-r--r-- | src/fmt.cff | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/fmt.cff b/src/fmt.cff index 6707222..39b9e5b 100644 --- a/src/fmt.cff +++ b/src/fmt.cff @@ -387,6 +387,12 @@ extern fn warn(P *Parser, loc Loc, fmt *const u8, ...) void { } extern fn err(P *Parser, loc Loc, fmt *const u8, ...) void { + P.error = #t; + static nerr int = 0; + if nerr++ == 20 { + efmt("Aborting due to too many errors.\n"); + exit(1); + } let ap va_list #?; ap->start(fmt); vdiag(P, loc, "\e[31merror\e[0m", fmt, ap); |