-/* $Id: hash.c,v 1.7 2009/03/08 11:41:22 kristaps Exp $ */
+/* $Id: hash.c,v 1.8 2009/03/08 20:29:45 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
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);
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 == tmp[2])
+ return(slot);
- if (0 != strcmp(mdoc_macronames[slot], tmp))
- return(MDOC_MAX);
- return(slot);
+ assert(0 == tmp[3]);
+ return(tmp[2] == mdoc_macronames[slot][2] ? slot : MDOC_MAX);
}