diff --git a/guile/mu-guile.c b/guile/mu-guile.c index 2221819f..a3f4ce5a 100644 --- a/guile/mu-guile.c +++ b/guile/mu-guile.c @@ -170,7 +170,7 @@ SCM_DEFINE_PUBLIC (mu_initialize, "mu:initialize", 0, 1, 0, SCM_UNSPECIFIED); /* cleanup when we're exiting */ - g_atexit (mu_guile_uninit_instance); + atexit (mu_guile_uninit_instance); return SCM_UNSPECIFIED; } diff --git a/src/mu-cmd-cfind.c b/src/mu-cmd-cfind.c index 7fa56795..d4cd9aa2 100644 --- a/src/mu-cmd-cfind.c +++ b/src/mu-cmd-cfind.c @@ -179,7 +179,7 @@ run_cmd_cfind (const char* pattern, MuConfigFormat format, contacts = mu_contacts_new (mu_runtime_path(MU_RUNTIME_PATH_CONTACTS)); if (!contacts) { - g_set_error (err, 0, MU_ERROR_CONTACTS_CANNOT_RETRIEVE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_CONTACTS_CANNOT_RETRIEVE, "could not retrieve contacts"); return MU_ERROR_CONTACTS_CANNOT_RETRIEVE; } @@ -234,7 +234,7 @@ mu_cmd_cfind (MuConfig *opts, GError **err) MU_ERROR_INTERNAL); if (!cfind_params_valid (opts)) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "invalid parameters"); return MU_ERROR_IN_PARAMETERS; } diff --git a/src/mu-cmd-extract.c b/src/mu-cmd-extract.c index 275e6f02..fdc8719c 100644 --- a/src/mu-cmd-extract.c +++ b/src/mu-cmd-extract.c @@ -401,7 +401,7 @@ mu_cmd_extract (MuConfig *opts, GError **err) MU_ERROR_INTERNAL); if (!check_params (opts)) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "error in parameters"); return MU_ERROR_IN_PARAMETERS; } @@ -412,7 +412,7 @@ mu_cmd_extract (MuConfig *opts, GError **err) else { rv = mu_util_check_dir(opts->targetdir, FALSE, TRUE); if (!rv) - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_WRITE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_WRITE, "target '%s' is not a writable directory", opts->targetdir); else diff --git a/src/mu-cmd-find.c b/src/mu-cmd-find.c index 1c788f85..e8de0c65 100644 --- a/src/mu-cmd-find.c +++ b/src/mu-cmd-find.c @@ -86,7 +86,7 @@ sort_field_from_string (const char* fieldstr, GError **err) mfid = mu_msg_field_id_from_shortcut(fieldstr[0], FALSE); if (mfid == MU_MSG_FIELD_ID_NONE) - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "not a valid sort field: '%s'\n", fieldstr); return mfid; } @@ -159,7 +159,7 @@ exec_cmd (const char *path, const char *cmd, GError **err) gboolean rv; if (access (path, R_OK) != 0) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_READ, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_READ, "cannot read %s: %s", path, strerror(errno)); return FALSE; } @@ -209,7 +209,7 @@ exec_cmd_on_query (MuQuery *xapian, const gchar *query, MuConfig *opts, } if (count == 0) { - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "no matches for search expression"); return FALSE; } @@ -231,20 +231,20 @@ format_params_valid (MuConfig *opts, GError **err) case MU_CONFIG_FORMAT_XQUERY: break; default: - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "invalid output format %s", opts->formatstr ? opts->formatstr : ""); return FALSE; } if (opts->format == MU_CONFIG_FORMAT_LINKS && !opts->linksdir) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "missing --linksdir argument"); return FALSE; } if (opts->linksdir && opts->format != MU_CONFIG_FORMAT_LINKS) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "--linksdir is only valid with --format=links"); return FALSE; } @@ -262,7 +262,7 @@ query_params_valid (MuConfig *opts, GError **err) if (mu_util_check_dir (xpath, TRUE, FALSE)) return TRUE; - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_READ, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_READ, "'%s' is not a readable Xapian directory", xpath); return FALSE; } @@ -277,14 +277,14 @@ resolve_bookmark (MuConfig *opts, GError **err) bmfile = mu_runtime_path (MU_RUNTIME_PATH_BOOKMARKS); bm = mu_bookmarks_new (bmfile); if (!bm) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_OPEN, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_OPEN, "failed to open bookmarks file '%s'", bmfile); return FALSE; } val = (gchar*)mu_bookmarks_lookup (bm, opts->bookmark); if (!val) - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "bookmark '%s' not found", opts->bookmark); else val = g_strdup (val); @@ -330,7 +330,7 @@ get_query (MuConfig *opts, GError **err) /* params[0] is 'find', actual search params start with [1] */ if (!opts->bookmark && !opts->params[1]) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "error in parameters"); return NULL; } @@ -368,13 +368,13 @@ get_query_obj (MuStore *store, GError **err) return NULL; if (count == 0) { - g_set_error (err, 0, MU_ERROR_XAPIAN_IS_EMPTY, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_XAPIAN_IS_EMPTY, "the database is empty"); return NULL; } if (mu_store_needs_upgrade (store)) { - g_set_error (err, 0, MU_ERROR_XAPIAN_NOT_UP_TO_DATE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_XAPIAN_NOT_UP_TO_DATE, "the database is not up-to-date"); return NULL; } @@ -468,13 +468,13 @@ output_links (MuMsgIter *iter, const char* linksdir, gboolean clearlinks, } if (errcount > 0) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_LINK, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_LINK, "error linking %u message(s)", (unsigned)errcount); return FALSE; } if (count == 0) { - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "no matches for search expression"); return FALSE; } @@ -686,7 +686,7 @@ output_plain (MuMsgIter *iter, const char *fields, gboolean summary, } if (count == 0) { - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "no existing matches for search expression"); return FALSE; } @@ -746,7 +746,7 @@ output_sexp (MuMsgIter *iter, gboolean threads, } if (count == 0) { - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "no existing matches for search expression"); return FALSE; } @@ -803,7 +803,7 @@ output_xml (MuMsgIter *iter, gboolean include_unreadable, GError **err) g_print ("\n"); if (count == 0) { - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "no existing matches for search expression"); return FALSE; } diff --git a/src/mu-cmd-index.c b/src/mu-cmd-index.c index 93fee47a..a36db383 100644 --- a/src/mu-cmd-index.c +++ b/src/mu-cmd-index.c @@ -75,19 +75,19 @@ check_params (MuConfig *opts, GError **err) { /* param[0] == 'index' there should be no param[1] */ if (opts->params[1]) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "unexpected parameter"); return FALSE; } if (opts->xbatchsize < 0) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "the batch size must be non-negative"); return FALSE; } if (opts->max_msg_size < 0) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "the maximum message size must be non-negative"); return FALSE; } @@ -99,20 +99,20 @@ static gboolean check_maildir (const char *maildir, GError **err) { if (!maildir) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "no maildir to work on; use --maildir="); return FALSE; } if (!g_path_is_absolute (maildir)) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "maildir path '%s' is not absolute", maildir); return FALSE; } if (!mu_util_check_dir (maildir, TRUE, FALSE)) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "not a valid Maildir: %s", maildir); return FALSE; } @@ -347,7 +347,7 @@ cmd_index (MuIndex *midx, MuConfig *opts, MuIndexStats *stats, if (rv == MU_STOP) rv = MU_OK; } else - g_set_error (err, 0, rv, "error while indexing"); + g_set_error (err, MU_ERROR_DOMAIN, rv, "error while indexing"); return rv; } diff --git a/src/mu-cmd-server.c b/src/mu-cmd-server.c index 53bb7ae1..71711b66 100644 --- a/src/mu-cmd-server.c +++ b/src/mu-cmd-server.c @@ -428,7 +428,7 @@ get_docid_from_msgid (MuQuery *query, const char *str, GError **err) docid = MU_STORE_INVALID_DOCID; if (!iter || mu_msg_iter_is_done (iter)) if (err && *err == NULL) - g_set_error (err, 0, MU_ERROR_NO_MATCHES, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_NO_MATCHES, "could not find message %s", str); else return docid; @@ -436,7 +436,7 @@ get_docid_from_msgid (MuQuery *query, const char *str, GError **err) MuMsg *msg; msg = mu_msg_iter_get_msg_floating (iter); if (!mu_msg_is_readable(msg)) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_READ, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_READ, "'%s' is not readable", mu_msg_get_path(msg)); } else @@ -462,7 +462,7 @@ get_docid (MuQuery *query, const char *str, GError **err) docid = strtol (str, &endptr, 10); if (*endptr != '\0') { if (!query) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "invalid docid '%s'", str); return MU_STORE_INVALID_DOCID; } else @@ -981,7 +981,7 @@ handle_command (Cmd cmd, MuStore *store, MuQuery *query, GSList *args, case CMD_IGNORE: return TRUE; default: - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "unknown command"); return FALSE; } diff --git a/src/mu-cmd.c b/src/mu-cmd.c index ba80e9a2..b10b79e6 100644 --- a/src/mu-cmd.c +++ b/src/mu-cmd.c @@ -202,7 +202,7 @@ view_params_valid (MuConfig *opts, GError **err) { /* note: params[0] will be 'view' */ if (!opts->params[0] || !opts->params[1]) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "error in parameters"); return FALSE; } @@ -212,7 +212,7 @@ view_params_valid (MuConfig *opts, GError **err) case MU_CONFIG_FORMAT_SEXP: break; default: - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "invalid output format"); return FALSE; } @@ -264,7 +264,7 @@ mu_cmd_mkdir (MuConfig *opts, GError **err) MU_ERROR_INTERNAL); if (!opts->params[1]) { - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "missing directory parameter"); return MU_ERROR_IN_PARAMETERS; } @@ -320,7 +320,7 @@ mu_cmd_add (MuStore *store, MuConfig *opts, GError **err) /* note: params[0] will be 'add' */ if (!opts->params[0] || !opts->params[1]) { g_message ("usage: mu add []"); - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "missing source and/or target"); return MU_ERROR_IN_PARAMETERS; } @@ -339,7 +339,7 @@ mu_cmd_add (MuStore *store, MuConfig *opts, GError **err) } if (!allok) { - g_set_error (err, 0, MU_ERROR_XAPIAN_STORE_FAILED, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_XAPIAN_STORE_FAILED, "store failed for some message(s)"); return MU_ERROR_XAPIAN_STORE_FAILED; } @@ -361,7 +361,7 @@ mu_cmd_remove (MuStore *store, MuConfig *opts, GError **err) /* note: params[0] will be 'add' */ if (!opts->params[0] || !opts->params[1]) { g_warning ("usage: mu remove []"); - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "missing source and/or target"); return MU_ERROR_IN_PARAMETERS; } @@ -379,7 +379,7 @@ mu_cmd_remove (MuStore *store, MuConfig *opts, GError **err) } if (!allok) { - g_set_error (err, 0, MU_ERROR_XAPIAN_STORE_FAILED, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_XAPIAN_STORE_FAILED, "remove failed for some message(s)"); return MU_ERROR_XAPIAN_REMOVE_FAILED; } @@ -438,7 +438,7 @@ check_params (MuConfig *opts, GError **err) { if (!opts->params||!opts->params[0]) {/* no command? */ show_usage (); - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, "error in parameters"); + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "error in parameters"); return FALSE; } @@ -476,7 +476,7 @@ mu_cmd_execute (MuConfig *opts, GError **err) return with_store (mu_cmd_server, opts, FALSE, err); default: show_usage (); - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "unknown command '%s'", opts->cmdstr); return MU_ERROR_IN_PARAMETERS; } diff --git a/src/mu-maildir.c b/src/mu-maildir.c index 6dc1d819..d867d14f 100644 --- a/src/mu-maildir.c +++ b/src/mu-maildir.c @@ -89,7 +89,7 @@ create_maildir (const char *path, mode_t mode, GError **err) * there's already such a dir, but with the wrong * permissions; so we need to check */ if (rv != 0 || !mu_util_check_dir(fullpath, TRUE, TRUE)) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_MKDIR, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_MKDIR, "creating dir failed for %s: %s", fullpath, strerror (errno)); @@ -115,7 +115,7 @@ create_noindex (const char *path, GError **err) /* note, if the 'close' failed, creation may still have * succeeded...*/ if (fd < 0 || close (fd) != 0) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_CREATE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_CREATE, "error in create_noindex: %s", strerror (errno)); return FALSE; @@ -208,7 +208,7 @@ mu_maildir_link (const char* src, const char *targetpath, GError **err) rv = symlink (src, targetfullpath); if (rv != 0) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_LINK, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_LINK, "error creating link %s => %s: %s", targetfullpath, src, strerror (errno)); g_free (targetfullpath); @@ -617,7 +617,7 @@ clear_links (const gchar* dirname, DIR *dir, GError **err) } if (errno != 0) - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "file error: %s", strerror(errno)); return (rv == FALSE && errno == 0); @@ -634,7 +634,7 @@ mu_maildir_clear_links (const gchar* path, GError **err) dir = opendir (path); if (!dir) { - g_set_error (err, 0, MU_ERROR_FILE_CANNOT_OPEN, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_CANNOT_OPEN, "failed to open %s: %s", path, strerror(errno)); return FALSE; @@ -791,25 +791,25 @@ static gboolean msg_move_check_pre (const gchar *src, const gchar *dst, GError **err) { if (!g_path_is_absolute(src)) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "source is not an absolute path: '%s'", src); return FALSE; } if (!g_path_is_absolute(dst)) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "target is not an absolute path: '%s'", dst); return FALSE; } if (access (src, R_OK) != 0) { - g_set_error (err, 0, MU_ERROR_FILE, "cannot read %s", + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "cannot read %s", src); return FALSE; } if (access (dst, F_OK) == 0) { - g_set_error (err, 0, MU_ERROR_FILE, "%s already exists", + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "%s already exists", dst); return FALSE; } @@ -822,13 +822,13 @@ msg_move_check_post (const char *src, const char *dst, GError **err) { /* double check -- is the target really there? */ if (access (dst, F_OK) != 0) { - g_set_error (err, 0, MU_ERROR_FILE, "can't find target (%s)", + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "can't find target (%s)", dst); return FALSE; } if (access (src, F_OK) == 0) { - g_set_error (err, 0, MU_ERROR_FILE, "source is still there (%s)", + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "source is still there (%s)", src); return FALSE; } @@ -844,7 +844,7 @@ msg_move (const char* src, const char *dst, GError **err) return FALSE; if (rename (src, dst) != 0) { - g_set_error (err, 0, MU_ERROR_FILE, "error moving %s to %s", + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "error moving %s to %s", src, dst); return FALSE; } @@ -869,7 +869,7 @@ mu_maildir_move_message (const char* oldpath, const char* targetmdir, newfullpath = mu_maildir_get_new_path (oldpath, targetmdir, newflags); if (!newfullpath) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "failed to determine target full path"); return FALSE; } @@ -878,7 +878,7 @@ mu_maildir_move_message (const char* oldpath, const char* targetmdir, src_is_target = (g_strcmp0 (oldpath, newfullpath) == 0); if (!ignore_dups && src_is_target) { - g_set_error (err, 0, MU_ERROR_FILE_TARGET_EQUALS_SOURCE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE_TARGET_EQUALS_SOURCE, "target equals source"); return FALSE; } diff --git a/src/mu-msg-file.c b/src/mu-msg-file.c index 357339ef..8b0198d9 100644 --- a/src/mu-msg-file.c +++ b/src/mu-msg-file.c @@ -100,21 +100,21 @@ init_file_metadata (MuMsgFile *self, const char* path, const gchar* mdir, struct stat statbuf; if (access (path, R_OK) != 0) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "cannot read file %s: %s", path, strerror(errno)); return FALSE; } if (stat (path, &statbuf) < 0) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "cannot stat %s: %s", path, strerror(errno)); return FALSE; } if (!S_ISREG(statbuf.st_mode)) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "not a regular file: %s", path); return FALSE; } @@ -138,7 +138,7 @@ get_mime_stream (MuMsgFile *self, const char *path, GError **err) file = fopen (path, "r"); if (!file) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "cannot open %s: %s", path, strerror (errno)); return NULL; @@ -146,7 +146,7 @@ get_mime_stream (MuMsgFile *self, const char *path, GError **err) stream = g_mime_stream_file_new (file); if (!stream) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "cannot create mime stream for %s", path); fclose (file); @@ -169,7 +169,7 @@ init_mime_msg (MuMsgFile *self, const char* path, GError **err) parser = g_mime_parser_new_with_stream (stream); g_object_unref (stream); if (!parser) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "%s: cannot create mime parser for %s", __FUNCTION__, path); return FALSE; @@ -178,7 +178,7 @@ init_mime_msg (MuMsgFile *self, const char* path, GError **err) self->_mime_msg = g_mime_parser_construct_message (parser); g_object_unref (parser); if (!self->_mime_msg) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "%s: cannot construct mime message for %s", __FUNCTION__, path); return FALSE; diff --git a/src/mu-msg-part.c b/src/mu-msg-part.c index 7363dfa3..e0565a06 100644 --- a/src/mu-msg-part.c +++ b/src/mu-msg-part.c @@ -337,7 +337,7 @@ write_part_to_fd (GMimePart *part, int fd, GError **err) stream = g_mime_stream_fs_new (fd); if (!GMIME_IS_STREAM(stream)) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "failed to create stream"); return FALSE; } @@ -345,7 +345,7 @@ write_part_to_fd (GMimePart *part, int fd, GError **err) wrapper = g_mime_part_get_content_object (part); if (!GMIME_IS_DATA_WRAPPER(wrapper)) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "failed to create wrapper"); g_object_unref (stream); return FALSE; @@ -355,7 +355,7 @@ write_part_to_fd (GMimePart *part, int fd, GError **err) rv = g_mime_data_wrapper_write_to_stream (wrapper, stream); if (rv == -1) - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "failed to write to stream"); g_object_unref (wrapper); @@ -373,13 +373,13 @@ write_object_to_fd (GMimeObject *obj, int fd, GError **err) str = g_mime_object_to_string (obj); if (!str) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "could not get string from object"); return FALSE; } if (write (fd, str, strlen(str)) == -1) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "failed to write object: %s", strerror(errno)); return FALSE; @@ -405,7 +405,7 @@ save_mime_object (GMimeObject *obj, const char *fullpath, /* ok, try to create the file */ fd = mu_util_create_writeable_fd (fullpath, 0600, overwrite); if (fd == -1) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "could not open '%s' for writing: %s", fullpath, errno ? strerror(errno) : "error"); return FALSE; @@ -417,7 +417,7 @@ save_mime_object (GMimeObject *obj, const char *fullpath, rv = write_object_to_fd (obj, fd, err); if (close (fd) != 0 && !err) { /* don't write on top of old err */ - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "could not close '%s': %s", fullpath, errno ? strerror(errno) : "error"); return FALSE; @@ -438,7 +438,7 @@ mu_msg_part_filepath (MuMsg *msg, const char* targetdir, guint partidx, return NULL; if (!(mobj = find_part (msg, partidx))) { - g_set_error (err, 0, MU_ERROR_GMIME, "cannot find part %u", partidx); + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "cannot find part %u", partidx); return NULL; } @@ -455,7 +455,7 @@ mu_msg_part_filepath (MuMsg *msg, const char* targetdir, guint partidx, fname = get_filename_for_mime_message_part (g_mime_message_part_get_message((GMimeMessagePart*)mobj)); else { - g_set_error (err, 0, MU_ERROR_GMIME, "part %u cannot be saved", + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "part %u cannot be saved", partidx); return NULL; } @@ -521,7 +521,7 @@ mu_msg_part_save (MuMsg *msg, const char *fullpath, guint partidx, part = find_part (msg, partidx); if (!is_part_or_message_part (part)) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "unexpected type %s for part %u", G_OBJECT_TYPE_NAME((GObject*)part), partidx); @@ -540,7 +540,7 @@ mu_msg_part_save_temp (MuMsg *msg, guint partidx, GError **err) filepath = mu_msg_part_filepath_cache (msg, partidx); if (!filepath) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "Could not get temp filepath"); return NULL; } diff --git a/src/mu-msg.c b/src/mu-msg.c index 070f8445..59cdc88e 100644 --- a/src/mu-msg.c +++ b/src/mu-msg.c @@ -1,6 +1,6 @@ /* -*- mode: c; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- ** -** Copyright (C) 2008-2011 Dirk-Jan C. Binnema +** Copyright (C) 2008-2012 Dirk-Jan C. Binnema ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by @@ -93,7 +93,7 @@ mu_msg_new_from_file (const char *path, const char *mdir, GError **err) if (G_UNLIKELY(!_gmime_initialized)) { gmime_init (); - g_atexit (gmime_uninit); + atexit (gmime_uninit); } msgfile = mu_msg_file_new (path, mdir, err); @@ -127,7 +127,7 @@ mu_msg_new_from_doc (XapianDocument *doc, GError **err) if (G_UNLIKELY(!_gmime_initialized)) { gmime_init (); - g_atexit (gmime_uninit); + atexit (gmime_uninit); } msgdoc = mu_msg_doc_new (doc, err); @@ -745,7 +745,7 @@ get_target_mdir (MuMsg *msg, const char *target_maildir, GError **err) /* maildir is the maildir stored in the message, e.g. '/foo' */ maildir = mu_msg_get_maildir(msg); if (!maildir) { - g_set_error (err, 0, MU_ERROR_GMIME, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_GMIME, "message without maildir"); return NULL; } @@ -763,7 +763,7 @@ get_target_mdir (MuMsg *msg, const char *target_maildir, GError **err) /* special case for the top-level '/' maildir, and * remember not_top_level */ (not_top_level = (g_strcmp0 (maildir, "/") != 0))) { - g_set_error (err, 0, MU_ERROR_FILE, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_FILE, "path is '%s', but maildir is '%s' ('%s')", rootmaildir, mu_msg_get_maildir(msg), mu_msg_get_path (msg)); diff --git a/src/mu-query.cc b/src/mu-query.cc index bac11193..d0d0fe31 100644 --- a/src/mu-query.cc +++ b/src/mu-query.cc @@ -213,7 +213,7 @@ get_query (MuQuery *mqx, const char* searchexpr, GError **err) } catch (...) { /* some error occured */ - g_set_error (err, 0, MU_ERROR_XAPIAN_QUERY, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_XAPIAN_QUERY, "parse error in query"); g_free (preprocessed); throw; @@ -258,7 +258,7 @@ mu_query_new (MuStore *store, GError **err) g_return_val_if_fail (store, NULL); if (mu_store_count (store, err) == 0) { - g_set_error (err, 0, MU_ERROR_XAPIAN_IS_EMPTY, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_XAPIAN_IS_EMPTY, "database is empty"); return 0; } diff --git a/src/mu-store-read.cc b/src/mu-store-read.cc index 18eb3622..9ced1fc8 100644 --- a/src/mu-store-read.cc +++ b/src/mu-store-read.cc @@ -78,7 +78,7 @@ mu_store_new_read_only (const char* xpath, GError **err) return new _MuStore (xpath); } catch (const MuStoreError& merr) { - g_set_error (err, 0, merr.mu_error(), "%s", + g_set_error (err, MU_ERROR_DOMAIN, merr.mu_error(), "%s", merr.what().c_str()); } MU_XAPIAN_CATCH_BLOCK_G_ERROR(err, MU_ERROR_XAPIAN); diff --git a/src/mu-str.c b/src/mu-str.c index fd658a37..ca1fb768 100644 --- a/src/mu-str.c +++ b/src/mu-str.c @@ -366,7 +366,7 @@ leave: *strlst = str; return g_string_free (gstr, FALSE); err: - g_set_error (err, 0, MU_ERROR_IN_PARAMETERS, + g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS, "error parsing string '%s'", g_strchug(*strlst)); *strlst = NULL; return g_string_free (gstr, TRUE); diff --git a/src/mu-util.c b/src/mu-util.c index d69582e4..24c74b0f 100644 --- a/src/mu-util.c +++ b/src/mu-util.c @@ -137,6 +137,22 @@ mu_util_create_tmpdir (void) } +GQuark +mu_util_error_quark (void) +{ + static GQuark error_domain = 0; + + if (G_UNLIKELY(error_domain == 0)) + error_domain = g_quark_from_static_string + ("mu-error-quark"); + + return error_domain; +} + + + + + const char* mu_util_cache_dir (void) { diff --git a/src/mu-util.h b/src/mu-util.h index 8d796d46..3317feea 100644 --- a/src/mu-util.h +++ b/src/mu-util.h @@ -185,6 +185,19 @@ gboolean mu_util_play (const char *path, gboolean allow_local, gboolean allow_remote); + +/** + * Get an error-query for mu, to be used in `g_set_error'. Recent + * version of Glib warn when using 0 for the error-domain in + * g_set_error. + * + * + * @return an error quark for mu + */ +GQuark mu_util_error_quark (void) G_GNUC_CONST; +#define MU_ERROR_DOMAIN (mu_util_error_quark()) + + /** * convert a string array in to a string, with the elements separated * by ' '