summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2023-12-06 07:58:49 +1100
committer Vas Crabb <vas@vastheman.com>2023-12-06 07:58:49 +1100
commit79bef1e23049fdac25f1fefd132e0b6c7d2cc3a1 (patch)
tree643e9313fe86f583c4022c338677cbc12b761df7 /3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp
parent512ccf0c7c9b4f08e41038b2ed2de220e140385b (diff)
3rdparty/lzma: Updated to version 23.01.
Diffstat (limited to '3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp')
-rw-r--r--3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp39
1 files changed, 16 insertions, 23 deletions
diff --git a/3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp b/3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp
index 1307ceebb9b..cfec63507af 100644
--- a/3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp
+++ b/3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.cpp
@@ -2,11 +2,8 @@
#include "StdAfx.h"
-#include "../../../Common/StringConvert.h"
-#include "../../../Common/Wildcard.h"
-
-#include "../../../Windows/FileFind.h"
#include "../../../Windows/FileName.h"
+#include "../../../Windows/FileSystem.h"
#include "WorkDir.h"
@@ -22,10 +19,10 @@ FString GetWorkDir(const NWorkDir::CInfo &workDirInfo, const FString &path, FStr
if (workDirInfo.ForRemovableOnly)
{
mode = NWorkDir::NMode::kCurrent;
- FString prefix = path.Left(3);
- if (prefix[1] == FTEXT(':') && prefix[2] == FTEXT('\\'))
+ const FString prefix = path.Left(3);
+ if (NName::IsDrivePath(prefix))
{
- UINT driveType = GetDriveType(GetSystemString(prefix, ::AreFileApisANSI() ? CP_ACP : CP_OEMCP));
+ const UINT driveType = NSystem::MyGetDriveType(prefix);
if (driveType == DRIVE_CDROM || driveType == DRIVE_REMOVABLE)
mode = workDirInfo.Mode;
}
@@ -39,29 +36,26 @@ FString GetWorkDir(const NWorkDir::CInfo &workDirInfo, const FString &path, FStr
}
#endif
- int pos = path.ReverseFind_PathSepar() + 1;
+ const int pos = path.ReverseFind_PathSepar() + 1;
fileName = path.Ptr((unsigned)pos);
- switch (mode)
+ FString tempDir;
+ switch ((int)mode)
{
case NWorkDir::NMode::kCurrent:
- {
- return path.Left((unsigned)pos);
- }
+ tempDir = path.Left((unsigned)pos);
+ break;
case NWorkDir::NMode::kSpecified:
- {
- FString tempDir = workDirInfo.Path;
- NName::NormalizeDirPathPrefix(tempDir);
- return tempDir;
- }
+ tempDir = workDirInfo.Path;
+ break;
+ // case NWorkDir::NMode::kSystem:
default:
- {
- FString tempDir;
if (!MyGetTempPath(tempDir))
throw 141717;
- return tempDir;
- }
+ break;
}
+ NName::NormalizeDirPathPrefix(tempDir);
+ return tempDir;
}
HRESULT CWorkDirTempFile::CreateTempFile(const FString &originalPath)
@@ -69,9 +63,8 @@ HRESULT CWorkDirTempFile::CreateTempFile(const FString &originalPath)
NWorkDir::CInfo workDirInfo;
workDirInfo.Load();
FString namePart;
- FString workDir = GetWorkDir(workDirInfo, originalPath, namePart);
+ const FString workDir = GetWorkDir(workDirInfo, originalPath, namePart);
CreateComplexDir(workDir);
- CTempFile tempFile;
_outStreamSpec = new COutFileStream;
OutStream = _outStreamSpec;
if (!_tempFile.Create(workDir + namePart, &_outStreamSpec->File))