version 1.263, 2017/04/29 12:45:41 |
version 1.266, 2017/06/07 20:58:49 |
Line 253 mdoc_ptext(struct roff_man *mdoc, int line, char *buf, |
|
Line 253 mdoc_ptext(struct roff_man *mdoc, int line, char *buf, |
|
* blank lines aren't allowed, but enough manuals assume this |
* blank lines aren't allowed, but enough manuals assume this |
* behaviour that we want to work around it. |
* behaviour that we want to work around it. |
*/ |
*/ |
roff_elem_alloc(mdoc, line, offs, MDOC_sp); |
roff_elem_alloc(mdoc, line, offs, ROFF_sp); |
mdoc->last->flags |= NODE_VALID | NODE_ENDED; |
mdoc->last->flags |= NODE_VALID | NODE_ENDED; |
mdoc->next = ROFF_NEXT_SIBLING; |
mdoc->next = ROFF_NEXT_SIBLING; |
return 1; |
return 1; |
Line 278 mdoc_ptext(struct roff_man *mdoc, int line, char *buf, |
|
Line 278 mdoc_ptext(struct roff_man *mdoc, int line, char *buf, |
|
for (c = buf + offs; c != NULL; c = strchr(c + 1, '.')) { |
for (c = buf + offs; c != NULL; c = strchr(c + 1, '.')) { |
if (c - buf < offs + 2) |
if (c - buf < offs + 2) |
continue; |
continue; |
if (end - c < 4) |
if (end - c < 3) |
break; |
break; |
if (isalpha((unsigned char)c[-2]) && |
if (c[1] != ' ' || |
isalpha((unsigned char)c[-1]) && |
isalpha((unsigned char)c[-2]) == 0 || |
c[1] == ' ' && |
isalpha((unsigned char)c[-1]) == 0 || |
isupper((unsigned char)(c[2] == ' ' ? c[3] : c[2])) && |
(c[-2] == 'n' && c[-1] == 'c') || |
(c[-2] != 'n' || c[-1] != 'c') && |
(c[-2] == 'v' && c[-1] == 's')) |
(c[-2] != 'v' || c[-1] != 's')) |
continue; |
|
c += 2; |
|
if (*c == ' ') |
|
c++; |
|
if (*c == ' ') |
|
c++; |
|
if (isupper((unsigned char)(*c))) |
mandoc_msg(MANDOCERR_EOS, mdoc->parse, |
mandoc_msg(MANDOCERR_EOS, mdoc->parse, |
line, (int)(c - buf), NULL); |
line, (int)(c - buf), NULL); |
} |
} |