diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-06-19 09:49:11 +0200 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-06-22 21:06:58 +0200 |
commit | 76b2313b25e2fd33a508f63137d5113e1ca85150 (patch) | |
tree | da79f542733f16ca27b834da5805a75503b1019a | |
parent | common: fs: file: Remove [[nodiscard]] attribute from Flush (diff) | |
download | yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.tar yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.tar.gz yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.tar.bz2 yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.tar.lz yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.tar.xz yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.tar.zst yuzu-76b2313b25e2fd33a508f63137d5113e1ca85150.zip |
-rw-r--r-- | src/common/fs/file.cpp | 4 | ||||
-rw-r--r-- | src/common/fs/file.h | 8 | ||||
-rw-r--r-- | src/common/fs/fs.cpp | 5 | ||||
-rw-r--r-- | src/common/fs/fs.h | 4 |
4 files changed, 12 insertions, 9 deletions
diff --git a/src/common/fs/file.cpp b/src/common/fs/file.cpp index 710e88b39..077f34995 100644 --- a/src/common/fs/file.cpp +++ b/src/common/fs/file.cpp @@ -172,7 +172,7 @@ std::string ReadStringFromFile(const std::filesystem::path& path, FileType type) size_t WriteStringToFile(const std::filesystem::path& path, FileType type, std::string_view string) { - if (!IsFile(path)) { + if (Exists(path) && !IsFile(path)) { return 0; } @@ -183,7 +183,7 @@ size_t WriteStringToFile(const std::filesystem::path& path, FileType type, size_t AppendStringToFile(const std::filesystem::path& path, FileType type, std::string_view string) { - if (!IsFile(path)) { + if (Exists(path) && !IsFile(path)) { return 0; } diff --git a/src/common/fs/file.h b/src/common/fs/file.h index 087b2993a..588fe619d 100644 --- a/src/common/fs/file.h +++ b/src/common/fs/file.h @@ -49,7 +49,7 @@ void OpenFileStream(FileStream& file_stream, const Path& path, std::ios_base::op /** * Reads an entire file at path and returns a string of the contents read from the file. - * If the filesystem object at path is not a file, this function returns an empty string. + * If the filesystem object at path is not a regular file, this function returns an empty string. * * @param path Filesystem path * @param type File type @@ -72,7 +72,8 @@ template <typename Path> /** * Writes a string to a file at path and returns the number of characters successfully written. * If a file already exists at path, its contents will be erased. - * If the filesystem object at path is not a file, this function returns 0. + * If a file does not exist at path, it creates and opens a new empty file for writing. + * If the filesystem object at path exists and is not a regular file, this function returns 0. * * @param path Filesystem path * @param type File type @@ -95,7 +96,8 @@ template <typename Path> /** * Appends a string to a file at path and returns the number of characters successfully written. - * If the filesystem object at path is not a file, this function returns 0. + * If a file does not exist at path, it creates and opens a new empty file for appending. + * If the filesystem object at path exists and is not a regular file, this function returns 0. * * @param path Filesystem path * @param type File type diff --git a/src/common/fs/fs.cpp b/src/common/fs/fs.cpp index d3159e908..9089cad67 100644 --- a/src/common/fs/fs.cpp +++ b/src/common/fs/fs.cpp @@ -135,8 +135,9 @@ std::shared_ptr<IOFile> FileOpen(const fs::path& path, FileAccessMode mode, File return nullptr; } - if (!IsFile(path)) { - LOG_ERROR(Common_Filesystem, "Filesystem object at path={} is not a file", + if (Exists(path) && !IsFile(path)) { + LOG_ERROR(Common_Filesystem, + "Filesystem object at path={} exists and is not a regular file", PathToUTF8String(path)); return nullptr; } diff --git a/src/common/fs/fs.h b/src/common/fs/fs.h index cf7dfffcc..a6c993962 100644 --- a/src/common/fs/fs.h +++ b/src/common/fs/fs.h @@ -110,8 +110,8 @@ template <typename Path1, typename Path2> * * Failures occur when: * - Input path is not valid - * - Filesystem object at path is not a file - * - The file is not opened + * - Filesystem object at path exists and is not a regular file + * - The file is not open * * @param path Filesystem path * @param mode File access mode |