aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/read.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2021-06-27 17:57:54 +0000
committerIngo Schwarze <schwarze@openbsd.org>2021-06-27 17:57:54 +0000
commitbe51c141f11b2f1550c1b8bbd47639509679ecd3 (patch)
treed34469b5bc2a0774c98deaa7c24fff6bcd606281 /read.c
parent78fc2ca35b074c97e98436c33ca288bd9a7a09d0 (diff)
downloadmandoc-be51c141f11b2f1550c1b8bbd47639509679ecd3.tar.gz
mandoc-be51c141f11b2f1550c1b8bbd47639509679ecd3.tar.zst
mandoc-be51c141f11b2f1550c1b8bbd47639509679ecd3.zip
add a style message about overlong text lines,
trying very hard to avoid false positives, not at all trying to catch as many cases as possible; feature originally suggested by tb@, OK tb@ kn@ jmc@
Diffstat (limited to 'read.c')
-rw-r--r--read.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/read.c b/read.c
index 03a71c33..5b33edbe 100644
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/* $Id: read.c,v 1.219 2020/04/24 12:02:33 schwarze Exp $ */
+/* $Id: read.c,v 1.220 2021/06/27 17:57:54 schwarze Exp $ */
/*
* Copyright (c) 2010-2020 Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
@@ -154,6 +154,7 @@ mparse_buf_r(struct mparse *curp, struct buf blk, size_t i, int start)
struct buf *firstln, *lastln, *thisln, *loop;
char *cp;
size_t pos; /* byte number in the ln buffer */
+ size_t spos; /* at the start of the current line parse */
int line_result, result;
int of;
int lnn; /* line number in the real file */
@@ -180,6 +181,7 @@ mparse_buf_r(struct mparse *curp, struct buf blk, size_t i, int start)
curp->filenc & MPARSE_LATIN1)
curp->filenc = preconv_cue(&blk, i);
}
+ spos = pos;
while (i < blk.sz && (start || blk.buf[i] != '\0')) {
@@ -279,7 +281,8 @@ mparse_buf_r(struct mparse *curp, struct buf blk, size_t i, int start)
of = 0;
rerun:
- line_result = roff_parseln(curp->roff, curp->line, &ln, &of);
+ line_result = roff_parseln(curp->roff, curp->line,
+ &ln, &of, start && spos == 0 ? pos : 0);
/* Process options. */