Add set -e.
[u/mdw/catacomb] / hashsum.c
index db7d7f7..11a5d37 100644 (file)
--- a/hashsum.c
+++ b/hashsum.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: hashsum.c,v 1.4 2000/08/04 23:23:44 mdw Exp $
+ * $Id: hashsum.c,v 1.9 2004/04/04 19:42:59 mdw Exp $
  *
  * Hash files using some secure hash function
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: hashsum.c,v $
+ * Revision 1.9  2004/04/04 19:42:59  mdw
+ * Add set -e.
+ *
+ * Revision 1.8  2001/04/19 18:26:33  mdw
+ * Add CRC as another hash function.
+ *
+ * Revision 1.7  2001/02/21 20:03:22  mdw
+ * Added support for MD2 hash function.
+ *
+ * Revision 1.6  2001/01/25 21:40:14  mdw
+ * Support for new SHA variants added.
+ *
+ * Revision 1.5  2000/12/06 20:33:27  mdw
+ * Make flags be macros rather than enumerations, to ensure that they're
+ * unsigned.
+ *
  * Revision 1.4  2000/08/04 23:23:44  mdw
  * Various <ctype.h> fixes.
  *
 
 #include "ghash.h"
 
-#include "md4.h"
-#include "md5.h"
-#include "rmd128.h"
-#include "rmd160.h"
-#include "rmd256.h"
-#include "rmd320.h"
-#include "sha.h"
-#include "tiger.h"
-
 /*----- Static variables --------------------------------------------------*/
 
-static const gchash *hashtab[] = {
-  &md5, &md4, &sha, &rmd128, &rmd160, &rmd256, &rmd320, &tiger,
-  0
-};
-
-enum {
-  f_binary = 1,
-  f_bogus = 2,
-  f_verbose = 4,
-  f_check = 8,
-  f_files = 16,
-  f_raw = 32,
-  f_oddhash = 64,
-  f_escape = 128
-};
+#define f_binary 1u
+#define f_bogus 2u
+#define f_verbose 4u
+#define f_check 8u
+#define f_files 16u
+#define f_raw 32u
+#define f_oddhash 64u
+#define f_escape 128u
 
 /*----- Support functions -------------------------------------------------*/
 
@@ -193,9 +193,9 @@ static size_t gethex(const char *p, octet *q, size_t sz, char **pp)
 
 static const gchash *gethash(const char *name)
 {
-  const gchash **g, *gg = 0;
+  const gchash *const *g, *gg = 0;
   size_t sz = strlen(name);
-  for (g = hashtab; *g; g++) {
+  for (g = ghashtab; *g; g++) {
     if (strncmp(name, (*g)->name, sz) == 0) {
       if ((*g)->name[sz] == 0) {
        gg = *g;
@@ -599,7 +599,7 @@ int main(int argc, char *argv[])
       gch = gethash(q);
     }
     if (!gch)
-      gch = hashtab[0];
+      gch = gethash("md5");
     xfree(q);
   }
 
@@ -647,10 +647,10 @@ int main(int argc, char *argv[])
        break;
       case 'l': {
        unsigned j;
-       for (j = 0; hashtab[j]; j++) {
+       for (j = 0; ghashtab[j]; j++) {
          if (j)
            fputc(' ', stdout);
-         printf("%s", hashtab[j]->name);
+         printf("%s", ghashtab[j]->name);
        }
        fputc('\n', stdout);
        exit(0);