diff options
Diffstat (limited to 'file_loader.c')
| -rw-r--r-- | file_loader.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/file_loader.c b/file_loader.c index 1bc3d20..7533b91 100644 --- a/file_loader.c +++ b/file_loader.c @@ -101,9 +101,15 @@ void fprint_line(FILE *dest, file_t *f, const char *start, const char *end, cons f->filename, linenum, charnum, msg); const char *eol = linenum == f->nlines ? strchr(line, '\0') : strchr(line, '\n'); if (end == NULL || end > eol) end = eol; - fprintf(dest, "\033[2m% 5ld |\033[0m %.*s\033[31;4;1m%.*s\033[0m%.*s\n", + fprintf(dest, "\033[2m% 5ld |\033[0m %.*s\033[41;30m%.*s\033[0m%.*s\n", linenum, (int)charnum - 1, line, (int)(end - &line[charnum-1]), &line[charnum-1], (int)(eol - end), end); + fprintf(dest, " "); + const char *p = line - 1; + for (; p < start; ++p) fputc(' ', dest); + if (start == end) ++end; + for (; p < end; ++p) fputc('^', dest); + fputc('\n', dest); } |
