diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-26 17:31:36 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-31 13:20:44 -0500 |
| commit | 8b6f46af50651e0b1faf7adf94a179c6e16a05b1 (patch) | |
| tree | 5712eb6cb122255999c483942d2f2a74be818cdd /src | |
| parent | 47e6ad2e072bed9f381c947b565b2f818c649121 (diff) | |
| download | wix-8b6f46af50651e0b1faf7adf94a179c6e16a05b1.tar.gz wix-8b6f46af50651e0b1faf7adf94a179c6e16a05b1.tar.bz2 wix-8b6f46af50651e0b1faf7adf94a179c6e16a05b1.zip | |
PathEnsureQuoted is not generally useful.
Diffstat (limited to '')
| -rw-r--r-- | src/ext/NetFx/ca/netfxca.cpp | 58 | ||||
| -rw-r--r-- | src/ext/NetFx/ca/precomp.h | 1 | ||||
| -rw-r--r-- | src/libs/dutil/WixToolset.DUtil/inc/pathutil.h | 10 | ||||
| -rw-r--r-- | src/libs/dutil/WixToolset.DUtil/pathutil.cpp | 58 |
4 files changed, 59 insertions, 68 deletions
diff --git a/src/ext/NetFx/ca/netfxca.cpp b/src/ext/NetFx/ca/netfxca.cpp index 1182464e..f0704790 100644 --- a/src/ext/NetFx/ca/netfxca.cpp +++ b/src/ext/NetFx/ca/netfxca.cpp | |||
| @@ -280,6 +280,64 @@ LExit: | |||
| 280 | return hr; | 280 | return hr; |
| 281 | } | 281 | } |
| 282 | 282 | ||
| 283 | // This has netfxca specific functionality, like turning " into "" and leaving an unescaped \ at the end of a directory. | ||
| 284 | static HRESULT PathEnsureQuoted( | ||
| 285 | __inout LPWSTR* ppszPath, | ||
| 286 | __in BOOL fDirectory | ||
| 287 | ) | ||
| 288 | { | ||
| 289 | Assert(ppszPath && *ppszPath); | ||
| 290 | |||
| 291 | HRESULT hr = S_OK; | ||
| 292 | size_t cchPath = 0; | ||
| 293 | |||
| 294 | hr = ::StringCchLengthW(*ppszPath, STRSAFE_MAX_CCH, &cchPath); | ||
| 295 | ExitOnFailure(hr, "Failed to get the length of the path."); | ||
| 296 | |||
| 297 | // Handle simple special cases. | ||
| 298 | if (0 == cchPath || (1 == cchPath && L'"' == (*ppszPath)[0])) | ||
| 299 | { | ||
| 300 | hr = StrAllocString(ppszPath, L"\"\"", 2); | ||
| 301 | ExitOnFailure(hr, "Failed to allocate a quoted empty string."); | ||
| 302 | |||
| 303 | ExitFunction(); | ||
| 304 | } | ||
| 305 | |||
| 306 | if (L'"' != (*ppszPath)[0]) | ||
| 307 | { | ||
| 308 | hr = StrAllocPrefix(ppszPath, L"\"", 1); | ||
| 309 | ExitOnFailure(hr, "Failed to allocate an opening quote."); | ||
| 310 | |||
| 311 | // Add a char for the opening quote. | ||
| 312 | ++cchPath; | ||
| 313 | } | ||
| 314 | |||
| 315 | if (L'"' != (*ppszPath)[cchPath - 1]) | ||
| 316 | { | ||
| 317 | hr = StrAllocConcat(ppszPath, L"\"", 1); | ||
| 318 | ExitOnFailure(hr, "Failed to allocate a closing quote."); | ||
| 319 | |||
| 320 | // Add a char for the closing quote. | ||
| 321 | ++cchPath; | ||
| 322 | } | ||
| 323 | |||
| 324 | if (fDirectory) | ||
| 325 | { | ||
| 326 | if (L'\\' != (*ppszPath)[cchPath - 2]) | ||
| 327 | { | ||
| 328 | // Change the last char to a backslash and re-append the closing quote. | ||
| 329 | (*ppszPath)[cchPath - 1] = L'\\'; | ||
| 330 | |||
| 331 | hr = StrAllocConcat(ppszPath, L"\"", 1); | ||
| 332 | ExitOnFailure(hr, "Failed to allocate another closing quote after the backslash."); | ||
| 333 | } | ||
| 334 | } | ||
| 335 | |||
| 336 | LExit: | ||
| 337 | |||
| 338 | return hr; | ||
| 339 | } | ||
| 340 | |||
| 283 | static HRESULT CreateInstallCommand( | 341 | static HRESULT CreateInstallCommand( |
| 284 | __out LPWSTR* ppwzCommandLine, | 342 | __out LPWSTR* ppwzCommandLine, |
| 285 | __in LPCWSTR pwzNgenPath, | 343 | __in LPCWSTR pwzNgenPath, |
diff --git a/src/ext/NetFx/ca/precomp.h b/src/ext/NetFx/ca/precomp.h index 4a83c164..f7b537ed 100644 --- a/src/ext/NetFx/ca/precomp.h +++ b/src/ext/NetFx/ca/precomp.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | #include <windows.h> | 5 | #include <windows.h> |
| 6 | #include <msiquery.h> | 6 | #include <msiquery.h> |
| 7 | #include <strsafe.h> | ||
| 7 | 8 | ||
| 8 | #include "wcautil.h" | 9 | #include "wcautil.h" |
| 9 | #include "fileutil.h" | 10 | #include "fileutil.h" |
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/pathutil.h b/src/libs/dutil/WixToolset.DUtil/inc/pathutil.h index 00a468ce..44d36568 100644 --- a/src/libs/dutil/WixToolset.DUtil/inc/pathutil.h +++ b/src/libs/dutil/WixToolset.DUtil/inc/pathutil.h | |||
| @@ -196,16 +196,6 @@ DAPI_(HRESULT) PathConcatCch( | |||
| 196 | ); | 196 | ); |
| 197 | 197 | ||
| 198 | /******************************************************************* | 198 | /******************************************************************* |
| 199 | PathEnsureQuoted - ensures that a path is quoted; optionally, | ||
| 200 | this function also terminates a directory with a backslash | ||
| 201 | if it is not already. | ||
| 202 | *******************************************************************/ | ||
| 203 | DAPI_(HRESULT) PathEnsureQuoted( | ||
| 204 | __inout LPWSTR* ppszPath, | ||
| 205 | __in BOOL fDirectory | ||
| 206 | ); | ||
| 207 | |||
| 208 | /******************************************************************* | ||
| 209 | PathCompare - compares the fully expanded path of the two paths using | 199 | PathCompare - compares the fully expanded path of the two paths using |
| 210 | ::CompareStringW(). | 200 | ::CompareStringW(). |
| 211 | *******************************************************************/ | 201 | *******************************************************************/ |
diff --git a/src/libs/dutil/WixToolset.DUtil/pathutil.cpp b/src/libs/dutil/WixToolset.DUtil/pathutil.cpp index 7bac8ac3..fa07f165 100644 --- a/src/libs/dutil/WixToolset.DUtil/pathutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/pathutil.cpp | |||
| @@ -875,64 +875,6 @@ LExit: | |||
| 875 | } | 875 | } |
| 876 | 876 | ||
| 877 | 877 | ||
| 878 | DAPI_(HRESULT) PathEnsureQuoted( | ||
| 879 | __inout LPWSTR* ppszPath, | ||
| 880 | __in BOOL fDirectory | ||
| 881 | ) | ||
| 882 | { | ||
| 883 | Assert(ppszPath && *ppszPath); | ||
| 884 | |||
| 885 | HRESULT hr = S_OK; | ||
| 886 | size_t cchPath = 0; | ||
| 887 | |||
| 888 | hr = ::StringCchLengthW(*ppszPath, STRSAFE_MAX_CCH, &cchPath); | ||
| 889 | PathExitOnFailure(hr, "Failed to get the length of the path."); | ||
| 890 | |||
| 891 | // Handle simple special cases. | ||
| 892 | if (0 == cchPath || (1 == cchPath && L'"' == (*ppszPath)[0])) | ||
| 893 | { | ||
| 894 | hr = StrAllocString(ppszPath, L"\"\"", 2); | ||
| 895 | PathExitOnFailure(hr, "Failed to allocate a quoted empty string."); | ||
| 896 | |||
| 897 | ExitFunction(); | ||
| 898 | } | ||
| 899 | |||
| 900 | if (L'"' != (*ppszPath)[0]) | ||
| 901 | { | ||
| 902 | hr = StrAllocPrefix(ppszPath, L"\"", 1); | ||
| 903 | PathExitOnFailure(hr, "Failed to allocate an opening quote."); | ||
| 904 | |||
| 905 | // Add a char for the opening quote. | ||
| 906 | ++cchPath; | ||
| 907 | } | ||
| 908 | |||
| 909 | if (L'"' != (*ppszPath)[cchPath - 1]) | ||
| 910 | { | ||
| 911 | hr = StrAllocConcat(ppszPath, L"\"", 1); | ||
| 912 | PathExitOnFailure(hr, "Failed to allocate a closing quote."); | ||
| 913 | |||
| 914 | // Add a char for the closing quote. | ||
| 915 | ++cchPath; | ||
| 916 | } | ||
| 917 | |||
| 918 | if (fDirectory) | ||
| 919 | { | ||
| 920 | if (L'\\' != (*ppszPath)[cchPath - 2]) | ||
| 921 | { | ||
| 922 | // Change the last char to a backslash and re-append the closing quote. | ||
| 923 | (*ppszPath)[cchPath - 1] = L'\\'; | ||
| 924 | |||
| 925 | hr = StrAllocConcat(ppszPath, L"\"", 1); | ||
| 926 | PathExitOnFailure(hr, "Failed to allocate another closing quote after the backslash."); | ||
| 927 | } | ||
| 928 | } | ||
| 929 | |||
| 930 | LExit: | ||
| 931 | |||
| 932 | return hr; | ||
| 933 | } | ||
| 934 | |||
| 935 | |||
| 936 | DAPI_(HRESULT) PathCompare( | 878 | DAPI_(HRESULT) PathCompare( |
| 937 | __in_z LPCWSTR wzPath1, | 879 | __in_z LPCWSTR wzPath1, |
| 938 | __in_z LPCWSTR wzPath2, | 880 | __in_z LPCWSTR wzPath2, |
