Mercurial > hg > octave-lyh
diff src/sysdep.cc @ 12228:0f70c5db58c3
try to get better value than \ for P_tmpdir on Windows systems
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 31 Jan 2011 03:19:01 -0500 |
parents | 12df7854fa7c |
children | 7a5aacf65f81 |
line wrap: on
line diff
--- a/src/sysdep.cc +++ b/src/sysdep.cc @@ -470,6 +470,45 @@ return c; } +std::string +get_P_tmpdir (void) +{ +#if defined (__WIN32__) && ! defined (_POSIX_VERSION) + + std::string retval; + +#if defined (P_tmpdir) + retval = P_tmpdir; +#endif + + // Apparently some versions of MinGW and MSVC either don't define + // P_tmpdir, or they define it to a single backslash, neither of which + // is particularly helpful. + + if (retval.empty () || retval == "\\") + { + retval = octave_env::getenv ("TEMP"); + + if (retval.empty ()) + retval = octave_env::getenv ("TMP"); + + if (retval.empty ()) + retval = "c:\\temp"; + } + + return retval; + +#elif defined (P_tmpdir) + + return P_tmpdir; + +#else + + return "/tmp"; + +#endif +} + DEFUN (clc, , , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} clc ()\n\