aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins/simple/DirectorySave.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/plugins/simple/DirectorySave.cxx')
-rw-r--r--src/db/plugins/simple/DirectorySave.cxx23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/db/plugins/simple/DirectorySave.cxx b/src/db/plugins/simple/DirectorySave.cxx
index 9d3ebbac2..7e7cbc3ba 100644
--- a/src/db/plugins/simple/DirectorySave.cxx
+++ b/src/db/plugins/simple/DirectorySave.cxx
@@ -25,6 +25,7 @@
#include "DetachedSong.hxx"
#include "PlaylistDatabase.hxx"
#include "fs/TextFile.hxx"
+#include "fs/output/BufferedOutputStream.hxx"
#include "util/StringUtil.hxx"
#include "util/NumberParser.hxx"
#include "util/Error.hxx"
@@ -70,37 +71,37 @@ ParseTypeString(const char *type)
}
void
-directory_save(FILE *fp, const Directory &directory)
+directory_save(BufferedOutputStream &os, const Directory &directory)
{
if (!directory.IsRoot()) {
const char *type = DeviceToTypeString(directory.device);
if (type != nullptr)
- fprintf(fp, DIRECTORY_TYPE "%s\n", type);
+ os.Format(DIRECTORY_TYPE "%s\n", type);
if (directory.mtime != 0)
- fprintf(fp, DIRECTORY_MTIME "%lu\n",
- (unsigned long)directory.mtime);
+ os.Format(DIRECTORY_MTIME "%lu\n",
+ (unsigned long)directory.mtime);
- fprintf(fp, "%s%s\n", DIRECTORY_BEGIN, directory.GetPath());
+ os.Format("%s%s\n", DIRECTORY_BEGIN, directory.GetPath());
}
for (const auto &child : directory.children) {
- fprintf(fp, DIRECTORY_DIR "%s\n", child.GetName());
+ os.Format(DIRECTORY_DIR "%s\n", child.GetName());
if (!child.IsMount())
- directory_save(fp, child);
+ directory_save(os, child);
- if (ferror(fp))
+ if (!os.Check())
return;
}
for (const auto &song : directory.songs)
- song_save(fp, song);
+ song_save(os, song);
- playlist_vector_save(fp, directory.playlists);
+ playlist_vector_save(os, directory.playlists);
if (!directory.IsRoot())
- fprintf(fp, DIRECTORY_END "%s\n", directory.GetPath());
+ os.Format(DIRECTORY_END "%s\n", directory.GetPath());
}
static bool