mirror of https://github.com/decompals/wibo.git
fix (#80)
This commit is contained in:
parent
ca9364a0df
commit
701134e596
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2022 Ash Wolf
|
||||
Copyright (c) 2022-2024 Ash Wolf & Decompals
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -682,13 +682,18 @@ namespace kernel32 {
|
|||
};
|
||||
|
||||
bool findNextFile(FindFirstFileHandle* handle) {
|
||||
if ((handle->it != std::filesystem::directory_iterator()) && (handle->pattern == "")) {
|
||||
// The caller (ie `FindFirstFileA`) was passed a path with a
|
||||
// trailing period (like `include/.`). This behavior doesn't seem
|
||||
// to be documented, so we treat it as an "find any file on this
|
||||
// directory".
|
||||
return true;
|
||||
// Check if iterator is valid before using it
|
||||
if (!handle || handle->it == std::filesystem::directory_iterator()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If pattern is empty, just iterate
|
||||
if (handle->pattern.empty()) {
|
||||
handle->it++;
|
||||
return handle->it != std::filesystem::directory_iterator();
|
||||
}
|
||||
|
||||
// Look for a matching file with the pattern
|
||||
while (handle->it != std::filesystem::directory_iterator()) {
|
||||
std::filesystem::path path = *handle->it;
|
||||
if (fnmatch(handle->pattern.c_str(), path.filename().c_str(), 0) == 0) {
|
||||
|
@ -696,6 +701,7 @@ namespace kernel32 {
|
|||
}
|
||||
handle->it++;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue