]> git.cameronkatri.com Git - mandoc.git/blobdiff - term_ascii.c
When formatting man(7) documents that do not contain .SH macros
[mandoc.git] / term_ascii.c
index 439056346c1a4d63937150078fc9b8dee1436d84..f47ffd75d9c306e007f3a6b8ce405b33f04e2e25 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: term_ascii.c,v 1.60 2018/04/13 18:31:00 schwarze Exp $ */
+/*     $Id: term_ascii.c,v 1.61 2018/05/20 21:37:34 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014, 2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -133,6 +133,8 @@ ascii_init(enum termenc enc, const struct manoutput *outopts)
        if (outopts->synopsisonly)
                p->synopsisonly = 1;
 
+       assert(p->defindent < UINT16_MAX);
+       assert(p->defrmargin < UINT16_MAX);
        return p;
 }
 
@@ -171,6 +173,8 @@ ascii_setwidth(struct termp *p, int iop, int width)
                p->defrmargin -= width;
        else
                p->defrmargin = 0;
+       if (p->defrmargin > 1000)
+               p->defrmargin = 1000;
        p->lastrmargin = p->tcol->rmargin;
        p->tcol->rmargin = p->maxrmargin = p->defrmargin;
 }
@@ -239,6 +243,7 @@ ascii_advance(struct termp *p, size_t len)
 {
        size_t          i;
 
+       assert(len < UINT16_MAX);
        for (i = 0; i < len; i++)
                putchar(' ');
 }
@@ -376,6 +381,7 @@ locale_advance(struct termp *p, size_t len)
 {
        size_t          i;
 
+       assert(len < UINT16_MAX);
        for (i = 0; i < len; i++)
                putwchar(L' ');
 }