=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- src/usr.bin/mandoc/mdoc.c 2010/05/14 01:54:37 1.46 +++ src/usr.bin/mandoc/mdoc.c 2010/05/14 14:47:44 1.47 @@ -1,4 +1,4 @@ -/* $Id: mdoc.c,v 1.46 2010/05/14 01:54:37 schwarze Exp $ */ +/* $Id: mdoc.c,v 1.47 2010/05/14 14:47:44 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -285,7 +285,9 @@ if (MDOC_HALT & m->flags) return(0); - return('.' == *buf ? mdoc_pmacro(m, ln, buf) : + m->flags |= MDOC_NEWLINE; + return('.' == *buf ? + mdoc_pmacro(m, ln, buf) : mdoc_ptext(m, ln, buf)); } @@ -449,7 +451,9 @@ p->pos = pos; p->tok = tok; p->type = type; - + if (MDOC_NEWLINE & m->flags) + p->flags |= MDOC_LINE; + m->flags &= ~MDOC_NEWLINE; return(p); } @@ -721,7 +725,7 @@ mdoc_pmacro(struct mdoc *m, int ln, char *buf) { enum mdoct tok; - int i, j; + int i, j, sv; char mac[5]; struct mdoc_node *n; char *t; @@ -743,6 +747,8 @@ return(1); } + sv = i; + /* Copy the first word into a nil-terminated buffer. */ for (j = 0; j < 4; j++, i++) { @@ -790,7 +796,7 @@ * Begin recursive parse sequence. Since we're at the start of * the line, we don't need to do callable/parseable checks. */ - if ( ! mdoc_macro(m, tok, ln, 1, &i, buf)) + if ( ! mdoc_macro(m, tok, ln, sv, &i, buf)) goto err; /*