summaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil/fileutil.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-06-24 12:28:27 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-06-27 11:14:21 -0500
commiteb53852d7ae6838e54525eb57df1d8ce8a722f9b (patch)
tree7fa05bd6df1bce2e20d87c5fbacc1c658dc000aa /src/libs/dutil/WixToolset.DUtil/fileutil.cpp
parent6ee12a64cb75097a238e60d4fd0ea542e8312214 (diff)
downloadwix-eb53852d7ae6838e54525eb57df1d8ce8a722f9b.tar.gz
wix-eb53852d7ae6838e54525eb57df1d8ce8a722f9b.tar.bz2
wix-eb53852d7ae6838e54525eb57df1d8ce8a722f9b.zip
Add longPathAware to Burn manifest to support long paths.
Fixes 3455
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/fileutil.cpp')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/fileutil.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/fileutil.cpp b/src/libs/dutil/WixToolset.DUtil/fileutil.cpp
index 9f68ee52..ac407916 100644
--- a/src/libs/dutil/WixToolset.DUtil/fileutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/fileutil.cpp
@@ -1284,21 +1284,18 @@ extern "C" HRESULT DAPI FileCreateTempW(
1284 Assert(wzPrefix && *wzPrefix); 1284 Assert(wzPrefix && *wzPrefix);
1285 HRESULT hr = E_FAIL; 1285 HRESULT hr = E_FAIL;
1286 1286
1287 WCHAR wzTempPath[MAX_PATH]; 1287 LPWSTR pwzTempPath = NULL;
1288 DWORD cchTempPath = countof(wzTempPath);
1289 LPWSTR pwzTempFile = NULL; 1288 LPWSTR pwzTempFile = NULL;
1290 1289
1291 HANDLE hTempFile = INVALID_HANDLE_VALUE; 1290 HANDLE hTempFile = INVALID_HANDLE_VALUE;
1292 int i = 0; 1291 int i = 0;
1293 1292
1294 if (!::GetTempPathW(cchTempPath, wzTempPath)) 1293 hr = PathGetTempPath(&pwzTempPath, NULL);
1295 { 1294 FileExitOnFailure(hr, "failed to get temp path");
1296 FileExitOnLastError(hr, "failed to get temp path");
1297 }
1298 1295
1299 for (i = 0; i < 1000 && INVALID_HANDLE_VALUE == hTempFile; ++i) 1296 for (i = 0; i < 1000 && INVALID_HANDLE_VALUE == hTempFile; ++i)
1300 { 1297 {
1301 hr = StrAllocFormatted(&pwzTempFile, L"%s%s%05d.%s", wzTempPath, wzPrefix, i, wzExtension); 1298 hr = StrAllocFormatted(&pwzTempFile, L"%s%s%05d.%s", pwzTempPath, wzPrefix, i, wzExtension);
1302 FileExitOnFailure(hr, "failed to allocate memory for temp filename"); 1299 FileExitOnFailure(hr, "failed to allocate memory for temp filename");
1303 1300
1304 hTempFile = ::CreateFileW(pwzTempFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); 1301 hTempFile = ::CreateFileW(pwzTempFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
@@ -1330,6 +1327,7 @@ extern "C" HRESULT DAPI FileCreateTempW(
1330LExit: 1327LExit:
1331 ReleaseFile(hTempFile); 1328 ReleaseFile(hTempFile);
1332 ReleaseStr(pwzTempFile); 1329 ReleaseStr(pwzTempFile);
1330 ReleaseStr(pwzTempPath);
1333 1331
1334 return hr; 1332 return hr;
1335} 1333}