diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-12-12 11:02:26 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-12-12 13:10:32 +0200 |
commit | d8896b0e5fbd5628b54b7704ab6cb64560caa3b5 (patch) | |
tree | 2022fe586a2826c67e057739d47a64dc8489ac40 /mh | |
parent | 0f705faa6c5079c03319a49f37912f7f49bce6e1 (diff) | |
download | mailutils-d8896b0e5fbd5628b54b7704ab6cb64560caa3b5.tar.gz mailutils-d8896b0e5fbd5628b54b7704ab6cb64560caa3b5.tar.bz2 |
Fix -nowhatnow proc in mh
* mh/mh.h (mh_whatnow_env) <nowhatnowproc>: New member.
* mh/compcommon.c (check_draft_disposition): Return DISP_REPLACE
if nowhatnowproc is set.
* mh/mh_whatnow.c (mh_whatnowproc): Return 0 if nowhatnowproc is
set.
* mh/comp.c: Fix -nowhatnowproc
* mh/forw.c: Likewise.
* mh/repl.c: Likewise.
Diffstat (limited to 'mh')
-rw-r--r-- | mh/comp.c | 5 | ||||
-rw-r--r-- | mh/compcommon.c | 3 | ||||
-rw-r--r-- | mh/forw.c | 5 | ||||
-rw-r--r-- | mh/mh.h | 1 | ||||
-rw-r--r-- | mh/mh_whatnow.c | 3 | ||||
-rw-r--r-- | mh/repl.c | 23 |
6 files changed, 16 insertions, 24 deletions
@@ -27,7 +27,6 @@ static char args_doc[] = N_("[MSG]"); struct mh_whatnow_env wh_env = { 0 }; static int initial_edit = 1; static const char *whatnowproc; -static int nowhatnowproc; char *formfile; static int build_only = 0; /* -build flag */ static int use_draft = 0; /* -use flag */ @@ -81,7 +80,7 @@ static struct mu_option options[] = { mu_c_string, &whatnowproc }, { "nowhatnowproc", 0, NULL, MU_OPTION_DEFAULT, N_("don't run whatnowproc"), - mu_c_string, &nowhatnowproc, NULL, "1" }, + mu_c_int, &wh_env.nowhatnowproc, NULL, "1" }, { "use", 0, NULL, MU_OPTION_DEFAULT, N_("use draft file preserved after the last session"), mu_c_bool, &use_draft }, @@ -235,7 +234,7 @@ main (int argc, char **argv) } /* Exit immediately if -build is given */ - if (build_only || nowhatnowproc) + if (build_only || wh_env.nowhatnowproc) return 0; return mh_whatnowproc (&wh_env, initial_edit, whatnowproc); diff --git a/mh/compcommon.c b/mh/compcommon.c index 1298d1f46..d6e55559e 100644 --- a/mh/compcommon.c +++ b/mh/compcommon.c @@ -74,6 +74,9 @@ check_draft_disposition (struct mh_whatnow_env *wh, int use_draft) struct stat st; int disp = DISP_REPLACE; + if (wh->nowhatnowproc) + return disp; + /* First check if the draft exists */ if (stat (wh->draftfile, &st) == 0) { @@ -37,7 +37,6 @@ static const char *whatnowproc; static char *mhl_filter_file = NULL; /* --filter flag */ static int build_only = 0; /* --build flag */ -static int nowhatnowproc = 0; /* --nowhatnowproc */ static int annotate = 0; /* --annotate flag */ static enum encap_type encap = encap_clear; /* controlled by --format, --form and --mime flags */ @@ -136,7 +135,7 @@ static struct mu_option options[] = { mu_c_string, &whatnowproc }, { "nowhatnowproc", 0, NULL, MU_OPTION_DEFAULT, N_("don't run whatnowproc"), - mu_c_int, &nowhatnowproc, NULL, "1" }, + mu_c_int, &wh_env.nowhatnowproc, NULL, "1" }, { "use", 0, NULL, MU_OPTION_DEFAULT, N_("use draft file preserved after the last session"), mu_c_bool, &use_draft }, @@ -434,7 +433,7 @@ main (int argc, char **argv) } /* Exit immediately if --build is given */ - if (build_only || nowhatnowproc) + if (build_only || wh_env.nowhatnowproc) { if (strcmp (wh_env.file, wh_env.draftfile)) rename (wh_env.file, wh_env.draftfile); @@ -215,6 +215,7 @@ struct mh_whatnow_env /* whatnow shell environment */ char *anno_field; /* Annotate field to be used */ mu_list_t anno_list; /* List of messages (mu_message_t) to annotate */ mu_mailbox_t mbox; + int nowhatnowproc; }; #define DISP_QUIT 0 diff --git a/mh/mh_whatnow.c b/mh/mh_whatnow.c index 53eafb426..95a403a83 100644 --- a/mh/mh_whatnow.c +++ b/mh/mh_whatnow.c @@ -582,6 +582,9 @@ mh_whatnowproc (struct mh_whatnow_env *wh, int initial_edit, const char *prog) { int rc; pid_t pid; + + if (wh->nowhatnowproc) + return 0; if (!prog) return mh_whatnow (wh, initial_edit); @@ -35,7 +35,6 @@ static const char *whatnowproc; static mu_msgset_t msgset; static mu_mailbox_t mbox; static int build_only = 0; /* -build flag */ -static int nowhatnowproc = 0; /* -nowhatnowproc */ static int use_draft = 0; /* -use flag */ static char *mhl_filter = NULL; /* -filter flag */ static int annotate; /* -annotate flag */ @@ -86,7 +85,7 @@ set_whatnowproc (struct mu_parseopt *po, struct mu_option *opt, char const *arg) { whatnowproc = mu_strdup (arg); - nowhatnowproc = 0; + wh_env.nowhatnowproc = 0; } static void @@ -165,7 +164,7 @@ static struct mu_option options[] = { mu_c_string, NULL, set_whatnowproc }, { "nowhatnowproc", 0, NULL, MU_OPTION_DEFAULT, N_("don't run whatnowproc"), - mu_c_int, &nowhatnowproc, NULL, "1" }, + mu_c_int, &wh_env.nowhatnowproc, NULL, "1" }, { "use", 0, NULL, MU_OPTION_DEFAULT, N_("use draft file preserved after the last session"), mu_c_bool, &use_draft }, @@ -190,23 +189,11 @@ make_draft (mu_mailbox_t mbox, int disp, struct mh_whatnow_env *wh) { int rc; mu_message_t msg; - struct stat st; size_t msgno; /* First check if the draft exists */ - if (!build_only && stat (wh->draftfile, &st) == 0) - { - if (use_draft) - disp = DISP_USE; - else - { - printf (ngettext ("Draft \"%s\" exists (%s byte).\n", - "Draft \"%s\" exists (%s bytes).\n", - (unsigned long) st.st_size), - wh->draftfile, mu_umaxtostr (0, st.st_size)); - disp = mh_disposition (wh->draftfile); - } - } + if (!build_only) + disp = check_draft_disposition (wh, use_draft); switch (disp) { @@ -344,7 +331,7 @@ main (int argc, char **argv) make_draft (mbox, DISP_REPLACE, &wh_env); /* Exit immediately if --build is given */ - if (build_only || nowhatnowproc) + if (build_only || wh_env.nowhatnowproc) return 0; rc = mh_whatnowproc (&wh_env, initial_edit, whatnowproc); |