=================================================================== RCS file: /cvs/mandoc/Attic/hash.c,v retrieving revision 1.7 retrieving revision 1.9 diff -u -p -r1.7 -r1.9 --- mandoc/Attic/hash.c 2009/03/08 11:41:22 1.7 +++ mandoc/Attic/hash.c 2009/03/10 10:20:03 1.9 @@ -1,4 +1,4 @@ -/* $Id: hash.c,v 1.7 2009/03/08 11:41:22 kristaps Exp $ */ +/* $Id: hash.c,v 1.9 2009/03/10 10:20:03 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -95,6 +95,8 @@ mdoc_tokhash_find(const void *arg, const char *tmp) if (0 == tmp[0] || 0 == tmp[1]) return(MDOC_MAX); + if (tmp[2] && tmp[3]) + return(MDOC_MAX); if ( ! (tmp[0] == 37 || (tmp[0] >= 65 && tmp[0] <= 90))) return(MDOC_MAX); @@ -128,13 +130,13 @@ mdoc_tokhash_find(const void *arg, const char *tmp) assert(0 == (size_t)slot % sizeof(struct mdoc_macro)); slot /= sizeof(struct mdoc_macro); - /* - * FIXME: is this necessary, or do we only need to check the - * remaining characters (2+)? - */ - - if (0 != strcmp(mdoc_macronames[slot], tmp)) + if (mdoc_macronames[slot][0] != tmp[0]) return(MDOC_MAX); + if (mdoc_macronames[slot][1] != tmp[1]) + return(MDOC_MAX); + if (tmp[2] && mdoc_macronames[slot][2] != tmp[2]) + return(MDOC_MAX); + return(slot); }