You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by fa...@apache.org on 2008/11/03 10:33:59 UTC
svn commit: r710029 - in /stdcxx/branches/4.2.x: src/file.cpp
tests/src/file.cpp
Author: faridz
Date: Mon Nov 3 01:33:58 2008
New Revision: 710029
URL: http://svn.apache.org/viewvc?rev=710029&view=rev
Log:
2008-11-03 Farid Zaripov <fa...@apache.org>
* src/file.cpp (__rw_mkstemp): Fixed calculation of the string length.
[_WIN32]: #define P_tmpdir with a different value on Windows. Added
definition of the tmpdir, initialized by value of TMP instead of TMPDIR.
* tests/src/file.cpp (rw_tmpnam): Fallback to P_tmpdir if
getenv("TMPDIR") returns empty string.
Modified:
stdcxx/branches/4.2.x/src/file.cpp
stdcxx/branches/4.2.x/tests/src/file.cpp
Modified: stdcxx/branches/4.2.x/src/file.cpp
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/file.cpp?rev=710029&r1=710028&r2=710029&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/file.cpp (original)
+++ stdcxx/branches/4.2.x/src/file.cpp Mon Nov 3 01:33:58 2008
@@ -288,7 +288,7 @@
char pathbuf [PATH_MAX];
// check to see if the buffer is large enough
- const size_t len = strlen (tmpdir) - 1;
+ const size_t len = strlen (tmpdir);
if (sizeof pathbuf < len + sizeof rwtmpXXXXXX) {
# ifdef ENAMETOOLONG
@@ -319,6 +319,15 @@
# ifdef _WIN32
+# ifndef P_tmpdir // #defined in <stdio.h> by POSIX
+# define P_tmpdir "\\"
+# endif // P_tmpdir
+
+ // use TMPDIR and fall back on P_tmpdir as per POSIX
+ const char *tmpdir = getenv ("TMP");
+ if (0 == tmpdir || '\0' == *tmpdir)
+ tmpdir = P_tmpdir;
+
// tempnam(const char *dir, const char *prefix) will generate
// a unique file name for a directory chosen by the following rules:
//
Modified: stdcxx/branches/4.2.x/tests/src/file.cpp
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/tests/src/file.cpp?rev=710029&r1=710028&r2=710029&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/tests/src/file.cpp (original)
+++ stdcxx/branches/4.2.x/tests/src/file.cpp Mon Nov 3 01:33:58 2008
@@ -213,7 +213,7 @@
# define TMP_TEMPLATE "tmpfile-XXXXXX"
const char *tmpdir = getenv ("TMPDIR");
- if (!tmpdir)
+ if (0 == tmpdir || '\0' == *tmpdir)
tmpdir = P_tmpdir;
if (!buf) {
@@ -259,7 +259,7 @@
# ifdef _WIN32
const char *tmpdir = getenv ("TMP");
- if (!tmpdir)
+ if (0 == tmpdir || '\0' == *tmpdir)
tmpdir = P_tmpdir;
// create a temporary file name
Re: svn commit: r710029 - in /stdcxx/branches/4.2.x: src/file.cpp
tests/src/file.cpp
Posted by Martin Sebor <ms...@gmail.com>.
faridz@apache.org wrote:
> Author: faridz
> Date: Mon Nov 3 01:33:58 2008
> New Revision: 710029
>
> URL: http://svn.apache.org/viewvc?rev=710029&view=rev
> Log:
> 2008-11-03 Farid Zaripov <fa...@apache.org>
>
> * src/file.cpp (__rw_mkstemp): Fixed calculation of the string length.
> [_WIN32]: #define P_tmpdir with a different value on Windows. Added
> definition of the tmpdir, initialized by value of TMP instead of TMPDIR.
I suspect this was my screwup -- thanks for cleaning it up
for me!
Martin
> * tests/src/file.cpp (rw_tmpnam): Fallback to P_tmpdir if
> getenv("TMPDIR") returns empty string.
>
> Modified:
> stdcxx/branches/4.2.x/src/file.cpp
> stdcxx/branches/4.2.x/tests/src/file.cpp
>
> Modified: stdcxx/branches/4.2.x/src/file.cpp
> URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/file.cpp?rev=710029&r1=710028&r2=710029&view=diff
> ==============================================================================
> --- stdcxx/branches/4.2.x/src/file.cpp (original)
> +++ stdcxx/branches/4.2.x/src/file.cpp Mon Nov 3 01:33:58 2008
> @@ -288,7 +288,7 @@
> char pathbuf [PATH_MAX];
>
> // check to see if the buffer is large enough
> - const size_t len = strlen (tmpdir) - 1;
> + const size_t len = strlen (tmpdir);
> if (sizeof pathbuf < len + sizeof rwtmpXXXXXX) {
>
> # ifdef ENAMETOOLONG
> @@ -319,6 +319,15 @@
>
> # ifdef _WIN32
>
> +# ifndef P_tmpdir // #defined in <stdio.h> by POSIX
> +# define P_tmpdir "\\"
> +# endif // P_tmpdir
> +
> + // use TMPDIR and fall back on P_tmpdir as per POSIX
> + const char *tmpdir = getenv ("TMP");
> + if (0 == tmpdir || '\0' == *tmpdir)
> + tmpdir = P_tmpdir;
> +
> // tempnam(const char *dir, const char *prefix) will generate
> // a unique file name for a directory chosen by the following rules:
> //
>
> Modified: stdcxx/branches/4.2.x/tests/src/file.cpp
> URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/tests/src/file.cpp?rev=710029&r1=710028&r2=710029&view=diff
> ==============================================================================
> --- stdcxx/branches/4.2.x/tests/src/file.cpp (original)
> +++ stdcxx/branches/4.2.x/tests/src/file.cpp Mon Nov 3 01:33:58 2008
> @@ -213,7 +213,7 @@
> # define TMP_TEMPLATE "tmpfile-XXXXXX"
>
> const char *tmpdir = getenv ("TMPDIR");
> - if (!tmpdir)
> + if (0 == tmpdir || '\0' == *tmpdir)
> tmpdir = P_tmpdir;
>
> if (!buf) {
> @@ -259,7 +259,7 @@
> # ifdef _WIN32
>
> const char *tmpdir = getenv ("TMP");
> - if (!tmpdir)
> + if (0 == tmpdir || '\0' == *tmpdir)
> tmpdir = P_tmpdir;
>
> // create a temporary file name
>
>
>