From 90fe4c5124e3fd335f05804d3cc47ba996e62b14 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 3 Jan 2013 10:16:05 +0100 Subject: TextFile: convert to a class --- src/DirectorySave.cxx | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'src/DirectorySave.cxx') diff --git a/src/DirectorySave.cxx b/src/DirectorySave.cxx index 9c5df685..6a5efb05 100644 --- a/src/DirectorySave.cxx +++ b/src/DirectorySave.cxx @@ -76,10 +76,9 @@ directory_save(FILE *fp, const Directory *directory) } static Directory * -directory_load_subdir(FILE *fp, Directory *parent, const char *name, - GString *buffer, GError **error_r) +directory_load_subdir(TextFile &file, Directory *parent, const char *name, + GError **error_r) { - const char *line; bool success; if (parent->FindChild(name) != nullptr) { @@ -90,7 +89,7 @@ directory_load_subdir(FILE *fp, Directory *parent, const char *name, Directory *directory = parent->CreateChild(name); - line = read_text_line(fp, buffer); + const char *line = file.ReadLine(); if (line == NULL) { g_set_error(error_r, directory_quark(), 0, "Unexpected end of file"); @@ -103,7 +102,7 @@ directory_load_subdir(FILE *fp, Directory *parent, const char *name, g_ascii_strtoull(line + sizeof(DIRECTORY_MTIME) - 1, NULL, 10); - line = read_text_line(fp, buffer); + line = file.ReadLine(); if (line == NULL) { g_set_error(error_r, directory_quark(), 0, "Unexpected end of file"); @@ -119,7 +118,7 @@ directory_load_subdir(FILE *fp, Directory *parent, const char *name, return NULL; } - success = directory_load(fp, directory, buffer, error_r); + success = directory_load(file, directory, error_r); if (!success) { directory->Delete(); return NULL; @@ -129,18 +128,17 @@ directory_load_subdir(FILE *fp, Directory *parent, const char *name, } bool -directory_load(FILE *fp, Directory *directory, - GString *buffer, GError **error) +directory_load(TextFile &file, Directory *directory, GError **error) { const char *line; - while ((line = read_text_line(fp, buffer)) != NULL && + while ((line = file.ReadLine()) != NULL && !g_str_has_prefix(line, DIRECTORY_END)) { if (g_str_has_prefix(line, DIRECTORY_DIR)) { Directory *subdir = - directory_load_subdir(fp, directory, + directory_load_subdir(file, directory, line + sizeof(DIRECTORY_DIR) - 1, - buffer, error); + error); if (subdir == NULL) return false; } else if (g_str_has_prefix(line, SONG_BEGIN)) { @@ -153,8 +151,7 @@ directory_load(FILE *fp, Directory *directory, return false; } - song = song_load(fp, directory, name, - buffer, error); + song = song_load(file, directory, name, error); if (song == NULL) return false; @@ -165,8 +162,8 @@ directory_load(FILE *fp, Directory *directory, buffer */ char *name = g_strdup(line + sizeof(PLAYLIST_META_BEGIN) - 1); - if (!playlist_metadata_load(fp, directory->playlists, - name, buffer, error)) { + if (!playlist_metadata_load(file, directory->playlists, + name, error)) { g_free(name); return false; } -- cgit v1.2.3