526 |
static struct Message * |
static struct Message * |
527 |
msg_tree_parse(const char *cmd, struct MessageTree *root) |
msg_tree_parse(const char *cmd, struct MessageTree *root) |
528 |
{ |
{ |
529 |
struct MessageTree *mtree; |
struct MessageTree *mtree = root; |
530 |
assert(cmd && *cmd); |
assert(cmd && *cmd); |
|
for (mtree = root->pointers[(*cmd) & (MAXPTRLEN-1)]; mtree != NULL; |
|
|
mtree = mtree->pointers[(*++cmd) & (MAXPTRLEN-1)]) |
|
|
{ |
|
|
if (!IsAlpha(*cmd)) |
|
|
return(NULL); |
|
|
if (*(cmd + 1) == '\0') |
|
|
return(mtree->msg); /* NULL if parsed invalid/unknown command */ |
|
531 |
|
|
532 |
} |
while (IsAlpha(*cmd) && (mtree = mtree->pointers[*cmd & (MAXPTRLEN - 1)])) |
533 |
|
if (*++cmd == '\0') |
534 |
|
return mtree->msg; |
535 |
|
|
536 |
return(NULL); |
return NULL; |
537 |
} |
} |
538 |
|
|
539 |
/* mod_add_cmd() |
/* mod_add_cmd() |