summaryrefslogtreecommitdiff
path: root/cpp/src/IcePatch2/Calc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IcePatch2/Calc.cpp')
-rw-r--r--cpp/src/IcePatch2/Calc.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/cpp/src/IcePatch2/Calc.cpp b/cpp/src/IcePatch2/Calc.cpp
index 192e023347d..a236dde862e 100644
--- a/cpp/src/IcePatch2/Calc.cpp
+++ b/cpp/src/IcePatch2/Calc.cpp
@@ -68,7 +68,7 @@ main(int argc, char* argv[])
{
if(dataDir.empty())
{
- dataDir = argv[i];
+ dataDir = normalize(argv[i]);
}
else
{
@@ -88,19 +88,22 @@ main(int argc, char* argv[])
try
{
+ if(dataDir[0] != '/')
+ {
#ifdef _WIN32
- char cwd[_MAX_PATH];
- if(_getcwd(cwd, _MAX_PATH) == NULL)
+ char cwd[_MAX_PATH];
+ if(_getcwd(cwd, _MAX_PATH) == NULL)
#else
- char cwd[PATH_MAX];
- if(getcwd(cwd, PATH_MAX) == NULL)
+ char cwd[PATH_MAX];
+ if(getcwd(cwd, PATH_MAX) == NULL)
#endif
- {
- throw "cannot get the current directory:\n" + lastError();
+ {
+ throw "cannot get the current directory:\n" + lastError();
+ }
+
+ dataDir = string(cwd) + '/' + dataDir;
}
- dataDir = normalize(string(cwd) + '/' + dataDir);
-
FileInfoSeq infoSeq;
getFileInfoSeq(dataDir, infoSeq, true, compress, verbose);
saveFileInfoSeq(dataDir, infoSeq);