* fix glib warnings (compile time, runtime): add error gquark, don't use g_atexit

This commit is contained in:
djcb 2012-04-01 13:08:02 +03:00
parent fa10095ce2
commit bc6f9ebbb8
16 changed files with 112 additions and 83 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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

View File

@ -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 : "<none>");
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 ("</messages>\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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 <file> [<files>]");
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 <file> [<files>]");
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;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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 <djcb@djcbsoftware.nl>
** Copyright (C) 2008-2012 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
**
** 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));

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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)
{

View File

@ -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 ' '