diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-08-02 22:56:36 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-08-02 22:56:36 +1000 |
commit | 6abad768a6728a37706348cadbc147e7975666e5 (patch) | |
tree | 9bf96786bb99204ab31a2fe0b360e710d2df4011 /source/core/StarFile.cpp | |
parent | b2cabc75672f9d818ac7db7537d302916238adad (diff) |
Backups are now placed in their own directory
Diffstat (limited to 'source/core/StarFile.cpp')
-rw-r--r-- | source/core/StarFile.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source/core/StarFile.cpp b/source/core/StarFile.cpp index ec09ff7..873a10e 100644 --- a/source/core/StarFile.cpp +++ b/source/core/StarFile.cpp @@ -102,16 +102,22 @@ void File::overwriteFileWithRename(String const& data, String const& filename, S overwriteFileWithRename(data.utf8Ptr(), data.utf8Size(), filename, newSuffix); } -void File::backupFileInSequence(String const& targetFile, unsigned maximumBackups, String const& backupExtensionPrefix) { +void File::backupFileInSequence(String const& initialFile, String const& targetFile, unsigned maximumBackups, String const& backupExtensionPrefix) { for (unsigned i = maximumBackups; i > 0; --i) { - String curExtension = i == 1 ? "" : strf("{}{}", backupExtensionPrefix, i - 1); + bool initial = i == 1; + String const& sourceFile = initial ? initialFile : targetFile; + String curExtension = initial ? "" : strf("{}{}", backupExtensionPrefix, i - 1); String nextExtension = strf("{}{}", backupExtensionPrefix, i); - if (File::isFile(targetFile + curExtension)) - File::copy(targetFile + curExtension, targetFile + nextExtension); + if (File::isFile(sourceFile + curExtension)) + File::copy(sourceFile + curExtension, targetFile + nextExtension); } } +void File::backupFileInSequence(String const& targetFile, unsigned maximumBackups, String const& backupExtensionPrefix) { + backupFileInSequence(targetFile, targetFile, maximumBackups, backupExtensionPrefix); +} + File::File() : IODevice(IOMode::Closed) { m_file = 0; |