From 88157d21ef4e0e7edfe65c55d80f66401a578afc Mon Sep 17 00:00:00 2001 From: jsg Date: Fri, 23 Aug 2019 04:38:55 +0000 Subject: update tradcpp to 0.5.3 --- libexec/tradcpp/files.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'libexec/tradcpp/files.c') diff --git a/libexec/tradcpp/files.c b/libexec/tradcpp/files.c index d49f56640a0..dae8ee76b40 100644 --- a/libexec/tradcpp/files.c +++ b/libexec/tradcpp/files.c @@ -163,6 +163,10 @@ countnls(const char *buf, size_t start, size_t limit) for (i=start; i 0xffffffff) { + complain(&places.current, + "Input line too long"); + die(); + } } if (ateof) { @@ -231,7 +241,7 @@ file_read(const struct placefile *pf, int fd, const char *name, bool toplevel) /* eof in middle of line */ ateof = true; ptmp = places.current; - ptmp.column += bufend - linestart; + place_addcolumns(&ptmp, bufend - linestart); if (buf[bufend - 1] == '\n') { complain(&ptmp, "Unclosed comment"); complain_fail(); @@ -257,7 +267,7 @@ file_read(const struct placefile *pf, int fd, const char *name, bool toplevel) assert(buf[lineend] == '\n'); buf[lineend] = '\0'; nextlinestart = lineend+1; - places.nextline.line++; + place_addlines(&places.nextline, 1); /* check for CR/NL */ if (lineend > 0 && buf[lineend-1] == '\r') { @@ -284,7 +294,8 @@ file_read(const struct placefile *pf, int fd, const char *name, bool toplevel) assert(buf[lineend] == '\0'); /* count how many commented-out newlines we swallowed */ - places.nextline.line += countnls(buf, linestart, lineend); + place_addlines(&places.nextline, + countnls(buf, linestart, lineend)); /* process the line (even if it's empty) */ directive_gotline(&places, buf+linestart, lineend-linestart); -- cgit v1.2.3-59-g8ed1b