version 1.4, 2011/09/01 20:55:50 |
version 1.5, 2011/09/01 22:09:50 |
Line 121 pmandoc(struct mparse *mp, int fd, const char *fn, int |
|
Line 121 pmandoc(struct mparse *mp, int fd, const char *fn, int |
|
else |
else |
return; |
return; |
|
|
putchar('\n'); |
if ( ! list) |
|
putchar('\n'); |
} |
} |
|
|
/* |
/* |
|
|
pstring(const char *p, int col, int *colp, int list) |
pstring(const char *p, int col, int *colp, int list) |
{ |
{ |
enum mandoc_esc esc; |
enum mandoc_esc esc; |
|
const char *start; |
|
int emit; |
|
|
|
/* |
|
* Print as many column spaces til we achieve parity with the |
|
* input document. |
|
*/ |
|
|
|
again: |
|
if (list && '\0' != *p) { |
|
while (isspace((unsigned char)*p)) |
|
p++; |
|
|
|
while ('\'' == *p || '(' == *p || '"' == *p) |
|
p++; |
|
|
|
emit = isalpha((unsigned char)p[0]) && |
|
isalpha((unsigned char)p[1]); |
|
|
|
for (start = p; '\0' != *p; p++) |
|
if ('\\' == *p) { |
|
p++; |
|
esc = mandoc_escape(&p, NULL, NULL); |
|
if (ESCAPE_ERROR == esc) |
|
return; |
|
emit = 0; |
|
} else if (isspace((unsigned char)*p)) |
|
break; |
|
|
|
if (emit && p - start >= 2) { |
|
for ( ; start != p; start++) |
|
if (ASCII_HYPH == *start) |
|
putchar('-'); |
|
else |
|
putchar((unsigned char)*start); |
|
putchar('\n'); |
|
} |
|
|
|
if (isspace((unsigned char)*p)) |
|
goto again; |
|
|
|
return; |
|
} |
|
|
while (*colp < col) { |
while (*colp < col) { |
putchar(' '); |
putchar(' '); |
(*colp)++; |
(*colp)++; |
} |
} |
|
|
|
/* |
|
* Print the input word, skipping any special characters. |
|
*/ |
while ('\0' != *p) |
while ('\0' != *p) |
if ('\\' == *p) { |
if ('\\' == *p) { |
p++; |
p++; |
Line 152 pstring(const char *p, int col, int *colp, int list) |
|
Line 199 pstring(const char *p, int col, int *colp, int list) |
|
static void |
static void |
pline(int line, int *linep, int *col, int list) |
pline(int line, int *linep, int *col, int list) |
{ |
{ |
|
|
|
if (list) |
|
return; |
|
|
|
/* |
|
* Print out as many lines as needed to reach parity with the |
|
* original input. |
|
*/ |
|
|
while (*linep < line) { |
while (*linep < line) { |
putchar('\n'); |
putchar('\n'); |