mirror of https://github.com/djcb/mu.git
* mu-cmd-server.c: code cleanup for make cc10/line33
This commit is contained in:
parent
7956bafbe8
commit
a5a9b995e0
|
@ -486,9 +486,7 @@ move_or_flag (MuStore *store, MuQuery *query, GSList *lst, gboolean is_move,
|
||||||
|
|
||||||
if ((docid = get_docid (query, (const char*)lst->data, err)) == 0)
|
if ((docid = get_docid (query, (const char*)lst->data, err)) == 0)
|
||||||
return server_error (err, MU_ERROR_IN_PARAMETERS,
|
return server_error (err, MU_ERROR_IN_PARAMETERS,
|
||||||
"invalid docid '%s'",
|
"invalid docid '%s'", (char*)lst->data);
|
||||||
(const char*)lst->data);
|
|
||||||
|
|
||||||
msg = mu_store_get_msg (store, docid, err);
|
msg = mu_store_get_msg (store, docid, err);
|
||||||
if (!msg)
|
if (!msg)
|
||||||
return server_error (err, MU_ERROR, "failed to get message");
|
return server_error (err, MU_ERROR, "failed to get message");
|
||||||
|
@ -502,11 +500,10 @@ move_or_flag (MuStore *store, MuQuery *query, GSList *lst, gboolean is_move,
|
||||||
}
|
}
|
||||||
|
|
||||||
flags = get_flags (mu_msg_get_path(msg),
|
flags = get_flags (mu_msg_get_path(msg),
|
||||||
flagitem ? (const gchar*)flagitem->data : NULL);
|
flagitem ? (gchar*)flagitem->data : NULL);
|
||||||
if (flags == MU_FLAG_INVALID) {
|
if (flags == MU_FLAG_INVALID) {
|
||||||
mu_msg_unref (msg);
|
mu_msg_unref (msg);
|
||||||
return server_error (err, MU_ERROR_IN_PARAMETERS,
|
return server_error (err, MU_ERROR_IN_PARAMETERS, "invalid flags");
|
||||||
"invalid flags");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
merr = do_move (store, docid, msg, mdir, flags, is_move, err);
|
merr = do_move (store, docid, msg, mdir, flags, is_move, err);
|
||||||
|
@ -575,13 +572,69 @@ cmd_remove (MuStore *store, GSList *lst, GError **err)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static MuError
|
||||||
|
save_part (MuMsg *msg, const char* targetpath, unsigned partindex, GError **err)
|
||||||
|
{
|
||||||
|
gboolean rv;
|
||||||
|
gchar *path;
|
||||||
|
|
||||||
|
rv = mu_msg_part_save (msg, targetpath, partindex,
|
||||||
|
TRUE/*overwrite*/, FALSE/*use cache*/, err);
|
||||||
|
if (!rv)
|
||||||
|
return server_error (err, MU_ERROR_FILE,
|
||||||
|
"failed to save to target path");
|
||||||
|
|
||||||
|
path = mu_str_escape_c_literal (targetpath, FALSE);
|
||||||
|
send_expr ("(:info save :message \"%s has been saved\")",
|
||||||
|
path);
|
||||||
|
g_free (path);
|
||||||
|
|
||||||
|
return MU_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
open_part (MuMsg *msg, unsigned partindex, GError **err)
|
||||||
|
{
|
||||||
|
char *targetpath;
|
||||||
|
gboolean rv;
|
||||||
|
|
||||||
|
targetpath = mu_msg_part_filepath_cache (msg, partindex);
|
||||||
|
|
||||||
|
rv = mu_msg_part_save (msg, targetpath, partindex,
|
||||||
|
FALSE/*overwrite*/, TRUE/*use cache*/, err);
|
||||||
|
if (!rv) {
|
||||||
|
g_set_error (err, 0, MU_ERROR_FILE,
|
||||||
|
"failed to save to '%s'", targetpath);
|
||||||
|
g_free (targetpath);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
rv = mu_util_play (targetpath, TRUE/*allow local*/,
|
||||||
|
FALSE/*allow remote*/);
|
||||||
|
if (!rv)
|
||||||
|
g_set_error (err, 0, MU_ERROR_FILE,
|
||||||
|
"failed to open '%s'", targetpath);
|
||||||
|
else {
|
||||||
|
gchar *path;
|
||||||
|
path = mu_str_escape_c_literal (targetpath, FALSE);
|
||||||
|
send_expr ("(:info open :message \"%s has been opened\")",
|
||||||
|
path);
|
||||||
|
g_free (path);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free (targetpath);
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static MuError
|
static MuError
|
||||||
save_or_open (MuStore *store, GSList *args, gboolean is_save, GError **err)
|
save_or_open (MuStore *store, GSList *args, gboolean is_save, GError **err)
|
||||||
{
|
{
|
||||||
MuMsg *msg;
|
MuMsg *msg;
|
||||||
unsigned docid, partindex;
|
unsigned docid, partindex;
|
||||||
char* targetpath;
|
|
||||||
gboolean rv;
|
gboolean rv;
|
||||||
|
|
||||||
docid = get_docid (NULL, (const char*)args->data, err);
|
docid = get_docid (NULL, (const char*)args->data, err);
|
||||||
|
@ -595,40 +648,18 @@ save_or_open (MuStore *store, GSList *args, gboolean is_save, GError **err)
|
||||||
|
|
||||||
partindex = atoi((const char*)g_slist_nth (args, 1)->data);
|
partindex = atoi((const char*)g_slist_nth (args, 1)->data);
|
||||||
|
|
||||||
if (is_save)
|
if (is_save) {
|
||||||
targetpath = g_strdup ((const char*)g_slist_nth (args, 2)->data);
|
const char *targetpath;
|
||||||
else
|
targetpath = ((const char*)g_slist_nth (args, 2)->data);
|
||||||
targetpath = mu_msg_part_filepath_cache (msg, partindex);
|
rv = save_part (msg, targetpath, partindex, err);
|
||||||
|
} else
|
||||||
|
rv = open_part (msg, partindex, err);
|
||||||
|
|
||||||
if (!targetpath) {
|
|
||||||
mu_msg_unref (msg);
|
|
||||||
return server_error (err, MU_ERROR_FILE,
|
|
||||||
"failed to determine target path");
|
|
||||||
}
|
|
||||||
|
|
||||||
rv = mu_msg_part_save (msg, targetpath, partindex,
|
|
||||||
is_save ? TRUE : FALSE,
|
|
||||||
is_save ? FALSE : TRUE, err);
|
|
||||||
mu_msg_unref (msg);
|
mu_msg_unref (msg);
|
||||||
|
|
||||||
if (rv && !is_save)
|
|
||||||
mu_util_play (targetpath, TRUE, FALSE);
|
|
||||||
|
|
||||||
if (rv) {
|
|
||||||
gchar *path;
|
|
||||||
path = mu_str_escape_c_literal (targetpath, FALSE);
|
|
||||||
send_expr ("(:info %s :message \"%s %s\")",
|
|
||||||
is_save ? "save" : "open",
|
|
||||||
is_save ? "Saved" : "Opened",
|
|
||||||
path);
|
|
||||||
g_free (path);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_free (targetpath);
|
|
||||||
|
|
||||||
if (!rv)
|
if (!rv)
|
||||||
return server_error (err, MU_ERROR_FILE,
|
return server_error (err, MU_ERROR_FILE,
|
||||||
"failed to save attachment");
|
"failed to save to target path");
|
||||||
|
|
||||||
return MU_OK;
|
return MU_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue