summaryrefslogtreecommitdiff
path: root/zen/file_traverser.cpp
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2016-05-24 22:10:57 +0200
committerDaniel Wilhelm <daniel@wili.li>2016-05-24 22:10:57 +0200
commit9043b32bb1835628c5a1d8be4a271c848443c629 (patch)
tree98ccb4936562731d9cae02a486441dfd446e8a4e /zen/file_traverser.cpp
parent8.0 (diff)
downloadFreeFileSync-9043b32bb1835628c5a1d8be4a271c848443c629.tar.gz
FreeFileSync-9043b32bb1835628c5a1d8be4a271c848443c629.tar.bz2
FreeFileSync-9043b32bb1835628c5a1d8be4a271c848443c629.zip
8.1
Diffstat (limited to 'zen/file_traverser.cpp')
-rw-r--r--zen/file_traverser.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/zen/file_traverser.cpp b/zen/file_traverser.cpp
index aa39e508..89eb6e48 100644
--- a/zen/file_traverser.cpp
+++ b/zen/file_traverser.cpp
@@ -68,13 +68,13 @@ void zen::traverseFolder(const Zstring& dirPath,
//skip "." and ".."
const wchar_t* const itemNameRaw = findData.cFileName;
- if (itemNameRaw[0] == 0)
- throw FileError(replaceCpy(_("Cannot enumerate directory %x."), L"%x", fmtPath(dirPath)), L"FindNextFile: Data corruption; item with empty name.");
-
if (itemNameRaw[0] == L'.' &&
(itemNameRaw[1] == 0 || (itemNameRaw[1] == L'.' && itemNameRaw[2] == 0)))
continue;
+ if (itemNameRaw[0] == 0)
+ throw FileError(replaceCpy(_("Cannot enumerate directory %x."), L"%x", fmtPath(dirPath)), L"FindNextFile: Data corruption; item with empty name.");
+
const Zstring& itemPath = appendSeparator(dirPath) + itemNameRaw;
if (zen::isSymlink(findData)) //check first!
@@ -121,9 +121,6 @@ void zen::traverseFolder(const Zstring& dirPath,
//don't return "." and ".."
const char* itemNameRaw = dirEntry->d_name;
- if (itemNameRaw[0] == 0)
- throw FileError(replaceCpy(_("Cannot enumerate directory %x."), L"%x", fmtPath(dirPath)), L"readdir_r: Data corruption; item with empty name.");
-
if (itemNameRaw[0] == '.' &&
(itemNameRaw[1] == 0 || (itemNameRaw[1] == '.' && itemNameRaw[2] == 0)))
continue;
@@ -134,15 +131,18 @@ void zen::traverseFolder(const Zstring& dirPath,
{
itemName = osx::convertToPrecomposedUtf(itemNameRaw); //throw SysError
}
- catch (const SysError& e) //failure is not an item-level error since wo don't have the proper decomposed name!!!
+ catch (const SysError& e) //failure is not an item-level error since we don't have the proper decomposed name!!!
{
throw FileError(replaceCpy(_("Cannot enumerate directory %x."), L"%x", fmtPath(dirPath)),
L"Failed to generate precomposed file name: " + fmtPath(itemNameRaw) + L"\n" + e.toString()); //too obscure to warrant translation
}
- const Zstring& itemPath = appendSeparator(dirPath) + itemName;
#else
- const Zstring& itemPath = appendSeparator(dirPath) + itemNameRaw;
+ const Zstring& itemName = itemNameRaw;
#endif
+ if (itemName.empty()) //checks result of osx::convertToPrecomposedUtf, too!
+ throw FileError(replaceCpy(_("Cannot enumerate directory %x."), L"%x", fmtPath(dirPath)), L"readdir_r: Data corruption; item with empty name.");
+
+ const Zstring& itemPath = appendSeparator(dirPath) + itemName;
struct ::stat statData = {};
try
bgstack15