aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/System/Win32/Path.inc22
1 files changed, 6 insertions, 16 deletions
diff --git a/lib/System/Win32/Path.inc b/lib/System/Win32/Path.inc
index 8bc39f498d..b40318fe27 100644
--- a/lib/System/Win32/Path.inc
+++ b/lib/System/Win32/Path.inc
@@ -108,13 +108,16 @@ Path::isValid() const {
static Path *TempDirectory = NULL;
Path
-Path::GetTemporaryDirectory() {
+Path::GetTemporaryDirectory(std::string* ErrMsg) {
if (TempDirectory)
return *TempDirectory;
char pathname[MAX_PATH];
- if (!GetTempPath(MAX_PATH, pathname))
- throw std::string("Can't determine temporary directory");
+ if (!GetTempPath(MAX_PATH, pathname)) {
+ if (ErrMsg)
+ *ErrMsg = "Can't determine temporary directory";
+ return Path();
+ }
Path result;
result.set(pathname);
@@ -134,19 +137,6 @@ Path::GetTemporaryDirectory() {
return *TempDirectory;
}
-Path::Path(const std::string& unverified_path)
- : path(unverified_path)
-{
- FlipBackSlashes(path);
- if (unverified_path.empty())
- return;
- if (this->isValid())
- return;
- // oops, not valid.
- path.clear();
- throw std::string(unverified_path + ": path is not valid");
-}
-
// FIXME: the following set of functions don't map to Windows very well.
Path
Path::GetRootDirectory() {