version 1.5, 2011/01/02 10:10:57 |
version 1.9, 2011/03/15 16:23:51 |
Line 72 static const struct tbl_phrase keys[KEY_MAXKEYS] = { |
|
Line 72 static const struct tbl_phrase keys[KEY_MAXKEYS] = { |
|
}; |
}; |
|
|
static int arg(struct tbl_node *, int, |
static int arg(struct tbl_node *, int, |
const char *, int *, int); |
const char *, int *, enum tbl_ident); |
static void opt(struct tbl_node *, int, |
static void opt(struct tbl_node *, int, |
const char *, int *); |
const char *, int *); |
|
|
static int |
static int |
arg(struct tbl_node *tbl, int ln, const char *p, int *pos, int key) |
arg(struct tbl_node *tbl, int ln, const char *p, int *pos, enum tbl_ident key) |
{ |
{ |
int i; |
int i; |
char buf[KEY_MAXNUMSZ]; |
char buf[KEY_MAXNUMSZ]; |
Line 102 arg(struct tbl_node *tbl, int ln, const char *p, int * |
|
Line 102 arg(struct tbl_node *tbl, int ln, const char *p, int * |
|
|
|
switch (key) { |
switch (key) { |
case (KEY_DELIM): |
case (KEY_DELIM): |
if ('\0' == (tbl->opts.delims[0] = p[(*pos)++])) { |
if ('\0' == p[(*pos)++]) { |
TBL_MSG(tbl, MANDOCERR_TBL, ln, *pos - 1); |
TBL_MSG(tbl, MANDOCERR_TBL, ln, *pos - 1); |
return(0); |
return(0); |
} |
} |
|
|
if ('\0' == (tbl->opts.delims[1] = p[(*pos)++])) { |
if ('\0' == p[(*pos)++]) { |
TBL_MSG(tbl, MANDOCERR_TBL, ln, *pos - 1); |
TBL_MSG(tbl, MANDOCERR_TBL, ln, *pos - 1); |
return(0); |
return(0); |
} |
} |
|
|
/* Copy up to first non-alpha character. */ |
/* Copy up to first non-alpha character. */ |
|
|
for (sv = *pos, i = 0; i < KEY_MAXNAME; i++, (*pos)++) { |
for (sv = *pos, i = 0; i < KEY_MAXNAME; i++, (*pos)++) { |
buf[i] = tolower(p[*pos]); |
buf[i] = (char)tolower((unsigned char)p[*pos]); |
if ( ! isalpha((unsigned char)buf[i])) |
if ( ! isalpha((unsigned char)buf[i])) |
break; |
break; |
} |
} |