version 1.21, 2010/07/16 22:33:30 |
version 1.23, 2010/07/18 12:10:08 |
|
|
struct ln { |
struct ln { |
struct ln *next; |
struct ln *next; |
const char *code; |
const char *code; |
size_t codesz; |
|
const char *ascii; |
const char *ascii; |
size_t asciisz; |
size_t asciisz; |
int unicode; |
int unicode; |
|
|
|
|
#define LINES_MAX 370 |
#define LINES_MAX 370 |
|
|
#define CHAR(in, insz, ch, chsz, code) \ |
#define CHAR(in, ch, chsz, code) \ |
{ NULL, (in), (insz), (ch), (chsz), (code), CHARS_CHAR }, |
{ NULL, (in), (ch), (chsz), (code), CHARS_CHAR }, |
#define STRING(in, insz, ch, chsz, code) \ |
#define STRING(in, ch, chsz, code) \ |
{ NULL, (in), (insz), (ch), (chsz), (code), CHARS_STRING }, |
{ NULL, (in), (ch), (chsz), (code), CHARS_STRING }, |
#define BOTH(in, insz, ch, chsz, code) \ |
#define BOTH(in, ch, chsz, code) \ |
{ NULL, (in), (insz), (ch), (chsz), (code), CHARS_BOTH }, |
{ NULL, (in), (ch), (chsz), (code), CHARS_BOTH }, |
|
|
#define CHAR_TBL_START static struct ln lines[LINES_MAX] = { |
#define CHAR_TBL_START static struct ln lines[LINES_MAX] = { |
#define CHAR_TBL_END }; |
#define CHAR_TBL_END }; |
Line 196 find(struct tbl *tab, const char *p, size_t sz, int ty |
|
Line 195 find(struct tbl *tab, const char *p, size_t sz, int ty |
|
int hash; |
int hash; |
|
|
assert(p); |
assert(p); |
assert(sz > 0); |
if (0 == sz) |
|
return(NULL); |
|
|
if (p[0] < PRINT_LO || p[0] > PRINT_HI) |
if (p[0] < PRINT_LO || p[0] > PRINT_HI) |
return(NULL); |
return(NULL); |
Line 238 match(const struct ln *ln, const char *p, size_t sz, i |
|
Line 238 match(const struct ln *ln, const char *p, size_t sz, i |
|
|
|
if ( ! (ln->type & type)) |
if ( ! (ln->type & type)) |
return(0); |
return(0); |
if (ln->codesz != sz) |
if (strncmp(ln->code, p, sz)) |
return(0); |
return(0); |
return(0 == strncmp(ln->code, p, sz)); |
return('\0' == ln->code[(int)sz]); |
} |
} |