]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_hash.c
`RS' warns if empty body.
[mandoc.git] / man_hash.c
index e89244a91b3e313c6786a812230a417f1270025d..9b65bc30ae177ce5f7598ff4800c82b2ed4011ce 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_hash.c,v 1.9 2009/06/16 19:55:28 kristaps Exp $ */
+/*     $Id: man_hash.c,v 1.11 2009/08/19 09:14:50 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -37,9 +37,13 @@ man_hash_alloc(void)
        int             *htab;
        int              i, j, x;
 
-       htab = calloc(26 * 5, sizeof(int));
+       /* Initialised to -1. */
+
+       htab = malloc(26 * 6 * sizeof(int));
        if (NULL == htab)
                return(NULL);
+       for (i = 0; i < 26 * 6; i++)
+               htab[i] = -1;
 
        for (i = 0; i < MAN_MAX; i++) {
                x = man_macronames[i][0];
@@ -48,15 +52,15 @@ man_hash_alloc(void)
                                (x >= 97 && x <= 122));
 
                x -= (x <= 90) ? 65 : 97;
-               x *= 5;
+               x *= 6;
 
-               for (j = 0; j < 5; j++)
-                       if (0 == htab[x + j]) {
+               for (j = 0; j < 6; j++)
+                       if (-1 == htab[x + j]) {
                                htab[x + j] = i;
                                break;
                        }
 
-               assert(j < 5);
+               assert(j < 6);
        }
 
        return((void *)htab);
@@ -77,10 +81,10 @@ man_hash_find(const void *arg, const char *tmp)
                return(MAN_MAX);
 
        x -= (x <= 90) ? 65 : 97;
-       x *= 5;
+       x *= 6;
 
-       for (i = 0; i < 5; i++) {
-               if (0 == (tok = htab[x + i]))
+       for (i = 0; i < 6; i++) {
+               if (-1 == (tok = htab[x + i]))
                        return(MAN_MAX);
                if (0 == strcmp(tmp, man_macronames[tok]))
                        return(tok);