summaryrefslogtreecommitdiff
path: root/mh/repl.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2006-01-27 15:14:42 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2006-01-27 15:14:42 +0000
commita2de39676ae144aab016730c598d747f071ae581 (patch)
tree9520a17d02212b4e5afab3dc9d37d92bc31d745a /mh/repl.c
parentb347f37f6b2c297a3e58ec7f0a65f09061ae79d0 (diff)
downloadmailutils-a2de39676ae144aab016730c598d747f071ae581.tar.gz
mailutils-a2de39676ae144aab016730c598d747f071ae581.tar.bz2
Fix semantics of -build/-draftmessage/-[no]draftfolder options for compatibility with other implementations of MH
Diffstat (limited to 'mh/repl.c')
-rw-r--r--mh/repl.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/mh/repl.c b/mh/repl.c
index d3530fb6c..e1e918556 100644
--- a/mh/repl.c
+++ b/mh/repl.c
@@ -122,6 +122,7 @@ static int query_mode = 0; /* --query flag */
static int use_draft = 0; /* --use flag */
static char *mhl_filter = NULL; /* --filter flag */
static int annotate; /* --annotate flag */
+static char *draftmessage = "new";
static int
decode_cc_flag (const char *opt, const char *arg)
@@ -199,7 +200,7 @@ opt_handler (int key, char *arg, void *unused, struct argp_state *state)
break;
case ARG_DRAFTMESSAGE:
- wh_env.draftmessage = arg;
+ draftmessage = arg;
break;
case ARG_USE:
@@ -291,8 +292,6 @@ make_draft (mu_mailbox_t mbox, int disp, struct mh_whatnow_env *wh)
exit (0);
case DISP_USE:
- unlink (wh->file);
- rename (wh->draftfile, wh->file);
break;
case DISP_REPLACE:
@@ -359,7 +358,8 @@ make_draft (mu_mailbox_t mbox, int disp, struct mh_whatnow_env *wh)
mu_mailbox_get_url (mbox, &url);
mh_message_number (msg, &num);
- asprintf (&msgname, "%s/%s", mu_url_to_string (url), mu_umaxtostr (0, num));
+ asprintf (&msgname, "%s/%s",
+ mu_url_to_string (url), mu_umaxtostr (0, num));
p = strchr (msgname, ':');
if (!p)
wh->msg = msgname;
@@ -397,8 +397,16 @@ main (int argc, char **argv)
return 1;
}
- wh_env.file = mh_expand_name (wh_env.draftfolder, "reply", 0);
- wh_env.draftfile = mh_expand_name (wh_env.draftfolder, "draft", 0);
+ if (build_only)
+ wh_env.file = mh_expand_name (wh_env.draftfolder, "reply", 0);
+ else if (wh_env.draftfolder)
+ {
+ if (mh_draft_message (wh_env.draftfolder, draftmessage, &wh_env.file))
+ return 1;
+ }
+ else
+ wh_env.file = mh_expand_name (wh_env.draftfolder, "draft", 0);
+ wh_env.draftfile = wh_env.file;
make_draft (mbox, DISP_REPLACE, &wh_env);

Return to:

Send suggestions and report system problems to the System administrator.