aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/hash.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-03-10 10:20:03 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-03-10 10:20:03 +0000
commit6fdd6c18f89bd24a21deb19388c23eb57d200b63 (patch)
tree23f4dc39019ab291bba760bb2bf37f9b93da547f /hash.c
parentc7f9b2f363d1e134e86836772da1d20a0fb6955d (diff)
downloadmandoc-6fdd6c18f89bd24a21deb19388c23eb57d200b63.tar.gz
mandoc-6fdd6c18f89bd24a21deb19388c23eb57d200b63.tar.zst
mandoc-6fdd6c18f89bd24a21deb19388c23eb57d200b63.zip
Fixed hash lookup regression.
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/hash.c b/hash.c
index 9fca7508..2814755b 100644
--- a/hash.c
+++ b/hash.c
@@ -1,4 +1,4 @@
-/* $Id: hash.c,v 1.8 2009/03/08 20:29:45 kristaps Exp $ */
+/* $Id: hash.c,v 1.9 2009/03/10 10:20:03 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -130,10 +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);
- if (0 == tmp[2])
- return(slot);
+ 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);
- assert(0 == tmp[3]);
- return(tmp[2] == mdoc_macronames[slot][2] ? slot : MDOC_MAX);
+ return(slot);
}