version 1.157, 2010/07/04 22:04:04 |
version 1.160, 2010/08/07 20:33:55 |
|
|
#include <time.h> |
#include <time.h> |
|
|
#include "mandoc.h" |
#include "mandoc.h" |
#include "regs.h" |
|
#include "libmdoc.h" |
#include "libmdoc.h" |
#include "libmandoc.h" |
#include "libmandoc.h" |
|
|
Line 722 mdoc_ptext(struct mdoc *m, int line, char *buf, int of |
|
Line 721 mdoc_ptext(struct mdoc *m, int line, char *buf, int of |
|
|
|
assert(buf < end); |
assert(buf < end); |
|
|
if (mandoc_eos(buf+offs, (size_t)(end-buf-offs))) |
if (mandoc_eos(buf+offs, (size_t)(end-buf-offs), 0)) |
m->last->flags |= MDOC_EOS; |
m->last->flags |= MDOC_EOS; |
|
|
return(1); |
return(1); |
Line 765 mdoc_pmacro(struct mdoc *m, int ln, char *buf, int off |
|
Line 764 mdoc_pmacro(struct mdoc *m, int ln, char *buf, int off |
|
|
|
i = offs; |
i = offs; |
|
|
/* Accept whitespace after the initial control char. */ |
/* Accept tabs/whitespace after the initial control char. */ |
|
|
if (' ' == buf[i]) { |
if (' ' == buf[i] || '\t' == buf[i]) { |
i++; |
i++; |
while (buf[i] && ' ' == buf[i]) |
while (buf[i] && (' ' == buf[i] || '\t' == buf[i])) |
i++; |
i++; |
if ('\0' == buf[i]) |
if ('\0' == buf[i]) |
return(1); |
return(1); |
Line 777 mdoc_pmacro(struct mdoc *m, int ln, char *buf, int off |
|
Line 776 mdoc_pmacro(struct mdoc *m, int ln, char *buf, int off |
|
|
|
sv = i; |
sv = i; |
|
|
/* Copy the first word into a nil-terminated buffer. */ |
/* |
|
* Copy the first word into a nil-terminated buffer. Stop |
|
* copying when a tab, space, or eoln is encountered. |
|
*/ |
|
|
for (j = 0; j < 4; j++, i++) { |
for (j = 0; j < 4; j++, i++) { |
if ('\0' == (mac[j] = buf[i])) |
if ('\0' == (mac[j] = buf[i])) |
break; |
break; |
else if (' ' == buf[i]) |
else if (' ' == buf[i] || '\t' == buf[i]) |
break; |
break; |
|
|
/* Check for invalid characters. */ |
/* Check for invalid characters. */ |
|
/* TODO: remove me, already done in main.c. */ |
|
|
if (isgraph((u_char)buf[i])) |
if (isgraph((u_char)buf[i])) |
continue; |
continue; |
Line 808 mdoc_pmacro(struct mdoc *m, int ln, char *buf, int off |
|
Line 811 mdoc_pmacro(struct mdoc *m, int ln, char *buf, int off |
|
return(1); |
return(1); |
} |
} |
|
|
/* The macro is sane. Jump to the next word. */ |
/* Disregard the first trailing tab, if applicable. */ |
|
|
|
if ('\t' == buf[i]) |
|
i++; |
|
|
|
/* Jump to the next non-whitespace word. */ |
|
|
while (buf[i] && ' ' == buf[i]) |
while (buf[i] && ' ' == buf[i]) |
i++; |
i++; |