=================================================================== RCS file: /cvs/mandoc/roff.c,v retrieving revision 1.376 retrieving revision 1.377 diff -u -p -r1.376 -r1.377 --- mandoc/roff.c 2020/08/27 12:59:02 1.376 +++ mandoc/roff.c 2021/06/27 17:57:55 1.377 @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.376 2020/08/27 12:59:02 schwarze Exp $ */ +/* $Id: roff.c,v 1.377 2021/06/27 17:57:55 schwarze Exp $ */ /* * Copyright (c) 2010-2015, 2017-2020 Ingo Schwarze * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons @@ -1823,7 +1823,7 @@ roff_parsetext(struct roff *r, struct buf *buf, int po } int -roff_parseln(struct roff *r, int ln, struct buf *buf, int *offs) +roff_parseln(struct roff *r, int ln, struct buf *buf, int *offs, size_t len) { enum roff_tok t; int e; @@ -1833,6 +1833,14 @@ roff_parseln(struct roff *r, int ln, struct buf *buf, int ctl; /* macro line (boolean) */ ppos = pos = *offs; + + if (len > 80 && r->tbl == NULL && r->eqn == NULL && + (r->man->flags & ROFF_NOFILL) == 0 && + strchr(" .\\", buf->buf[pos]) == NULL && + buf->buf[pos] != r->control && + strcspn(buf->buf, " ") < 80) + mandoc_msg(MANDOCERR_TEXT_LONG, ln, (int)len - 1, + "%.20s...", buf->buf + pos); /* Handle in-line equation delimiters. */