(uint64_t): Define to uintmax_t if
authorJim Meyering <jim@meyering.net>
Fri, 16 Mar 2001 12:02:22 +0000 (12:02 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 16 Mar 2001 12:02:22 +0000 (12:02 +0000)
not defined, and if UINT64_MAX is not defined.
Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
Reported by John David Anglin.

lib/tempname.c

index d008c982fd8f1899d54bed08605f862e8fd163bd..5ead95ea3cc087634ab5b6907e1372de02ee61a6 100644 (file)
 # define __secure_getenv getenv
 #endif
 
+/* Use the widest available unsigned type if uint64_t is not
+   available.  The algorithm below extracts a number less than 62**6
+   (approximately 2**35.725) from uint64_t, so ancient hosts where
+   uintmax_t is only 32 bits lose about 3.725 bits of randomness,
+   which is better than not having mkstemp at all.  */
+#if !defined UINT64_MAX && !defined uint64_t
+# define uint64_t uintmax_t
+#endif
+
 /* Return nonzero if DIR is an existent directory.  */
 static int
 direxists (const char *dir)