X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2Fxpdf%2Fgfile.cc;h=9c7d789e514c2bdbdb32892526ca6dcf64a293e2;hb=5e72a09d691c2d063c86c39f760f68ffc2710828;hp=d6d2363e5134249d106ae815b8ebbaee477e30ac;hpb=50dd339d3d6262763616efe8d7ee415ab19befb9;p=swftools.git diff --git a/pdf2swf/xpdf/gfile.cc b/pdf2swf/xpdf/gfile.cc index d6d2363..9c7d789 100644 --- a/pdf2swf/xpdf/gfile.cc +++ b/pdf2swf/xpdf/gfile.cc @@ -9,6 +9,7 @@ //======================================================================== #include +#include "../../config.h" #ifdef WIN32 extern "C" { @@ -442,6 +443,23 @@ time_t getModTime(char *fileName) { return statBuf.st_mtime; #endif } + +static char tmpbuf[128]; + +char* mktmpname(char*ptr) { + // used to be mktemp. This does remove the warnings, but + // It's not exactly an improvement. +#ifdef HAVE_LRAND48 + sprintf(tmpbuf, "/tmp/%08x%08x",lrand48(),lrand48()); +#else +# ifdef HAVE_RAND + sprintf(tmpbuf, "/tmp/%08x%08x",rand(),rand()); +# else + sprintf(tmpbuf, "/tmp/%08x%08x",time(0),(unsigned int)tmpbuf); +# endif +#endif + return tmpbuf; +} GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { #if defined(WIN32) @@ -471,7 +489,7 @@ GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { // with this file name after the tmpnam call and before the fopen // call. I will happily accept fixes to this function for non-Unix // OSs. - if (!(s = tmpnam(NULL))) { + if (!(s = mktmpname(NULL))) { //was: tmpnam return gFalse; } *name = new GString(s); @@ -498,7 +516,7 @@ GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { (*name)->append("/XXXXXX")->append(ext); fd = mkstemps((*name)->getCString(), strlen(ext)); #else - if (!(s = tmpnam(NULL))) { + if (!(s = mktmpname(NULL))) { //was: tmpnam return gFalse; } *name = new GString(s); @@ -515,7 +533,7 @@ GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { (*name)->append("/XXXXXX"); fd = mkstemp((*name)->getCString()); #else // HAVE_MKSTEMP - if (!(s = tmpnam(NULL))) { + if (!(s = mktmpname(NULL))) { //was: tmpnam return gFalse; } *name = new GString(s);