]> granicus.if.org Git - neomutt/commitdiff
Remove in-house implementation of mkdtemp
authorPietro Cerutti <gahr@gahr.ch>
Mon, 23 Jan 2017 16:55:22 +0000 (16:55 +0000)
committerPietro Cerutti <gahr@gahr.ch>
Tue, 24 Jan 2017 20:32:46 +0000 (20:32 +0000)
Issue: #325

configure.ac
mkdtemp.c [deleted file]
protos.h

index 9157cba5cc03f4abd97969cd2afef0d26e5203f2..0907ca669192458f5cfd6777ec6d18b3c68bc395 100644 (file)
@@ -454,7 +454,7 @@ AC_CHECK_HEADERS(unix.h)
 
 AC_CHECK_FUNCS(setrlimit getsid)
 AC_CHECK_FUNCS(fgets_unlocked fgetc_unlocked)
-AC_CHECK_FUNCS(strcasecmp strncasecmp setenv strdup strsep strtok_r)
+AC_CHECK_FUNCS(strcasecmp strncasecmp setenv strdup strsep strtok_r mkdtemp)
 
 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
 AC_EGREP_HEADER(sig_atomic_t,signal.h,
@@ -493,8 +493,7 @@ AC_CHECK_TYPE(ssize_t, int)
 
 AC_CHECK_FUNCS(fgetpos memmove setegid srand48 strerror)
 
-AC_REPLACE_FUNCS([wcscasecmp])
-AC_REPLACE_FUNCS([strcasestr mkdtemp])
+AC_REPLACE_FUNCS([wcscasecmp strcasestr])
 
 AC_CHECK_FUNC(getopt)
 if test $ac_cv_func_getopt = yes; then
diff --git a/mkdtemp.c b/mkdtemp.c
deleted file mode 100644 (file)
index ae9d5d9..0000000
--- a/mkdtemp.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* taken from XFCE's Xarchiver, made to work without glib for mutt */
-
-#include <sys/stat.h>
-#include <unistd.h>
-#include <errno.h>
-#include <time.h>
-#include <string.h>
-
-/* 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;
-
-    len = strlen (tmpl);
-    if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX") != 0)
-    {
-        errno = EINVAL;
-        return NULL;
-    }
-
-    value += ((long) time (NULL)) ^ getpid ();
-
-    for (i = 0; i < 7 ; ++i, value += 7777)
-    {
-        /* 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;
-    }
-
-    errno = EEXIST;
-    return NULL;
-}
index f3a4ecacb0daddacfb115ea8148e2ad1230c3c52..4ac3f9759ede1853413761b017503abca947f9f7 100644 (file)
--- a/protos.h
+++ b/protos.h
@@ -568,7 +568,3 @@ int wcscasecmp (const wchar_t *a, const wchar_t *b);
 char *strcasestr (const char *, const char *);
 #endif
 
-#ifndef HAVE_MKDTEMP
-char *mkdtemp (char *tmpl);
-#endif
-