summaryrefslogtreecommitdiff
path: root/mh/comp.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/comp.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/comp.c')
-rw-r--r--mh/comp.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/mh/comp.c b/mh/comp.c
index 554ad3e16..623835251 100644
--- a/mh/comp.c
+++ b/mh/comp.c
@@ -80,6 +80,7 @@ const char *formfile;
static int initial_edit = 1;
static int build_only = 0; /* --build flag */
static int use_draft = 0; /* --use flag */
+static char *draftmessage = "new";
static int
opt_handler (int key, char *arg, void *unused, struct argp_state *state)
@@ -112,11 +113,12 @@ 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:
use_draft = is_true (arg);
+ draftmessage = "cur";
break;
case ARG_NOUSE:
@@ -214,9 +216,14 @@ main (int argc, char **argv)
mh_argp_parse (&argc, &argv, 0, options, mh_option, args_doc, doc,
opt_handler, NULL, &index);
- wh_env.file = mh_expand_name (wh_env.draftfolder, "comp", 0);
- if (!wh_env.draftfile)
- wh_env.draftfile = mh_expand_name (wh_env.draftfolder, "draft", 0);
+ if (build_only || !wh_env.draftfolder)
+ wh_env.file = mh_expand_name (NULL, "draft", 0);
+ else if (wh_env.draftfolder)
+ {
+ if (mh_draft_message (wh_env.draftfolder, draftmessage, &wh_env.file))
+ return 1;
+ }
+ wh_env.draftfile = wh_env.file;
switch (check_draft_disposition (&wh_env, use_draft))
{
@@ -224,8 +231,6 @@ main (int argc, char **argv)
exit (0);
case DISP_USE:
- unlink (wh_env.file);
- rename (wh_env.draftfile, wh_env.file);
break;
case DISP_REPLACE:

Return to:

Send suggestions and report system problems to the System administrator.