nixpkgs/pkgs/by-name/sc/scorched3d/file-existence.patch
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

38 lines
919 B
Diff

diff --git a/src/common/common/DefinesFile.cpp b/src/common/common/DefinesFile.cpp
index 6ad803d..022797a 100644
--- a/src/common/common/DefinesFile.cpp
+++ b/src/common/common/DefinesFile.cpp
@@ -36,6 +36,17 @@
#include <unistd.h>
#endif
+namespace {
+ bool fileCanBeStated(const std::string &file)
+ {
+ struct stat buf;
+ memset(&buf, 0, sizeof(buf));
+ int result = stat(file.c_str(), &buf );
+
+ return result == 0;
+ }
+}
+
std::string S3D::getHomeDir()
{
#ifdef _WIN32
@@ -74,12 +85,12 @@ bool S3D::dirMake(const std::string &file)
bool S3D::fileExists(const std::string &file)
{
- return (S3D::fileModTime(file) != 0);
+ return fileCanBeStated(file);
}
bool S3D::dirExists(const std::string &file)
{
- return (S3D::fileModTime(file) != 0);
+ return fileCanBeStated(file);
}
time_t S3D::fileModTime(const std::string &file)