They are reported to stderr as two lines: one is the location of the error,
another contains the error message. This is parsed by the evaluator and the
second line is displayed on the screen, while both are logged.
{
va_list args;
va_start(args, msg);
- printf("%s:%d: ", t->stream->name, t->line);
- vprintf(msg, args);
- putchar('\n');
+ fprintf(stderr, "Error at %s line %d:\n", t->stream->name, t->line);
+ vfprintf(stderr, msg, args);
+ fputc('\n', stderr);
va_end(args);
exit(1);
}