version 1.47, 2011/04/17 09:08:19 |
version 1.48, 2011/04/19 16:38:48 |
Line 95 numescape(const char *start) |
|
Line 95 numescape(const char *start) |
|
return(++i); |
return(++i); |
} |
} |
|
|
/* |
|
* Handle an escaped sequeence. This should be called with any |
|
* string subsequent a `\'. Pass a pointer to this substring as "end"; |
|
* it will be set to the supremum of the parsed escape sequence. If |
|
* this returns ESCAPE_ERROR, the string is bogus and should be thrown |
|
* away. If not ESCAPE_ERROR or ESCAPE_IGNORE, "start" is set to the |
|
* first relevant character of the substring (font, glyph, whatever) of |
|
* length sz. Both "start" and "sz" may be NULL. |
|
*/ |
|
enum mandoc_esc |
enum mandoc_esc |
mandoc_escape(const char **end, const char **start, int *sz) |
mandoc_escape(const char **end, const char **start, int *sz) |
{ |
{ |
Line 460 mandoc_strdup(const char *ptr) |
|
Line 451 mandoc_strdup(const char *ptr) |
|
* or to the null byte terminating the argument line. |
* or to the null byte terminating the argument line. |
*/ |
*/ |
char * |
char * |
mandoc_getarg(struct mparse *parse, |
mandoc_getarg(struct mparse *parse, char **cpp, int ln, int *pos) |
char **cpp, int ln, int dowarn, int *pos) |
|
{ |
{ |
char *start, *cp; |
char *start, *cp; |
int quoted, pairs, white; |
int quoted, pairs, white; |
Line 508 mandoc_getarg(struct mparse *parse, |
|
Line 498 mandoc_getarg(struct mparse *parse, |
|
} |
} |
|
|
/* Quoted argument without a closing quote. */ |
/* Quoted argument without a closing quote. */ |
if (dowarn && 1 == quoted) |
if (1 == quoted) |
mandoc_msg(MANDOCERR_BADQUOTE, parse, ln, *pos, NULL); |
mandoc_msg(MANDOCERR_BADQUOTE, parse, ln, *pos, NULL); |
|
|
/* Null-terminate this argument and move to the next one. */ |
/* Null-terminate this argument and move to the next one. */ |
Line 522 mandoc_getarg(struct mparse *parse, |
|
Line 512 mandoc_getarg(struct mparse *parse, |
|
*pos += (int)(cp - start) + (quoted ? 1 : 0); |
*pos += (int)(cp - start) + (quoted ? 1 : 0); |
*cpp = cp; |
*cpp = cp; |
|
|
if (dowarn && '\0' == *cp && (white || ' ' == cp[-1])) |
if ('\0' == *cp && (white || ' ' == cp[-1])) |
mandoc_msg(MANDOCERR_EOLNSPACE, parse, ln, *pos, NULL); |
mandoc_msg(MANDOCERR_EOLNSPACE, parse, ln, *pos, NULL); |
|
|
return(start); |
return(start); |