From 11f28d4df56fe8fa0b3e4cf9f3f8dd8305a53f39 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 16 Mar 1995 09:14:55 +0000 Subject: [PATCH] Aggiunta funzione tempnam per WATCOM C++ git-svn-id: svn://10.65.10.50/trunk@1134 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/utility.cpp | 30 ++++++++++++++++++++++++++++++ include/utility.h | 6 +++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/include/utility.cpp b/include/utility.cpp index d90a13911..f19eccdbc 100755 --- a/include/utility.cpp +++ b/include/utility.cpp @@ -267,3 +267,33 @@ int stricmp(const char* s1, const char* s2) } #endif +#ifdef __WATCOMC__ +char * tempnam(const char * dir , const char * prefix) + +{ + TFilename tmpdir(getenv("TMP")); + static word counter = 1; + + if (tmpdir.empty() || !fexist(tmpdir)) + { + tmpdir = dir; + if (tmpdir.empty() || !fexist(tmpdir)) + tmpdir = ""; + } + if (is_not_slash(tmpdir.right(1)[0])) + tmpdir << '/'; + tmpdir << prefix ; + const int lastpos = tmpdir.len() ; + tmpdir << format("%ud", counter); + + while (!fexist(tmpdir)) + { + counter++; + if (counter == 0) counter = 1; + tmpdir.cut(lastpos); + tmpdir << format("%ud", counter); + } + return strdup(tmpdir); +} +#endif + diff --git a/include/utility.h b/include/utility.h index f2dd7ff52..1ba7c829b 100755 --- a/include/utility.h +++ b/include/utility.h @@ -14,10 +14,14 @@ bool fcopy(const char* orig, const char* dest, bool append=FALSE); bool fexist(const char* file); const char * encode(const char * data); const char * decode(const char * data); +inline bool is_not_slash(char s) { return s != '\\' && s != '/'; } #if XVT_OS == XVT_OS_SCOUNIX int stricmp(const char*, const char*); #endif +#ifdef __WATCOMC__ +char * tempnam(const char * dir, const char * prefix); +#endif const char* esc(const char*); @@ -32,5 +36,5 @@ extern char __tmp_string[1024]; /* @END */ -#endif // __UTILITY_H +#endif /* __UTILITY_H */