version 1.171, 2011/09/19 08:34:45 |
version 1.172, 2011/10/24 21:41:45 |
Line 186 static void roff_openeqn(struct roff *, const char * |
|
Line 186 static void roff_openeqn(struct roff *, const char * |
|
int, int, const char *); |
int, int, const char *); |
static enum rofft roff_parse(struct roff *, const char *, int *); |
static enum rofft roff_parse(struct roff *, const char *, int *); |
static enum rofferr roff_parsetext(char *); |
static enum rofferr roff_parsetext(char *); |
static void roff_res(struct roff *, |
static enum rofferr roff_res(struct roff *, |
char **, size_t *, int, int); |
char **, size_t *, int, int); |
static enum rofferr roff_rm(ROFF_ARGS); |
static enum rofferr roff_rm(ROFF_ARGS); |
static void roff_setstr(struct roff *, |
static void roff_setstr(struct roff *, |
Line 432 roff_alloc(struct mparse *parse) |
|
Line 432 roff_alloc(struct mparse *parse) |
|
* is processed. |
* is processed. |
* This also checks the syntax of regular escapes. |
* This also checks the syntax of regular escapes. |
*/ |
*/ |
static void |
static enum rofferr |
roff_res(struct roff *r, char **bufp, size_t *szp, int ln, int pos) |
roff_res(struct roff *r, char **bufp, size_t *szp, int ln, int pos) |
{ |
{ |
enum mandoc_esc esc; |
enum mandoc_esc esc; |
|
|
*/ |
*/ |
|
|
if ('\0' == *cp) |
if ('\0' == *cp) |
return; |
return(ROFF_CONT); |
|
|
if ('*' != *cp) { |
if ('*' != *cp) { |
res = cp; |
res = cp; |
|
|
mandoc_msg |
mandoc_msg |
(MANDOCERR_BADESCAPE, r->parse, |
(MANDOCERR_BADESCAPE, r->parse, |
ln, (int)(stesc - *bufp), NULL); |
ln, (int)(stesc - *bufp), NULL); |
return; |
return(ROFF_CONT); |
} |
} |
|
|
cp++; |
cp++; |
|
|
|
|
switch (*cp) { |
switch (*cp) { |
case ('\0'): |
case ('\0'): |
return; |
return(ROFF_CONT); |
case ('('): |
case ('('): |
cp++; |
cp++; |
maxl = 2; |
maxl = 2; |
|
|
(MANDOCERR_BADESCAPE, |
(MANDOCERR_BADESCAPE, |
r->parse, ln, |
r->parse, ln, |
(int)(stesc - *bufp), NULL); |
(int)(stesc - *bufp), NULL); |
return; |
return(ROFF_CONT); |
} |
} |
if (0 == maxl && ']' == *cp) |
if (0 == maxl && ']' == *cp) |
break; |
break; |
|
|
|
|
/* Just leave the string unexpanded. */ |
/* Just leave the string unexpanded. */ |
mandoc_msg(MANDOCERR_ROFFLOOP, r->parse, ln, pos, NULL); |
mandoc_msg(MANDOCERR_ROFFLOOP, r->parse, ln, pos, NULL); |
return; |
return(ROFF_IGN); |
} |
} |
|
return(ROFF_CONT); |
} |
} |
|
|
/* |
/* |
Line 604 roff_parseln(struct roff *r, int ln, char **bufp, |
|
Line 605 roff_parseln(struct roff *r, int ln, char **bufp, |
|
* words to fill in. |
* words to fill in. |
*/ |
*/ |
|
|
roff_res(r, bufp, szp, ln, pos); |
e = roff_res(r, bufp, szp, ln, pos); |
|
if (ROFF_IGN == e) |
|
return(e); |
|
assert(ROFF_CONT == e); |
|
|
ppos = pos; |
ppos = pos; |
ctl = mandoc_getcontrol(*bufp, &pos); |
ctl = mandoc_getcontrol(*bufp, &pos); |