Transform the name of the temp dir on Windows with GetLongPathName.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9833 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2005-04-19 12:29:25 +00:00
parent cb99035b6f
commit e3de78582f
2 changed files with 23 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2005-04-19 Angus Leeming <leeming@lyx.org>
* package.C.in (get_temp_dir): call GetLongPathName on Windows.
2005-04-19 Angus Leeming <leeming@lyx.org>
* pch.h: protect unix-specific headers from breaking compilation

View File

@ -38,6 +38,24 @@
#endif
#if defined (USE_WINDOWS_PACKAGING)
/*
* MinGW's version of winver.h contains this comment:
*
* If you need Win32 API features newer the Win95 and WinNT then you must
* define WINVER before including windows.h or any other method of including
* the windef.h header.
*
* GetLongPathNameA requires WINVER == 0x0500.
*
* It doesn't matter if the Windows version is older than this because the
* function will compile but will fail at run time. See
* http://msdn.microsoft.com/library/en-us/mslu/winprog/microsoft_layer_for_unicode_apis_with_limited_support.asp
*/
# if defined(__MINGW32__)
# define WINVER 0x0500
# endif
# include <windows.h>
# include <shlobj.h> // SHGetFolderPath
@ -363,6 +381,7 @@ string const get_temp_dir()
// Typical example: C:/TEMP/.
char path[PATH_MAX + 1];
GetTempPath(PATH_MAX, path);
GetLongPathName(path, path, PATH_MAX + 1);
return os::internal_path(path);
#else // Posix-like.
return "/tmp";