typedef struct _Strip { char *s; unsigned int hashix; struct _Strip *next; } *Strip; #define HASHSIZE 5003 #define hfcase_eq(a, b) ((a)->hashix == (b)->hashix) #define hcase_eq(a, b) (((a)->hashix == (b)->hashix) ? case_eq((a)->s, (b)->s) : (0)) #define strip2str(x) ((x) ? (x)->s : "") #define strip2hash(x) ((x) ? (x)->hashix : 0) Strip str2strip(const char *s); Strip strn2strip(const char *s, int n); Strip stru2strip(const char *s); Strip strnu2strip(const char *s, int n);