diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-03-10 10:20:03 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-03-10 10:20:03 +0000 |
commit | 6fdd6c18f89bd24a21deb19388c23eb57d200b63 (patch) | |
tree | 23f4dc39019ab291bba760bb2bf37f9b93da547f /hash.c | |
parent | c7f9b2f363d1e134e86836772da1d20a0fb6955d (diff) | |
download | mandoc-6fdd6c18f89bd24a21deb19388c23eb57d200b63.tar.gz mandoc-6fdd6c18f89bd24a21deb19388c23eb57d200b63.tar.zst mandoc-6fdd6c18f89bd24a21deb19388c23eb57d200b63.zip |
Fixed hash lookup regression.
Diffstat (limited to 'hash.c')
-rw-r--r-- | hash.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -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); } |