--- ImageMagick-5.5.5/magick/utility.c.orig Thu Feb 27 21:10:51 2003 +++ ImageMagick-5.5.5/magick/utility.c Tue Jul 1 20:09:46 2003 @@ -2644,7 +2644,7 @@ % name is returned in this array. % */ -MagickExport void TemporaryFilename(char *path) +static void TemporaryFilenameHelper(char *path) { #define RandomKeyExtent 6 @@ -2706,6 +2706,39 @@ (void) strncat(path,".tmp",MaxTextExtent-strlen(path)-1); } while (IsAccessible(path)); } + + MagickExport void TemporaryFilename(char *path) + { + static char + *mSafeTmpdir = NULL; + + char + *name; + + if (!mSafeTmpdir) + { + do + { + TemporaryFilenameHelper(path); + if (mkdir(path, S_IRWXU) == 0) + { + mSafeTmpdir = strdup(path); + break; + } + } while (errno == EEXIST); + } + + /* FIXME: Need to address VMS and older MacOS */ + name = tempnam(mSafeTmpdir, (char *) NULL); + if (!name || !mSafeTmpdir) + { + path[0] = '\0'; + return; + } + (void) strncpy(path,name,MaxTextExtent-1); + free(name); + } + /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%