summaryrefslogtreecommitdiffstats
path: root/mkdtemp.c
diff options
context:
space:
mode:
Diffstat (limited to 'mkdtemp.c')
-rw-r--r--mkdtemp.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/mkdtemp.c b/mkdtemp.c
index 55d907f0..d576bdad 100644
--- a/mkdtemp.c
+++ b/mkdtemp.c
@@ -9,37 +9,37 @@
/* mkdtemp function for systems which don't have one */
char *mkdtemp (char *tmpl)
{
- static const char LETTERS[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- static long value = 0;
- long v;
- int len;
- int i, j;
+ static const char LETTERS[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+ static long value = 0;
+ long v;
+ int len;
+ int i, j;
- len = strlen (tmpl);
- if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX") != 0)
- {
- errno = EINVAL;
- return NULL;
- }
+ len = strlen (tmpl);
+ if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX") != 0)
+ {
+ errno = EINVAL;
+ return NULL;
+ }
- value += ((long) time (NULL)) ^ getpid ();
+ value += ((long) time (NULL)) ^ getpid ();
- for (i = 0; i < 7 ; ++i, value += 7777)
+ for (i = 0; i < 7 ; ++i, value += 7777)
+ {
+ /* fill in the random bits */
+ for (j = 0, v = value; j < 6; ++j)
{
- /* fill in the random bits */
- for (j = 0, v = value; j < 6; ++j)
- {
- tmpl[(len - 6) + j] = LETTERS[v % 62];
- v /= 62;
- }
-
- /* try to create the directory */
- if (mkdir (tmpl, 0700) == 0)
- return tmpl;
- else if (errno != EEXIST)
- return NULL;
+ tmpl[(len - 6) + j] = LETTERS[v % 62];
+ v /= 62;
}
- errno = EEXIST;
- return NULL;
+ /* try to create the directory */
+ if (mkdir (tmpl, 0700) == 0)
+ return tmpl;
+ else if (errno != EEXIST)
+ return NULL;
+ }
+
+ errno = EEXIST;
+ return NULL;
}