aboutsummaryrefslogtreecommitdiffstats
path: root/src/DatabaseSave.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-08-10 18:02:44 +0200
committerMax Kellermann <max@duempel.org>2013-09-04 18:14:22 +0200
commit29030b54c98b0aee65fbc10ebf7ba36bed98c02c (patch)
tree79766830b55ebca38ddbce84d8d548227eedb69e /src/DatabaseSave.cxx
parentc9fcc7f14860777458153eb2d13c773ccfa1daa2 (diff)
downloadmpd-29030b54c98b0aee65fbc10ebf7ba36bed98c02c.tar.gz
mpd-29030b54c98b0aee65fbc10ebf7ba36bed98c02c.tar.xz
mpd-29030b54c98b0aee65fbc10ebf7ba36bed98c02c.zip
util/Error: new error passing library
Replaces GLib's GError.
Diffstat (limited to 'src/DatabaseSave.cxx')
-rw-r--r--src/DatabaseSave.cxx44
1 files changed, 21 insertions, 23 deletions
diff --git a/src/DatabaseSave.cxx b/src/DatabaseSave.cxx
index ff95cf788..4213fb9a0 100644
--- a/src/DatabaseSave.cxx
+++ b/src/DatabaseSave.cxx
@@ -28,6 +28,7 @@
#include "TagInternal.hxx"
#include "Tag.hxx"
#include "fs/Path.hxx"
+#include "util/Error.hxx"
#include <glib.h>
@@ -69,7 +70,7 @@ db_save_internal(FILE *fp, const Directory *music_root)
}
bool
-db_load_internal(TextFile &file, Directory *music_root, GError **error)
+db_load_internal(TextFile &file, Directory *music_root, Error &error)
{
char *line;
int format = 0;
@@ -82,7 +83,7 @@ db_load_internal(TextFile &file, Directory *music_root, GError **error)
/* get initial info */
line = file.ReadLine();
if (line == NULL || strcmp(DIRECTORY_INFO_BEGIN, line) != 0) {
- g_set_error(error, db_quark(), 0, "Database corrupted");
+ error.Set(db_domain, "Database corrupted");
return false;
}
@@ -94,8 +95,7 @@ db_load_internal(TextFile &file, Directory *music_root, GError **error)
format = atoi(line + sizeof(DB_FORMAT_PREFIX) - 1);
} else if (g_str_has_prefix(line, DIRECTORY_MPD_VERSION)) {
if (found_version) {
- g_set_error(error, db_quark(), 0,
- "Duplicate version line");
+ error.Set(db_domain, "Duplicate version line");
return false;
}
@@ -104,8 +104,7 @@ db_load_internal(TextFile &file, Directory *music_root, GError **error)
const char *new_charset;
if (found_charset) {
- g_set_error(error, db_quark(), 0,
- "Duplicate charset line");
+ error.Set(db_domain, "Duplicate charset line");
return false;
}
@@ -115,44 +114,43 @@ db_load_internal(TextFile &file, Directory *music_root, GError **error)
const std::string &old_charset = Path::GetFSCharset();
if (!old_charset.empty()
&& strcmp(new_charset, old_charset.c_str())) {
- g_set_error(error, db_quark(), 0,
- "Existing database has charset "
- "\"%s\" instead of \"%s\"; "
- "discarding database file",
- new_charset, old_charset.c_str());
+ error.Format(db_domain,
+ "Existing database has charset "
+ "\"%s\" instead of \"%s\"; "
+ "discarding database file",
+ new_charset, old_charset.c_str());
return false;
}
} else if (g_str_has_prefix(line, DB_TAG_PREFIX)) {
const char *name = line + sizeof(DB_TAG_PREFIX) - 1;
enum tag_type tag = tag_name_parse(name);
if (tag == TAG_NUM_OF_ITEM_TYPES) {
- g_set_error(error, db_quark(), 0,
- "Unrecognized tag '%s', "
- "discarding database file",
- name);
+ error.Format(db_domain,
+ "Unrecognized tag '%s', "
+ "discarding database file",
+ name);
return false;
}
tags[tag] = true;
} else {
- g_set_error(error, db_quark(), 0,
- "Malformed line: %s", line);
+ error.Format(db_domain, "Malformed line: %s", line);
return false;
}
}
if (format != DB_FORMAT) {
- g_set_error(error, db_quark(), 0,
- "Database format mismatch, "
- "discarding database file");
+ error.Set(db_domain,
+ "Database format mismatch, "
+ "discarding database file");
return false;
}
for (unsigned i = 0; i < TAG_NUM_OF_ITEM_TYPES; ++i) {
if (!ignore_tag_items[i] && !tags[i]) {
- g_set_error(error, db_quark(), 0,
- "Tag list mismatch, "
- "discarding database file");
+ error.Set(db_domain,
+ "Tag list mismatch, "
+ "discarding database file");
return false;
}
}