=================================================================== RCS file: /cvs/texi2mdoc/util.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -p -r1.24 -r1.25 --- texi2mdoc/util.c 2015/03/03 15:21:01 1.24 +++ texi2mdoc/util.c 2015/03/03 22:37:24 1.25 @@ -1,4 +1,4 @@ -/* $Id: util.c,v 1.24 2015/03/03 15:21:01 kristaps Exp $ */ +/* $Id: util.c,v 1.25 2015/03/03 22:37:24 kristaps Exp $ */ /* * Copyright (c) 2015 Kristaps Dzonsons * @@ -569,10 +569,16 @@ static void parseword(struct texi *p, size_t *pos, char extra) { + /* + * Some line control: if we (non-macro, non-literal) already + * have more than 72 characters written to the screen, then + * output a newline before getting started. + */ if (p->seenws && 0 == p->outmacro && p->outcol > 72 && 0 == p->literal) texiputchar(p, '\n'); - /* FIXME: abstract this: we use it elsewhere. */ + + /* Usual padding in the case of seen whitespace. */ if (p->seenws && p->outcol && 0 == p->literal) texiputchar(p, ' '); @@ -601,6 +607,15 @@ parseword(struct texi *p, size_t *pos, char extra) texiputchar(p, BUF(p)[*pos]); advance(p, pos); } + + /* + * New sentence, new line:if we (non-macro, non-literal) see a + * period at the end of the last printed word, then open a + * newline. + */ + if (0 == p->literal && 0 == p->outmacro && + *pos < BUFSZ(p) && '.' == BUF(p)[*pos - 1]) + texiputchar(p, '\n'); } /*