64-bit cleanliness: we were already carefully using a uint32 type in
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 15 Dec 2007 21:09:45 +0000 (21:09 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 15 Dec 2007 21:09:45 +0000 (21:09 +0000)
the SHA code, but it wasn't correctly defined!

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@7817 cda61777-01e9-0310-a592-d414129be87e

puzzles.h

index 9b69d1b..5c967f2 100644 (file)
--- a/puzzles.h
+++ b/puzzles.h
@@ -7,6 +7,7 @@
 
 #include <stdio.h>  /* for FILE */
 #include <stdlib.h> /* for size_t */
+#include <limits.h> /* for UINT_MAX */
 
 #ifndef TRUE
 #define TRUE 1
@@ -331,7 +332,14 @@ void random_free(random_state *state);
 char *random_state_encode(random_state *state);
 random_state *random_state_decode(char *input);
 /* random.c also exports SHA, which occasionally comes in useful. */
+#if __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+typedef uint32_t uint32;
+#elif UINT_MAX >= 4294967295L
+typedef unsigned int uint32;
+#else
 typedef unsigned long uint32;
+#endif
 typedef struct {
     uint32 h[5];
     unsigned char block[64];