version 1.55, 2010/03/27 10:04:56 |
version 1.58, 2010/03/29 04:52:14 |
Line 478 macrowarn(struct man *m, int ln, const char *buf) |
|
Line 478 macrowarn(struct man *m, int ln, const char *buf) |
|
int |
int |
man_pmacro(struct man *m, int ln, char *buf) |
man_pmacro(struct man *m, int ln, char *buf) |
{ |
{ |
int i, j, ppos, fl; |
int i, j, ppos; |
enum mant tok; |
enum mant tok; |
char mac[5]; |
char mac[5]; |
struct man_node *n; |
struct man_node *n; |
|
|
/* Comments and empties are quickly ignored. */ |
/* Comments and empties are quickly ignored. */ |
|
|
fl = m->flags; |
if (MAN_BLINE & m->flags) |
|
m->flags |= MAN_BPLINE; |
|
|
if ('\0' == buf[1]) |
if ('\0' == buf[1]) |
return(1); |
return(1); |
|
|
i = 1; |
i = 1; |
|
|
if (' ' == buf[i]) { |
/* |
|
* Skip whitespace between the control character and initial |
|
* text. "Whitespace" is both spaces and tabs. |
|
*/ |
|
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]) |
goto out; |
goto out; |
|
|
* family) within BLINE or ELINE systems. This is annoying. |
* family) within BLINE or ELINE systems. This is annoying. |
*/ |
*/ |
|
|
if ( ! (MAN_BLINE & fl)) { |
if ( ! (MAN_BPLINE & m->flags)) { |
m->flags &= ~MAN_ILINE; |
m->flags &= ~MAN_ILINE; |
return(1); |
return(1); |
} |
} |
|
m->flags &= ~MAN_BPLINE; |
|
|
/* |
/* |
* If we're in a block scope, then allow this macro to slip by |
* If we're in a block scope, then allow this macro to slip by |