changeset 23326:1ff654497c83

(TMP_MAX): Remove; no longer needed. (TEMPORARIES): New macro. (__gen_tempname): Use TEMPORARIES rather than TMP_MAX. This removes an artificial limitation (e.g. HP-UX 10.20, where TMP_MAX is 17576).
author Jim Meyering <jim@meyering.net>
date Mon, 19 Nov 2001 11:06:32 +0000
parents 4c96f50ac37f
children 49cfd119036b
files lib/tempname.c
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lib/tempname.c	Mon Nov 19 10:00:17 2001 +0000
+++ b/lib/tempname.c	Mon Nov 19 11:06:32 2001 +0000
@@ -32,9 +32,6 @@
 #ifndef P_tmpdir
 # define P_tmpdir "/tmp"
 #endif
-#ifndef TMP_MAX
-# define TMP_MAX 238328
-#endif
 #ifndef __GT_FILE
 # define __GT_FILE	0
 # define __GT_BIGFILE	1
@@ -123,6 +120,11 @@
 # define uint64_t uintmax_t
 #endif
 
+/* The total number of temporary file names that can exist for a given
+   template is 62**6.  On ancient hosts where uint64_t is really 32
+   bits, TEMPORARIES evaluates to 965660736, which is good enough.  */
+#define TEMPORARIES ((uint64_t) 62 * 62 * 62 * 62 * 62 * 62)
+
 /* Return nonzero if DIR is an existent directory.  */
 static int
 direxists (const char *dir)
@@ -219,7 +221,8 @@
   char *XXXXXX;
   static uint64_t value;
   uint64_t random_time_bits;
-  int count, fd = -1;
+  uint64_t count;
+  int fd = -1;
   int save_errno = errno;
   struct_stat64 st;
 
@@ -245,7 +248,7 @@
 #endif
   value += random_time_bits ^ __getpid ();
 
-  for (count = 0; count < TMP_MAX; value += 7777, ++count)
+  for (count = 0; count < TEMPORARIES; value += 7777, ++count)
     {
       uint64_t v = value;