Fixed -flist handling for filenames with spaces (#109)

This commit is contained in:
Chuck Walbourn 2023-10-06 14:18:38 -07:00 коммит произвёл GitHub
Родитель 31e888ea7e
Коммит 41cacb393c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 8 добавлений и 10 удалений

Просмотреть файл

@ -260,10 +260,10 @@ namespace
std::list<SConversion> flist;
std::set<std::wstring> excludes;
auto fname = std::make_unique<wchar_t[]>(32768);
for (;;)
{
inFile >> fname.get();
std::wstring fname;
std::getline(inFile, fname);
if (!inFile)
break;
@ -275,13 +275,13 @@ namespace
{
if (flist.empty())
{
wprintf(L"WARNING: Ignoring the line '%ls' in -flist\n", fname.get());
wprintf(L"WARNING: Ignoring the line '%ls' in -flist\n", fname.c_str());
}
else
{
std::filesystem::path path(fname.get() + 1);
std::filesystem::path path(fname.c_str() + 1);
auto& npath = path.make_preferred();
if (wcspbrk(fname.get(), L"?*") != nullptr)
if (wcspbrk(fname.c_str(), L"?*") != nullptr)
{
std::list<SConversion> removeFiles;
SearchForFiles(npath, removeFiles, false);
@ -301,20 +301,18 @@ namespace
}
}
}
else if (wcspbrk(fname.get(), L"?*") != nullptr)
else if (wcspbrk(fname.c_str(), L"?*") != nullptr)
{
std::filesystem::path path(fname.get());
std::filesystem::path path(fname.c_str());
SearchForFiles(path.make_preferred(), flist, false);
}
else
{
SConversion conv = {};
std::filesystem::path path(fname.get());
std::filesystem::path path(fname.c_str());
conv.szSrc = path.make_preferred().native();
flist.push_back(conv);
}
inFile.ignore(1000, '\n');
}
inFile.close();